Информационный портал специальных библиотек для слепых
Пропустить меню
Карта сайта  
Светлый по тёмному

Библиотеки для слепых
в регионах России

Центральный регион (17)
Южный федеральный округ (6)
Северо-Западный федеральный округ (9)
Дальневосточный федеральный округ (5)
Сибирский федеральный округ (11)
Уральский федеральный округ (4)
Приволжский федеральный округ (14)
Северо-Кавказский федеральный округ (6)
Крым (0)

ОБД Мемориал

Технология звукозаписи



Программирование чувствительности колеса изменения тона
 Что же такое 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-команды изменения чувствительности колеса высоты тона

Table with 4 columns and 5 rows

Номер 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
table end

В табл. 3.1 x — число, задающее диапазон высоты звука в полутонах, a Y — число, уточняющее ширину диапазона (точная настройка, заданная в сотых долях полутона,
— центах). Если нет необходимости задавать диапазон с такой точностью, просто не вводите последнее MIDI-сообщение. Диапазон возможных значений параметров
Х и Y: от 0 до 127. Чувствительность колеса высоты тона можно задавать индивидуально для каждого MIDI-канала.
В результате выполнения этой последовательности (после нажатия кнопки Play) чувствительность манипулятора высоты тона для первого MIDI-канала будет ±1 октава
(или ±12 полутонов).

Управление параметрами звука по MIDI
 В руководстве пользователя звуковой карты семейства SBLive вы не найдете описания способов управления такими параметрами генерации звука как, например, частота
среза фильтра и уровень резонанса или сведений о том, как изменять формы огибающих громкости и модуляции. Непосвященный человек может подумать, что таких
возможностей нет, что все параметры, хранящиеся в SoundFont, фиксированы и не поддаются изменениям. Однако это не так.
Что касается описанных возможностей, то их иногда бывает недостаточно. Например, ни одна современная танцевальная композиция не обходится без эффектов, связанных с изменением параметров резонансного фильтра. А если и обходится, то у ценителей такой музыки может возникнуть вполне справедливый вопрос: «Почему
бы этому DJ не покрутить колесо управления фильтром?» И это не просто наше личное мнение. Не зря ведь фирма Yamaha в своем самом современном стандарте XG определила, что любой инструмент, соответствующий данному стандарту, обязан иметь манипуляторы управления параметрами звука (такими как уровень резонанса
и частота среза фильтра). Звуковые карты семейства SBLive стандарт XG не поддерживают. Однако возможность управления параметрами звука при помощи хитрых, но не сложных MIDI-сообщений имеется. Об этой возможности мы и расскажем.
Кроме RPN, бывают еще и NRPN (Non Registered Parameter Number] — номер нефиксированного (изменяемого) параметра. Главное его отличие от RPN состоит в том, что одни и те же NRPN у разных производителей MIDI-оборудования могут соответствовать различным параметрам генерации звука. Задав NRPN, можно выбрать интересующий параметр генерации звука и определить его значение с помощью манипуляторов Data Entry.
Для звуковых карт семейства SBLive значение NRPN MSB всегда должно быть равно 127, а в NRPN LSB нужно передавать номер интересующего вас параметра звука. Значение
этого параметра передается через манипуляторы Data Entry. Таким образом, процесс управления параметрами звука сводится к выполнению последовательности
MIDI-сообщений, приведенных в табл. 3.2.

Таблица 3.3. MIDI-сообщения управления параметрами звука

Table with 4 columns and 5 rows

Номер 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
table end

Здесь N — номер контролируемого параметра, а Х и 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-сообщений. Если хотите услышать результат, нужно записать последовательность каких-нибудь нот. Допустим, вы это сделали. Теперь частотой среза можно управлять при
помощи манипулятора 38. Пример изменения положения этого манипулятора средствами окна Controllers приведен на рис. 3.52. Возможно, результат своих действий
вам не удастся услышать сразу. Глубина регулировки частоты среза зависит от настроек конкретного пресета. Простейший выход— попробуйте сменить пресет на
какой-нибудь другой, выбранный методом «научного тыка». Ну, а если вам захочется использовать определенный

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

