Студопедия — Программы и банки
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Программы и банки







Сообщение о смене программы (Program Change) назначает программу (пэтч) определенному MIDI-каналу в тон-генераторе. Это сообщение может поступить в любой момент, в процессе исполнения или воспроизведения, и, таким образом, позволяет динамически менять одну звучащую программу на другую. Вообще говоря, разные типы MIDI-устройств могут реагировать на это сообщение по-разному. Ритм-машинка может посредством Program Change менять текущий паттерн, процессоры эффектов — переключать алгоритмы или пресеты.

В мультитембральном синтезаторе реакция на сообщение Program Change может отличаться, в зависимости от того, в каком режиме находится инструмент, и на каком канале сообщение пришло. В режиме перфоманса обычно меняется не программа, а целая комбинация (перфоманс).

Многие тон-генераторы при получении Program Change не выключают ноты, которые в этот момент звучат на канале. Например, если во время звучания подклада приходит сообщение о смене программы на трубу, то ноты подклада продолжают звучать (тембром подклада), а новые ноты будут звучать тембром трубы. Но полагаться на такую возможность не стоит — есть тон-генераторы, которые выключают звучащие ноты немедленно.

Сообщение Program Change имеет один байт данных, в котором содержится номер программы. Следовательно, можно выбрать одну из 128 программ. Например, как выглядит назначение программы номер 36 на четвертый MIDI-канал, показано на рис. 23.


Один из главных подводных камней, на который можно натолкнуться с этим сообщением, — нумерация программ в конкретном устройстве. В компьютерном мире все начинается с нуля, поэтому номера программ приходят в диапазоне от 0 до 127. И действительно, внутри устройства программы нумеруются с нуля. Но многие производители считают, что музыканты не в состоянии нормально воспринимать программу номер 0 (как, впрочем, и MIDI-канал номер 0), и поэтому нумеруют программы для пользователя, начиная с 1. Такие "адаптированные" номера могут указываться на передней панели или в руководстве к инструменту. Другие фирмы нуля не боятся, и первая программа у них, как и положено, имеет номер 0. Отсюда — гарантированная путаница при работе с разными инструментами. Хорошо, когда программы называются по имени, а если по номеру? В вышеприведенном примере программа номер 36 на "адаптированных" инструментах будет показана пользователю как 37.

Второй подводный камень — совместимость инструментов. На одном синтезаторе программе номер 5 может соответствовать гитара, на другом — флейта, на третьем — вообще набор ударных. Так что композиция, подготовленная на одном инструменте, на другом может звучать, мягко говоря, некорректно, что неприемлемо для обмена и распространения. С появлением в 1991 году спецификации General MIDI эта проблема была отчасти решена — каждому номеру программы сопоставили свой характерный тембр. Подробнее о проблемах совместимости поговорим в одной из следующих статей.

Некоторые старые инструменты имеют меньше 128 программ. Что произойдет, если в инструменте, скажем, только 64 программы, а в сообщении Program Change пришел номер 110? Скорее всего, сообщение будет проигнорировано. В некоторых случаях такой номер может быть преобразован в один из доступных.

Большинство же современных тон-генераторов содержат более 128 программ (в некоторых устройствах число программ превышает 1000). Понятно, что выбрать программу, скажем, 512 с помощью одного сообщения Program Change нельзя. Поэтому сложилась практика организовывать программы в банки. Один банк может содержать, например, 128 программ, и тогда программа с номером 512 будет первой программой в пятом банке (128 x 4 = 512).

Как ее выбрать? Очень просто — с передней панели инструмента. Сначала кнопкой выбирается нужный банк, а затем уже программа. А если то же самое нужно сделать посредством MIDI-сообщения? До 1990 года такого сообщения не было. Какие только способы не выдумывали производители! Все они больше напоминали ритуальные пляски.

Например, использовались карты переадресации. Синтезатор настраивался так, чтобы, скажем, при получении сообщения Program Change с номером 12 выбиралась внутренняя программа номер 344. Эта процедура выполнялась для всех тембров, используемых в композиции. Другой способ — скопировать нужные программы в пользовательский банк, выбрать его вручную с панели инструмента, после чего сообщение Program Change позволит использовать программы из этого банка. Некоторые производители применяли для переключения банков дополнительное MIDI-сообщение, какое именно — зависело от конкретного инструмента. Часто использовались сообщения SysEx.

