Звуковая студия в PC - Неочевидные возможности AWE

В этом разделе вы познакомитесь с теми возможностями звуковых карт на базе EMU8000, о которых практически ничего не говорится в документации, поставляемой вместе с ними.

Данный раздел будет полезен не только владельцам звуковых карт семейства AWE, но и обладателям любых современных MIDI-инструментов, поддерживающих стандарты, о которых речь пойдет ниже.

Возможно, что в руководстве пользователя звуковой карты в таблице MIDI Implementation Chart, кроме имен привычных MIDI-манипулятров (Volume, Reverb, Chorus и т.п.), вы встретите такие названия, как Data entry, NRPN LSB, NRPN MSB, RPN LSB и RPN MSB. Может быть, вы даже попытаетесь отыскать описание этих манипуляторов в руководстве пользователя. Не исключено, что некоторые наши читатели уже экспериментировали с загадочными манипуляторами, но результат исследований оказался отрицательным. Этот раздел поможет вам научиться использовать (и довольно эффективно) закодированные заглавными английскими буквами возможности звуковой карты.

Поскольку речь пойдет о MIDI-сообщениях, применяемых для управления параметрами звука, для повторения примеров, приведенных в книге, потребуется музыкальный редактор (секвенсор). Мы будем использовать Cakewalk 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 полутона (или плюс-минус один тон). Положение колеса задается числом от –8192 до 8191.

Часто бывает так, что диапазона шириной в 2 тона оказывается не достаточно для реализации эффекта плавного изменения высоты звука. Эта проблема решается довольно просто. Через два манипулятора ввода данных (Data entry LSB и Data entry MSB) устанавливается новое значение RPN 0.

MIDI-протокол предусматривает передачу данных байтами. Некоторые их биты зарезервированы для служебных целей. Если от каждого байта “отщипнуть” по биту, то останутся этакие семибитные “недобайты”, с помощью которых можно передавать числа от 0 до 127 (вспомните о диапазоне возможных значений манипуляторов). Но, например, для программирования чувствительности манипулятора изменения тона диапазона в 128 значений оказывается недостаточно. Поэтому для передачи данных используется два семибитных фрагмента одного большого четырнадцатибитного числа. С помощью него можно передавать числа от 0 до 16383 (или от –8192 до 8191). Младшие 7 бит (Least Significant Bit, LSB — младший байт) передаются через манипулятор 38, старшие 7 бит (Most Significant Bit, MSB — старший байт) передаются через манипулятор 6.

Итак, для изменения чувствительности колеса высоты тона вызовите список MIDI-сообщений из Вашего музыкального редактора. В самом начале списка поместите последовательность MIDI-команд, указанную в табл. 3.1.

Таблица 3.1. MIDI-команды изменения чувствительности колеса высоты тона

Номер MIDI-сообщения

Номер манипулятора (controller)

Название манипулятора

Положение манипулятора (value)

1

101

RPN MSB

0

2

100

RPN LSB

0

3

6

Data Entry MSB

X

4

38

Data Entry LSB

Y

В табл. 3.1 X — число, задающее диапазон высоты звука в полутонах, а Y — число, уточняющее ширину диапазона (точная настройка, заданная в сотых долях полутона — центах). Если нет необходимости задавать диапазон с такой точностью, просто не вводите последнее MIDI-сообщение. Диапазон возможных значений параметров X и 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.2. 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

Здесь N — номер контролируемого параметра, а X и Y — числа, рассчитываемые по следующим формулам:

X = (ЗПЗ+ 8192) / 128

Y = (ЗПЗ + 8192) % 128,

где символ “ / ” означает целую часть от деления на 128, а “ % ” — остаток от деления; ЗПЗ — значение параметра звука.

Чтобы определить значение параметра звука, исходя из данных, хранящихся в MIDI-файле, нужно совершить обратное преобразование, воспользовавшись следующей формулой:

ЗПЗ = [(Data entry MSB)x128 + Data entry LSB)] – 8192.

Однако в реальной жизни компьютерного музыканта управление параметрами звука осуществляется более простым способом. Во-первых, если вы собираетесь управлять только каким-либо одним параметром, достаточно однократного выполнения MIDI-команд 1 и 2 (см. табл. 3.2), а далее можно многократно изменять только значения параметра через манипуляторы Data entry. Во-вторых, скорее всего, вам не придется каждый раз рассчитывать числа X и Y с помощью калькулятора. вы можете написать простенькую программку на языке C++... Не пугайтесь, это шутка. Дело вот в чем. Читатели, знакомые с машинной арифметикой, наверное, уже догадались, что формулы, приведенные выше, годятся только в том случае, если для представления чисел используется 14 бит, один из которых знаковый. При этом диапазон возможных значений будет лежать в пределах от –8192 до 8191. Однако большинство звуковых параметров, как и положения манипуляторов, кодируются семибитным числом. Диапазон значений при таком способе представления чисел лежит в пределах от 0 до 127. Необходимость использования манипулятора Data Entry MSB просто отпадает, так как старшие семь бит четырнадцатибитного числа оказываются ненужными (младших семи бит как раз достаточно). В этом случае можно выполнить первые две команды из табл. 3.2, а для изменения выбранного этими командами параметра звука можно воспользоваться обычными средствами музыкального редактора (изменяя положение манипулятора 38).

Прежде чем приводить список всех доступных параметров, закрепим теоретические знания практикой. Рассмотрим пример управления частотой среза фильтра при помощи параметра NRPN в редакторе Cakewalk. Номер нефиксированного параметра, управляющего частотой среза — 21, диапазон значений: от 0 до 127 (то есть можно обойтись без каких-либо формул). В начале первого трека мы разместим последовательность из двух MIDI-сообщений (рис. 3.51).

Рис. 3.51. Получение доступа к управлению частотой среза фильтра при помощи параметра NRPN

Если хотите услышать результат, нужно записать последовательность каких-нибудь нот. Допустим, вы это сделали. Теперь частотой среза можно управлять при помощи манипулятора 38. Пример изменения положения этого манипулятора средствами окна Controllers приведен на рис. 3.52. Возможно, результат своих действий вам не удастся услышать сразу. Глубина регулировки частоты среза зависит от настроек конкретного пресета. Простейший выход — попробуйте сменить пресет на какой-нибудь другой, выбранный методом “научного тыка”. Ну а если вам захочется использовать определенный пресет, то можно изменить изначальную глубину регулировки частоты среза, заданную в SoundFont, на новое значение с помощью параметра NRPN 24.

Рис. 3.52. Пример управление частотой среза фильтра

Для того чтобы вернуть начальные значения параметров звука, хранящиеся в SoundFont, достаточно выполнить MIDI-команду Reset All Controllers (манипулятор 121).

Теперь приведем полный список доступных через параметр NRPN регулировок звука. Табл. 3.3 содержит номера NRPN LSB, их названия, возможность изменения параметров во время воспроизведения ноты (Realtime), диапазон изменения параметра и единицы измерения. Стоит отметить, что EMU8000 имеет встроенную таблицу параметров резонансного фильтра. Посредством NRPN LSB 22 (управление уровнем резонанса) выбирается номер строки в табл. 3.4, содержащей параметры фильтра, причем каждому номеру таблицы одновременно соответствует несколько значений NRPN LSB 22. Например, если параметр имеет значение от 0 до 7, то выбирается нулевая строка таблицы (коэффициент 0), если от 8 до 15, то первая (коэффициент 1) и т. д. Таким образом, хотя диапазон изменения параметра лежит в пределах от 0 до 127, реально имеется всего 16 вариантов настроек резонансного фильтра.

Таблица 3.3. Доступные параметры звука

N

Название

Realtime

Диапазон

Единицы измерения

0

Delay before LFO1 starts (задержка перед запуском LFO1 от 0 до 22 с)

-

[0, 5900]

4 мс

1

LFO1 Frequency (частота LFO1от 0 до 10.72 Гц)

+

[0, 127]

0.084 Гц

2

Delay before LFO2 starts (задержка перед запуском LFO2 от 0 до 22 с)

-

[0, 5900]

4 мс

3

LFO2 Frequency (частота LFO1 от 0 до 10.72 Гц)

+

[0, 127]

0.084 Гц

4

Envelope 1 delay time (задержка амплитудной огибающей от 0 до 22 с)

-

[0, 5900]

4 мс

5

Envelope 1 attack time (время атаки огибающей модуляции от 0 до 5.9 с)

-

[0, 5940]

1 мс

6

Envelope 1 hold time (время удержания огибающей модуляции от 0 до 8 с)

-

[0, 8191]

1 мс

7

Envelope 1 decay time (время спада огибающей модуляции от 0.023 до 23.7)

-

[0, 5940]

4 мс

8

Envelope 1 sustain level (уровень поддержки огибающей модуляции)

-

[0, 127]

0.75 дБ

9

Envelope 1 release time (время освобождения огибающей модуляции от 0.023 до 23.7 с)

-

[0, 5940]

4 мс

10

Envelope 2 delay time (задержка амплитудной огибающей от 0 до 22 с)

-

[0, 5900]

4 мс

11

Envelope 2 attack time (время атаки амплитудной огибающей от 0 до 5.9 с)

-

[0, 5940]

1 мс

12

Envelope 2 hold time (время удержания амплитудной огибающей от 0 до 8 с)

-

[0, 8191]

1 мс

13

Envelope 2 decay time (время спада амплитудной огибающей от 0.023 до 23.7)

-

[0, 5940]

4 мс

14

Envelope 2 sustain level (уровень поддержки амплитудной огибающей)

-

[0, 127]

0.75 дБ

15

Envelope 2 release time (время освобождения амплитудной огибающей от 0.023 до 23.7 с)

-

[0, 5940]

4 мс

16

Initial Pitch (начальная высота тона)

+

[-8192, 8191]

1/100 тона

17

LFO1 to Pitch (степень влияния LFO1 на высоту тона от -1 до +1 октавы)

+

[-127, 127]

9.375 1/100 тона

18

LFO2 to Pitch (степень влияния LFO2 на высоту тона от -1 до +1 октавы)

+

[-127, 127]

9.375 1/100 тона

19

Envelope 1 to Pitch (степень влияния огибающей модуляции на высоту тона от -1 до +1 октавы)

-

[-127, 127]

9.375 1/100 тона

20

LFO1 to Volume (степень влияния LFO1 на громкость)

+

[0, 127]

0.1875 дБ

21

Initial Filter Cutoff (начальная частота среза фильтра от 100 до 8000 Гц)

+

[0, 127]

62 Гц

22

Initial Filter Resonance Coefficient (начальный коэффициент резонансного фильтра)

-

[0, 127]

см. таблицу 3.4

23

LFO1 to Filter Cutoff (степень влияния LFO1 на частоту среза)

+

[0, 127]

56.25

1/100 тона

24

Envelope 1 to Filter Cutoff (степень влияния огибающей модуляции на частоту среза)

-

[-127, 127]

56.25

1/100 тона

25

Chorus Effects Send (глубина хоруса)

-

[0, 255]

-

26

Reverb Effects Send (глубина реверберации)

-

[0, 255]

-

Таблица 3.4. Параметры фильтра

Кэффициент

Low Fc (Hz)

LowQ (dB)

High Fc (kHz)

High Q (dB)

DC Attenuation (dB)

0

92

5

Flat

Flat

- 0.0

1

93

6

8.5

0.5

-0.5

2

94

8

8.3

1

-1.2

3

95

10

8.2

2

-1.8

4

96

11

8.1

3

-2.5

5

97

12

8.0

4

-3.3