Table with 3 columns and 17 rows

Управление эффектом № Название в реальном времени (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 мс
table end

Таблица 3.3. (окончание)

Table with 4 columns and 12 rows


Управление эффектом Название в реальном времени (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
-
table end

пресет, то можно изменить изначальную глубину регулировки частоты среза, заданную в SoundFont, на новое значение с помощью параметра NRPN 24.

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

Теперь приведем полный список доступных через параметр NRPN регулировок звука. Табл. 3.3 содержит номера NRPN LSB, их названия, возможность изменения параметров
во время воспроизведения ноты (Realtime), диапазон изменения параметра и единицы измерения. Стоит отметить, что EMU8000 имеет встроенную таблицу параметров
резонансного фильтра. Посредством NRPN LSB 22 (управление уровнем резонанса) выбирается

224 ___ ________________________Глава 3

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

Table with 6 columns and 16 rows

Коэффициент
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
table end

номер строки в табл. 3,4, содержащей параметры фильтра, причем каждому номеру таблицы одновременно соответствует несколько значении 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. Макрос системных сообщений для смены типа реверберации

Table with 3 columns and 12 rows

Номер байта в макросе
Шестнадцатеричное значение
Десятичное значение

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
table end

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

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

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

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

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

Table with 3 columns and 8 rows

Номер вариации

о
Название эффекта

Room 1
Комментарии

Эта группа вариаций создаёт

1
Room 2
ощущение присутствия в комнатах разных размеров

2
Room 3
от маленькой до большой

3
Hall 1
Создаёт ощущение присутствия в

4
Hall 2
маленьком и большом концертных залах

5
Plate
Реверберация с металлическим оттенком

6
Delay
Задержка

7
Panning Delay
Панорамируемая влево и вправо задержка
table end

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

Table with 3 columns and 12 rows

Номер байта в макросе
Шестнадцатеричное значение
Десятичное значение

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
table end

Появится окно диалога для редактирования макросов системных сообщений, изображенное на рис. 3,53.

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

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

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

Table with 3 columns and 9 rows

Номер вариации
Название эффекта
Комментарии

0
Chorus 1
 

1
Chorus 2
Эффект хоруса становится более заметным с

2
Chorus 3
увеличением номера вариации

3
Chorus 4
 

4
Feedback Chorus
Похож на свист возникающий в результате рассекания воздуха

5
Flanger
Флэнжер

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

7
Short Delay (Feedback)
Короткое многократно повторяющееся эхо
table end

454.jpg

Рис. 3.53. Окно Sysx

Результат вашей работы показан на рис. 3.54. После этого нажмите кнопку ОК или клавишу <Enter>. Теперь макросу можно присвоить имя. В окне Sysex нажмите
кнопку Name. В появившемся окне диалога (рис. 3.55) введите название макроса, например, Reverb "Room 1". Аналогичную операцию можно проделать для всех
вариации эффектов реверберации и хоруса. После этого список макросов будет выглядеть примерно так, как показано на рис. 3.56.

Рис. 3.54. Окно для редактирования банков Sysex

455.jpg

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

Рис. 3.55.

Окно Bank Name для ввода

названия макроса

456.jpg

457.jpg

Рис. 3.56. Банки вариаций эффектов

Chorus «Chorus 4»; ив завершение — сообщение, устанавливающее максимальную глубину хоруса. Теперь вы можете услышать результаты своего труда. Для этого,
естественно, должна быть записана какая-либо последовательность нот. А можно просто выполнить четыре приведенные выше сообщения (нажав кнопку Play) и сыграть
«живую» музыку на MIDI-клавиатуре. В любом случае вы ощутите установленные эффекты.

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

458.jpg

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

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