Наконец в 1990 году организация MMA решила навести порядок и стандартизировать процесс выбора банка. Появилось сообщение высокого разрешения под названием Bank Select. Его поместили во второй уровень кодирования (первый был уже весь занят), к контроллерам, и разбили на два контроллера. Старшие 7 бит задаются контроллером СС#0, младшие — контроллером СС#32.

С помощью Bank Select можно получить доступ к одному из 16384 банков, а конкретную программу в этом банке выбрать как обычно — с помощью сообщения Program Change. Таким образом, если в каждом банке будет по 128 программ, то "сладкая парочка" Bank Select / Program Change позволит адресовать одну из 2 097 152 программ (16384 x 128). Но не стоит впадать в эйфорию от этого числа. Во-первых, ни один производитель пока не выпустил инструмента с таким количеством звуков (да и зачем?) Во-вторых, есть замечательные инструменты, выпущенные до августа 1990 года, которые на сообщение Bank Select не реагируют. И выбор нужной программы для них по MIDI возможен только с помощью одного из вышеупомянутых "древних" способов.

Наконец, и это самое неприятное, спецификация MIDI не определяет точного механизма выбора звуков с помощью Bank Select. А именно: не определено количество доступных банков, число программ в каждом банке и принцип нумерации программ. Так что каждый производитель применяет собственные схемы, часто на основе сложившейся традиции.

Например, в некоторых инструментах банк содержит от 8 до 10 программ, в других — 16, 32, 64 или 128. Банки могут нумероваться буквами (A, B, C) или цифрами, арабскими или римскими. Нумерация программ в каждом банке может начинаться с 0 или с 1. В одном из старых вариантов номер программы состоял из двух цифр. Первая определяла банк, вторая — номер программы в банке. При этом в каждом банке было по восемь программ. Таким образом, первая программа первого банка имела номер 11, потом нумерация шла до 18, затем перепрыгивала на 21 (первая программа второго банка) и т. д. Буквенно-цифровая нумерация может выглядеть как B054, что означает программу номер 54 из банка B.

Некоторые производители предложили собственные стандарты, определяющие минимальные характеристики совместимых устройств. Частью этих стандартов является и схема организации программ в банках. Наиболее известные — GS (Roland) и XG (Yamaha), но о них поговорим подробнее в статье, посвященной совместимости.

При получении сообщения Bank Select тон-генератор не должен выполнять каких-либо действий. Полученный номер банка должен сохраняться на будущее. А затем, как только поступит сообщение Program Change, устройство выберет программу из банка с сохраненным номером. Некоторые устройства все же реагируют на Bank Select дополнительными действиями. Так, в семплерах это сообщение может служить командой для загрузки набора семплов с диска в оперативную память. В некоторых инструментах посредством сообщений Bank Select переключаются наборы ударных, что, вообще говоря, — нарушение спецификации.

Если нужно переключиться на другую программу внутри текущего банка на том же MIDI-канале, то достаточно одного сообщения Program Change, посылать Bank Select не надо. Если нужно выбрать программу из другого банка, то сначала посылается Bank Select, затем Program Change.

Большинство устройств содержат менее 128 банков. Некоторые из них в этой связи реагируют в сообщении Bank Select только на контроллер СС#0, используя его не как MSB, а напрямую как номер банка. Другие требуют адресацию с использованием обоих контроллеров (CC#0 и CC#32). Спецификация требует, чтобы независимо от числа доступных банков использовалась полная схема адресации.

Вернемся к нашему примеру с программой 512. Пусть инструмент хранит в каждом банке по 128 программ. Тогда программа 512 будет, как говорилось ранее, первой программой в пятом банке. Предположим, что мы работаем на восьмом MIDI-канале, где текущий банк — третий. Следовательно, для выбора программы 512 на шестнадцатый MIDI-канал нужно посылать оба сообщения: Bank Select и Program Change (рис. 24).

 

 

Выбор программ возможен также посредством сообщений SysEx, но этот метод не является стандартным и зависит от конкретной модели тон-генератора.

Нужно учесть, что обработка устройством команд смены банка и программы может занять значительное время (десятки миллисекунд и более). Некоторые тон-генераторы в момент переключения программы производят посторонний шум.







Дата добавления: 2015-08-30; просмотров: 696. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия