Неочевидные возможности AWE
В этом разделе вы познакомитесь с теми возможностями звуковых карт на базе EMU8000, о которых практически ничего не говорится в документации, поставляемой вместе с ними.
Данный раздел будет полезен не только владельцам звуковых карт семейства AWE, но и обладателям любых современных MIDI-инструментов, поддерживающих стандарты, о которых речь пойдет ниже.
Возможно, что в руководстве пользователя звуковой карты в таблице MIDI Implementation Chart, кроме имен привычных MIDI-манипулятров (Volume, Reverb, Chorus и т.п.), вы встретите такие названия, как Data entry, NRPN LSB, NRPN MSB, RPN LSB и RPN MSB. Может быть вы даже попытаетесь отыскать описание этих манипуляторов в руководстве пользователя. Не исключено, что некоторые наши читатели уже экспериментировали с загадочными манипуляторами, но результат исследований оказался отрицательным. Этот раздел поможет вам научиться использовать (и довольно эффективно) закодированные прописными английскими буквами возможности звуковой карты.
Поскольку речь пойдет о MIDI-сообщениях, применяемых для управления параметрами звука, для повторения примеров, приведенных в книге, потребуется музыкальный редактор (секвенсор). Мы будем использовать Cake-walk Pro Audio 5.0. Об основах работы с этим редактором мы рассказали в нашей предыдущей книге [63]. Следующая версия программы — Cakewalk Pro Audio 6.0, содержит встроенные возможности по управлению параметрами звука (MIDI-манипуляторами RPN и NRPN,
наряду с другими, можно управлять из окон Piano Roll или Event List). Но мы специально выбрали редактор Cakewalk Pro Audio 5.0, не обладающий такими возможностями. Прочитав этот раздел, вы научитесь управлять параметрами звука из любого музыкального редактора.
3.5.1. Программирование чувствительности колеса изменения тона
Что же такое RPN? Это аббревиатура от английского словосочетания Registered Parameter Number
(номер фиксированного параметра). Спецификация MIDI определяет три таких параметра: RPN 0 — чувствительность манипулятора (колеса) изменения тона (Pitch Wheel),
RPN 1 — грубая подстройка высоты тона,
RPN 2 — точная настройка высоты тона. Однако звуковые карты семейства AWE поддерживают только один из этих параметров (нулевой). По умолчанию диапазон изменения тона составляет ±2 полутона (или плюс-минус один тон). Положение колеса задается числом от —8 192 до 8 191.
Часто бывает так, что диапазона шириной в 2 тона оказывается недостаточно для реализации эффекта плавного изменения высоты звука. Эта проблема решается довольно просто. Через два манипулятора ввода данных (Data entry LSB и Data entry MSB)
устанавливается новое значение RPN 0.
MIDI-протокол предусматривает передачу данных байтами. Некоторые их биты зарезервированы для служебных целей. Если от каждого байта «отщипнуть» по биту, то останутся этакие семибитные «недобайты», с помощью которых можно передавать числа от 0 до 127 (вспомните о диапазоне возможных значений манипуляторов). Но, например, для программирования чувствительности манипулятора изменения тона диапазона в 128 значений оказывается недостаточно. Поэтому для передачи данных используется два семибитных фрагмента одного большого четырнадцатибитного числа. С помощью него можно передавать числа от 0 до 16 383 (или от —8 192 до 8 191). Младшие 7 бит (Least Significant Bit. LSB — младший байт) передаются через манипулятор 38, старшие 7 бит (Most Significant Bit, MSB — старший байт) передаются через манипулятор 6.
Итак, для изменения чувствительности колеса высоты тона вызовите список MIDI-сообщений из вашего музыкального редактора. В самом начале списка поместите последовательность MIDI-команд, указанную в табл. 3.1.
Таблица 3.1.
MIDI-команды изменения чувствительности колеса высоты тона
Номер MIDI-сообщения | Номер манипулятора (controller) |
Название манипулятора | Положение манипулятора (va/ue) |
1 | 101 | RPN MSB | 0 |
2 | 100 | RPN LSB | 0 |
3 | 6 | Data Entry MSB |
X |
4 | 38 | Data Entry LSB |
Y |
Если нет необходимости задавать диапазон с такой точностью, просто не вводите последнее MIDI-сообщение. Диапазон возможных значений параметров Х и Y: от 0 до 127. Чувствительность колеса высоты тона можно задавать индивидуально для каждого MIDI-канала.
На рис. 3.50 показан пример последовательности MIDI-сообщений в окне Event List
музыкального редактора Cakewalk.
Рис. 3.50.
Пример установки чувствительности колеса высоты тона
В результате выполнения этой последовательности (после нажатия кнопки Play) чувствительность манипулятора высоты тона для первого MIDI-канала будет ±1 октава (или ±12 полутонов).
3.5.2. Управление параметрами звука по MIDI
В руководстве пользователя звуковой карты семейства AWE вы не найдете описания способов управления такими параметрами генерации звука как, например, частота среза фильтра и уровень резонанса или сведений о том, как изменять формы огибающих громкости и модуляции. Непосвященный человек может подумать, что таких возможностей нет, что все параметры, хранящиеся в SoundFont, фиксированы и не поддаются изменениям. Однако это не так.
Возможно, авторы руководства пользователя посчитали, что описанных возможностей звуковой карты и так достаточно, а любознательные пользователи могут найти все ответы на свои вопросы в Internet. Этот раздел книги — наш маленький вклад в борьбу за права потребителя, ведь, как мы уже говорили, покупатель звуковой карты не обязан быть пользователем Internet и может не знать английский язык.
Что касается описанных возможностей, то их иногда бывает недостаточно. Например, ни одна современная танцевальная композиция не обходится без эффектов, связанных с изменением параметров резонансного фильтра. А если и обходится, то у ценителей такой музыки может возникнуть вполне справедливый вопрос: «Почему бы этому DJ не покрутить колесо управления фильтром?» И это не просто наше личное мнение. Не зря ведь фирма Yamaha в своем самом современном стандарте XG определила, что любой инструмент, соответствующий данному стандарту, обязан иметь манипуляторы управления параметрами звука (такими как уровень резонанса и частота среза фильтра).
Звуковые карты семейства AWE стандарт XG не поддерживают. Однако возможность управления параметрами звука при помощи хитрых, но не сложных MIDI-сообщений имеется. Об этой возможности мы и расскажем.
Кроме RPN, бывают еще и NRPN (Non Registered Parameter Number] — номер нефиксированного (изменяемого) параметра. Главное его отличие от RPN состоит в том, что одни и те же NRPN у разных производителей MIDI-оборудова-ния могут соответствовать различным параметрам генерации звука. Задав
NRPN, можно выбрать интересующий параметр генерации звука и определить его значение с помощью манипуляторов Data Entry.
Для звуковых карт семейства AWE значение NRPN MSB
всегда должно быть равно 127, а в NRPN LSB нужно передавать номер интересующего вас параметра звука. Значение этого параметра передается через манипуляторы Data Entry. Таким образом, процесс управления параметрами звука сводится к выполнению последовательности MIDI-сообщений, приведенных в табл. 3.2.
Таблица 3.3.
MIDI-сообщения управления параметрами звука
Номер MIDI-сообщения | Номер манипулятора (controller) |
Название манипулятора | Положение манипулятора (value) |
1 | 99 | NRPN MSB | 127 |
2 | 98 | NRPN LSB | N |
3 | 6 | Data Entry MSB |
X |
4 | 38 | Data Entry LSB |
Y |
Х = (ЗПЗ+ 8192)/128 Y = (ЗПЗ + 8192) % 128,
где символ « / » означает целую часть отделения на 128, а « % » — остаток от деления; ЗПЗ — значение параметра звука.
Чтобы определить значение параметра звука, исходя из данных, хранящихся в MIDI-файле, нужно совершить обратное преобразование, воспользовавшись следующей формулой:
ЗПЗ = [ (Data Entry MSB) S 128 + Data Entry LSB)] - 8 192.
Однако в реальной жизни компьютерного музыканта управление параметрами звука осуществляется более простым способом. Во-первых, если вы собираетесь управлять только каким-либо одним параметром, достаточно однократного выполнения MIDI-команд 1 и 2 (см. табл. 3.2), а далее можно многократно изменять только значения параметра через манипуляторы Data Entry.
Во-вторых, скорее всего, вам не придется каждый раз рассчитывать числа Х и Y с помощью калькулятора. Вы можете написать простенькую программку на языке С + + ... Не путайтесь, это шутка. Дело вот в чем. Читатели, знакомые с машинной арифметикой, наверное, уже догадались, что формулы, приведенные выше, годятся только в том случае, если для представления чисел используется 14 бит, один из которых знаковый. При этом диапазон возможных значений будет лежать в пределах от —8 192 до 8 191. Однако большинство звуковых параметров, как и положения манипуляторов, кодируют-
ся семибитным числом. Диапазон значений при таком способе представления чиселлежит в пределах от 0 до 127. Необходимость использования манипулятора Data Entry
MSB просто отпадает, т. к. старшие семь бит четырнадцатибитного числа оказываются ненужными (младших семи бит как раз достаточно). В этом случае можно выполнить первые две команды из табл. 3.2, а для изменения выбранного этими командами параметра звука можно воспользоваться обычными средствами музыкального редактора (изменяя положение манипулятора 38).
Прежде чем приводить список всех доступных параметров, закрепим теоретические знания практикой. Рассмотрим пример управления частотой среза фильтра при помощи параметра NRPN в редакторе Cakewalk. Номер нефиксированного параметра, управляющего частотой среза — 21, диапазон значений: от 0 до 127 (т. е. можно обойтись без каких-либо формул). В начале первого трека мы разместим последовательность из двух MIDI-сооб-щений (рис. 3.51).
Рис. 3.5?. Получение доступа к управлению частотой среза фильтра при помощи параметра NRPN
Если хотите услышать результат, нужно записать последовательность каких-нибудь нот. Допустим, вы это сделали. Теперь частотой среза можно управлять при помощи манипулятора 38. Пример изменения положения этого манипулятора средствами окна
Controllers приведен на рис. 3.52. Возможно, результат своих действий вам не удастся услышать сразу. Глубина регулировки частоты среза зависит от настроек конкретного пресета.
Простейший выход— попробуйте сменить пресет на какой-нибудь другой, выбранный методом «научного тыка». Ну, а если вам захочется использовать определенный
Рис. 3.52. Пример управления частотой среза фильтра
Таблица 3.3.
Доступные параметры звука
Управление эффектом № Название в реальном времени (Realtime) | Диапазон | Квант измерения |
Delay before LF01 starts 0 (задержка перед запуском LF01 — от 0 до 22 с) | 0...5900 | 4 мс |
LF01 Frequency (частота LF01 от 0 до 10,72 Гц) | 0...127 | 0,084 Гц |
Delay before LF02 starts 2 (задержка перед запуском LF02 — от 0 до 22 с) | 0...5900 | 4 мс |
LF02 Frequency (частота LF01 отО до 10,72 Гц) | 0...127 | 0,084 Гц |
Envelope 1 delay time (задержка 4 огибающей амплитуды от 0 до — 22с) | 0...5900 | 4 мс |
Envelope 1 attack time (время 5 атаки огибающей модуляции от — 0 до 5,9 с) | 0...5940 | 1 мс |
Envelope I hold time (время 6 удержания огибающей — модуляции от 0 до 8 с) | 0...8191 | 1 мс |
Envelope 1 decay time (время 7 спада огибающей модуляции от — 0,023 до 23,7) | 0...5940 | 4 мс |
Envelope 1 sustain level 8 (уровень поддержки огибающей — модуляции) | 0...127 | 0,75 дБ |
Envelope 1 release time (время 9 освобождения огибающей — модуляции от 0,023 до 23,7 с) | 0...5940 | 4 мс |
Envelope 2 delay time (задержка 10 огибающей амплитуды от 0 до — 22с) | 0...5900 | 4 мс |
Envelope 2 attack time (время 11 атаки огибающей амплитуды от — 0 до 5,9 с) | 0...5940 | 1 мс |
Envelope 2 hold time (время 12 удержания огибающей — амплитуды от 0 до 8 с) | 0...8191 | 1 мс |
Envelope 2 decay time (время 13 спада огибающей амплитуды от — 0,023 до 23,7) | 0...5940 | 4 мс |
Envelope 2 sustain level 14 (уровень поддержки огибающей — амплитуды) | 0...127 | 0,75дБ |
Envelope 2 release time (время 15 освобождения огибающей — амплитуды от 0,023 до 23,7 с) | 0...5940 | 4 мс |
(окончание)
№ | Управление эффектом Название в реальном времени (Realtime) | Диапазон | Квант измерения |
16 | Initial Pitch (начальная высота тона) | -8192...8191 | 1 цент |
17 | LF01 to Pitch (степень влияния LF01 на высоту тона от — 1 до + +1 октавы) | -127...127 | 9,375 цента |
18 | LF02 to Pitch (степень влияния LF02 на высоту тона от — 1 до + +1 октавы) | -127...127 | 9,375 цента |
19 | Envelope I to Pitch (степень влияния огибающей модуляции на высоту тона от — 1 до +1 октавы) | -127...127 | 9,375 цента |
20 | LF01 to Volume (степень влияния LF01 на громкость) | 0...127 | 0.1875 дБ |
21 | Initial Filter Cutoff [начальная частота среза фильтра от 100 + до 80000 Гц) | 0...127 | 62 Гц |
22 | Initial Filter Resonance Coefficient (начальный коэффициент резонансного фильтра) | 0...127 | см. табл. 3.4 |
23 | LF01 to Filter Cutoff (степень влияния LF01 на частоту среза) | 0...127 | 56,25 цента |
24 | Envelope 1 to Filter Cutoff (степень влияния огибающей — модуляции на частоту среза) |
-127.,.127 | 56,25 цента |
25 | Chorus Effects Send (глубина хоруса) | 0...255 | - |
26 | Reverb Effects Send (глубина реверберации) | 0...255 | - |
пресет, то можно изменить изначальную глубину регулировки частоты среза, заданную в SoundFont, на новое значение с помощью параметра NRPN 24.
Для того чтобы вернуть начальные значения параметров звука, хранящиеся в SoundFont, достаточно выполнить MIDI-команду Reset All Controllers
(манипулятор 121).
Теперь приведем полный список доступных через параметр NRPN регулировок звука. Табл. 3.3 содержит номера NRPN LSB, их названия, возможность изменения параметров во время воспроизведения ноты (Realtime), диапазон изменения параметра и единицы измерения. Стоит отметить, что EMU8000 имеет встроенную таблицу параметров резонансного фильтра. Посредством NRPN LSB 22 (управление уровнем резонанса) выбирается
224 ___ ________________________Глава 3
Таблица 3.4.
Параметры фильтра
Коэффициент |
Low Fc (Hz) | Low Q (dB) | High Fc (kHz) | High Q (dB) | DC Attenuation(dB) |
о | 92 | 5 | Flat | Flat | -0,0 |
1 | 93 | 6 | 8,5 ' | 0,5 | -0,5 |
2 | 94 | 8 | 8,3 | 1,0 | -1,2 |
3 | 95 | 10 | 8,2 | 2,0 | -1,8 |
4 | 96 | 11 | 8,1 | 3,0 | -2,5 |
5 | 97 | 12 | 8,0 | 4,0 | -3,3 |
6 | 98 | 14 | 7,9 | 5,0 | -4,1 |
7 | 99 | 16 | 7,8 | 6,0 | -5,5 |
8 | 100 | 17 | 7,7 | 7,0 | -6,0 |
9 | 100 | 19 | 7,5 | 9,0 | -6,6 |
10 | 100 | 20 | 7,4 | 0,0 | -7,2 |
11 | 100 | 22 | 7,3 | 11,0 | -7,9 |
12 | 100 | 23 | 7,2 | 13,0 | -8,5 |
13 | 100 | 25 | 7,1 | 15,0 | -9,3 |
14 | 100 | 26 | 7,1 | 16,0 | -10,1 |
NRPN LSB 22. Например, если параметр имеет значение от 0 до 7, то выбирается нулевая строка таблицы (коэффициент 0), если от 8 до 15, то первая (коэффициент 1) и т. д. Таким образом, хотя диапазон изменения параметра лежит в пределах от 0 до 127, реально имеется всего 16 вариантов настроек резонансного фильтра.
3.5.3. Смена типа реверберации и хоруса при помощи MIDI-сообщений
Управление эффект-процессором звуковых карт семейства AWE соответствует стандарту GS. Благодаря этому существует возможность изменения типа (вариации) эффектов реверберации и хоруса при воспроизведении MIDI-файла.
Если говорить более конкретно, то это делается при помощи макросов привилегированных системных сообщений (System Exclusive Message). С тем, как использовать макросы в дальнейшем, мы познакомим вас на примере переключения вариаций эффектов в редакторе Cakewalk.
Работа с системными сообщениями напоминает программирование в машинном коде (заметьте, даже не на Ассемблере). Но даже если вы не программист, пугаться не следует, в этом нет ничего страшного. Для того чтобы пользоваться данной технологией, вам не нужно обдумывать содержимое системных сообщений и представлять процесс выполнения этих, по сути дела, низкоуровневых машинных команд интерпретатором MIDI-сообщений. Просто воспользуйтесь рекомендациями в виде таблиц, которые приводятся ниже.
Таблица 3.5.
Макрос системных сообщений для смены типа реверберации
Номер байта в макросе | Шестнадцатеричное значение | Десятичное значение |
1 | FO | 240 |
2 | 41 | 65 |
3 | 10 | 16 |
4 | 42 | 66 |
5 | 12 | 18 |
6 | 40 | 64 |
7 | 1 | 1 |
8 | 30 | 48 |
9 | номер вариации см. в табл. 3.6 | |
10 | 0 | 0 |
11 | F7 | 247 |
Девятым байтом в макросе идет номер вариации реверберации. О том, какие эффекты доступны, вы можете узнать из табл. 3.6.
Смена типа хоруса (табл. 3.7) осуществляется почти так же, как и смена реверберации. Отличие заключается в восьмом байте. В макросе смены реверберации восьмой байт равен 30h (или 48), а в макросе смены хоруса — 38h (или 56).
Теперь рассмотрим, как реализовать на практике переключение вариаций эффектов с помощью редактора Cakewalk. Выполните команду View > Sysx.
Таблица 3.6.
Типы эффектов реверберации
Номер вариации о |
Название эффекта Room 1 |
Комментарии Эта группа вариаций создаёт |
1 | Room 2 | ощущение присутствия в комнатах разных размеров |
2 | Room 3 | от маленькой до большой |
3 | Hall 1 | Создаёт ощущение присутствия в |
4 | Hall 2 | маленьком и большом концертных залах |
5 | Plate | Реверберация с металлическим оттенком |
6 | Delay | Задержка |
7 | Panning Delay | Панорамируемая влево и вправо задержка |
Таблица 3.7.
Макрос системных сообщений для смены типа хоруса
Номер байта в макросе | Шестнадцатеричное значение | Десятичное значение |
1 | FO | 240 |
2 | 41 | 65 |
3 | 10 | 16 |
4 | 42 | 66 |
5 | 12 | 18 |
6 | 40 | 64 |
7 | 1 | 1 |
8 | 38 | 56 |
9 | номер вариации см. в табл. 3.8 | |
10 | 0 | 0 |
11 | F7 | 247 |
Это окно содержит пока незаполненный список макросов и кнопки для выполнения операций с ними. Начнем со списка. Под заголовком Bank расположены номера банков системных сообщений (макросов), Name — названия макросов, Length — длина (количество байт в макросе), Auto
— включен ли или нет режим автоматического выполнения макросов сразу после загрузки сонга, Port — MIDI-устройство, для которого предназначен макрос.
Сделаем так, чтобы нулевой макрос содержал байты для установки нулевой вариации реверберации (Room 1). Щелкните по первой строке списка
(Bank 0) два раза мышью или нажмите кнопку Edit Bytes. В появившемся окне
Edit System Exclusive Bytes введите макрос для смены эффекта реверберации.
Таблица 3.8.
Типы эффектов хоруса
Номер вариации | Название эффекта | Комментарии |
0 | Chorus 1 | |
1 | Chorus 2 | Эффект хоруса становится более заметным с |
2 | Chorus 3 | увеличением номера вариации |
3 | Chorus 4 | |
4 | Feedback Chorus | Похож на свист возникающий в результате рассекания воздуха |
5 | Flanger | Флэнжер |
6 | Short Delay | Короткое повторяющееся эхо |
7 | Short Delay (Feedback) |
Короткое многократно повторяющееся эхо |
Рис. 3.53. Окно
Sysx
Результат вашей работы показан на рис. 3.54. После этого нажмите кнопку ОК или клавишу <Enter>. Теперь макросу можно присвоить имя. В окне Sysex нажмите кнопку Name. В появившемся окне диалога (рис. 3.55) введите название макроса, например, Reverb "Room 1".
Аналогичную операцию можно проделать для всех вариации эффектов реверберации и хоруса. После этого список макросов будет выглядеть примерно так, как показано на рис. 3.56.
Рис. 3.54. Окно для редактирования банков Sysex
Теперь воспользуемся результатами проделанной работы. Предположим, что в каком-то месте сонга вы хотите выбрать реверберацию типа «Hall 2» и хо-рус «Chorus 4». Нет ничего проще. В списке MIDI-сообщений добавьте два сообщения типа Sysx с номерами макросов для выбора соответствующих вариаций эффектов. На рис. 3.57 показана такая последовательность сообщений: Sysx с содержимым 4 выполняет макрос Reverb "Hall 2" из списка банков системных сообщений; затем следует сообщение, устанавливающее максимальную глубину реверберации; Sysx с содержимым 11 выполняет макрос
Рис. 3.55.
Окно Bank Name для ввода
названия макроса
Рис. 3.56. Банки вариаций эффектов
Chorus «Chorus
4»; ив завершение — сообщение, устанавливающее максимальную глубину хоруса. Теперь вы можете услышать результаты своего труда. Для этого, естественно, должна быть записана какая-либо последовательность нот. А можно просто выполнить четыре приведенные выше сообщения (нажав кнопку Play) и сыграть «живую» музыку на MIDI-клавиатуре. В любом случае вы ощутите установленные эффекты.
Рис. 3.57. Переключение вариаций реверберации и хоруса
В заключение отметим, что вариации эффектов устанавливаются одновременно для всех MIDI-каналов. Не может быть, например, так, что на первом канале была установлена реверберация «Panning Delay», а на втором — «Plate». По этой причине совершенно безразлично, на каком треке будут размещены сообщения для смены вариаций эффектов. Это неудобство вызвано тем, что возможности звуковых карт семейства AWE не безграничны. А расширить диапазон этих возможностей можно только с помощью звуковой карты стандарта XG.
Как вы уже поняли, процесс создания собственных сэмплов непрост. Не случайно из сотен самодельных банков голосов инструментов, встречающихся в Internet и на CD, лишь единицы сэмплов представляют художественную ценность. Причем, чувствуется, что у многих безымянных авторов есть и фантазия, и понимание цели, но не хватает необходимых сведений о технологии.В вашем же творческом багаже все необходимое теперь имеется.