6

98

14

7.9

5

-4.1

7

99

16

7.8

6

-5.5

8

100

17

7.7

7

-6.0

9

100

19

7.5

9

-6.6

10

100

20

7.4

10

-7.2

11

100

22

7.3

11

-7.9

12

100

23

7.2

13

-8.5

13

100

25

7.1

15

-9.3

14

100

26

7.1

16

-10.1

15

100

28

7.0

18

-11.0

 

3.5.3. Смена типа реверберации и хоруса при помощи MIDI-сообщений

Управление эффект-процессором звуковых карт семейства AWE соответствует стандарту GS. Благодаря этому существует возможность изменения типа (вариации) эффектов реверберации и хоруса при воспроизведении MIDI-файла. Если говорить более конкретно, то это делается при помощи макросов привилегированных системных сообщений (System Exclusive Message). С тем, как использовать эти макросы в дальнейшем, мы познакомим вас на примере переключаения вариаций эффектов в редакторе Cakewalk.

Работа с системными сообщениями чем-то напоминает программирование в машинном коде (заметьте, даже не на Ассемблере). Но даже если вы не программист, пугаться не следует, в этом нет ничего страшного. Для того чтобы пользоваться данной технологией, вам не нужно обдумывать содержимое системных сообщений и представлять процесс выполнения этих, по сути дела, низкоуровневых машинных команд интерпретатором MIDI-сообщений. Просто воспользуйтесь рекомендациями в виде таблиц, которые приводятся ниже.

Содержимое макроса системных сообщений для переключения вариаций эффектов приведено в табл. 3.5. При работе с музыкальными редакторами обращайте внимание на то, в какой системе исчисления, шестнадцатеричной или десятичной, программа воспринимает числа.

Таблица 3.5. Макрос системных сообщений для смены типа реверберации

N байта в макросе

Шестнадцатеричное значение

Десятичное значение

1

F0

240

2

41

65

3

10

16

4

42

66

5

12

18

6

40

64

7

1

1

8

30

48

9

N вариации (см. таб. 3.6)

10

0

0

11

F7

247

Девятым байтом в макросе идет номер вариации реверберации. О том, какие эффекты доступны, вы можете узнать из табл. 3.6.

Таблица 3.6. Типы эффектов реверберации

N вариации

Название

Пояснения

0

Room 1

Эта группа вариаций создаёт ощущение присутствия в комнатах разных размеров от маленькой до большой

1

Room 2

-""-

2

Room 3

-""-

3

Hall 1

Создаёт ощущение присутствия в маленьком и большом концертных залах

4

Hall 2

-""-

5

Plate

Когда-то реверберацию создавали с помощью металлической пластинки. Этот эффект имеет металлический оттенок

6

Delay

Задержка

7

Panning Delay

Панорамируемая влево и вправо задержка

Смена типа хоруса (табл. 3.7) осуществляется почти так же, как и смена реверберации. Отличие заключается в восьмом байте. В макросе смены реверберации восьмой байт равен 30h (или 48), а в макросе смены хоруса — 38h (или 56).

Таблица 3.7. Макрос системных сообщений для смены типа хоруса

N байта в макросе

Шестнадцатеричное значение

Десятичное значение

1

F0

240

2

41

65

3

10

16

4

42

66

5

12

18

6

40

64

7

1

1

8

38

56

9

N вариации (см. таб. 3.8)

10

0

0

11

F7

247

Таблица 3.8. Типы эффектов хоруса

N вариации

Название

Пояснения

0

Chorus 1

Эффекты хоруса становятся более яркими от chorus 1 до chorus 4

1

Chorus 2

-""-

2

Chorus 3

-""-

3

Chorus 4

-""-

4

Feedback Chorus

Похоже на эффект свиста от рассекания воздуха

5

Flanger

Флэнжер

6

Short Delay

Короткое повторяющееся эхо

7

Short Delay

(Feedback)

Короткое эхо повторяющееся много раз

Теперь рассмотрим, как реализовать на практике переключение вариаций эффектов с помощью редактора Cakewalk. Выполните команду View > Sysx. Появится окно диалога для редактирования макросов системных сообщений, изображенное на рис. 3.53.

Рис. 3.53. Окно Sysx для редактирования макросов системных сообщений.

Это окно содержит пока незаполненный список макросов и кнопки для выполнения операций с ними. Начнем со списка. Под заголовком Bank расположены номера банков системных сообщений (макросов), Name — названия макросов, Length — длина (количество байт в макросе), Auto — включен ли или нет режим автоматического выполнения макросов сразу после загрузки сонга, Port — MIDI-устройство, для которого предназначен макрос.

Сделаем так, чтобы нулевой макрос содержал байты для установки нулевой вариации реверберации (Room 1). Щелкните по первой строке списка (Bank 0) два раза мышью или нажмите кнопку Edit Bytes. В появившемся окне Edit System Exclusive Bytes введите макрос для смены эффекта реверберации. Результат Вашей работы показан на рис. 3.54.

Рис. 3.54. Окно для редактирования банков системных сообщений

После этого нажмите кнопку OK или клавишу <Enter>. Теперь макросу можно присвоить имя. В окне Sysex нажмите кнопку Name. В появившемся окне диалога (рис. 3.55) введите название макроса, например Reverb “Room 1”.

Рис. 3.55. Окно Bank Name для ввода названия макроса

Аналогичную операцию можно проделать для всех вариаций эффектов реверберации и хоруса. После этого список макросов будет выглядеть примерно так, как показано на рис. 3.56.

Рис. 3.56. Окно диалога Sysx содержит банки для выбора всех возможных вариаций эффектов

Теперь воспользуемся результатами проделанной работы. Предположим, что в каком-то месте сонга вы хотите выбрать реверберацию типа “Hall 2” и хорус “Chorus 4”. Нет ничего проще. В списке MIDI-сообщений добавьте два сообщения типа Sysx с номерами макросов для выбора соответствующих вариаций эффектов. На рис. 3.57 показана такая последовательность сообщений: Sysx с содержимым 4 выполняет макрос Reverb “Hall 2” из списка банков системных сообщений; затем следует сообщение, устанавливающее максимальную глубину реверберации; Sysx с содержимым 11 выполняет макрос Chorus “Chorus 4” ; и в завершение — сообщение, устанавливающее максимальную глубину хоруса. Теперь вы можете услышать результаты своих трудов. Для этого, естественно, должна быть записана какая-либо последовательность нот. А можно просто выполнить четыре приведенные выше сообщения (нажав кнопку Play) и сыграть “живую” музыку на MIDI-клавиатуре. В любом случае вы ощутите установленные эффекты.

Рис. 3.57. Пример переключения вариаций реверберации и хоруса

В заключение отметим, что вариации эффектов устанавливаются одновременно для всех MIDI-каналов. Не может быть, например, так, что на первом канале была установлена реверберация “Panning Delay”, а на втором — “Plate”. По этой причине совершенно безразлично, на каком треке будут размещены сообщения для смены вариаций эффектов. Это неудобство вызвано тем, что возможности звуковых карт семейства AWE не безграничны. А существенно расширить диапазон этих возможностей можно только с помощью звуковой карты стандарта XG.

Подошла к завершению глава, в которой мы попытались вооружить вас знаниями, необходимыми для создания на домашнем синтезаторе неповторимых звуков. Как вы уже поняли, процесс создания собственных сэмплов непрост. Не случайно из сотен самодельных банков голосов инструментов, встречающихся в Internet и на CD, лишь единицы сэмплов представляют художественную ценность. Причем, чувствуется, что у многих безымянных авторов есть и фантазия, и понимание цели, но не хватает необходимых сведений о технологии. В Вашем же творческом багаже все необходимое теперь имеется.

Комментировать


Защитный код Обновить

.