Иллюстрированный самоучитель по CubaseSX


Работа с привилегированными системными сообщениями


Вероятно, вы уже заметили, что в раскрывающемся списке Insert есть строка SysEx, это означает, что в окне List Editor можно создавать и редактировать привилегированные системные MIDI-сообщения (SysEx — System Exclusive Message).

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

Системные сообщения представляют собой последовательность двузначных шестнадцатеричных чисел (одно такое число соответствует байту). Каждое системное сообщение начинается с числа F0 — идентификатора начала системного сообщения. Затем следует идентификатор устройства (фирмы-производителя этого устройства) или устройства, с которым совместим данный синтезатор. Например, синтезаторы фирмы Yamaha кодируются числом 43, фирмы Roland — 41, EMU — 18. После идентификатора следует последовательность кодов, длина и формат которой определяется моделью синтезатора (устанавливается производителем) и типом передаваемых сообщений. Завершается системное сообщение всегда числом F7 — идентификатором конца системного сообщения (ЕОХ — End Of eXclusive). 

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

11110000 F0 Exclusive status 

01000011 43 YAMAHA ID 

00010001 In Device Number

01001100 4C XG Model ID 

0aaaaaaa aa Address High 

0aaaaaaa aa Address Mid 

Qaaaaaaa aa Address Low 

0dddddd dd Data

11110111 F7 End of Exclusive



В первом столбце содержатся двоичные коды системных сообщений, во втором — их шестнадцатеричные коды. Прописными (большими) буквами обозначаются шестнадцатеричные цифры от А до F, а строчными (маленькими) — переменные. В приведенном примере пппп — номер устройства (синтезатора), которому адресовано сообщение; аа — адрес одной или нескольких ячеек памяти синтезатора, содержащих параметр, значение которого нужно изменить. В данном случае для передачи адреса используется три сегмента: старший (High), средний (Mid) и младший (Low) байты. Переменные dd — это данные, которые необходимо записать в память по указанному адресу. В правом столбце приведены сведения о назначении байта. Конкретные значения переменных в системных сообщениях следует искать в других таблицах, которые, в свою очередь, могут содержать ссылки на следующие таблицы. Разобраться с этими таблицами не так-то просто, но можно, если захотеть. Чтобы, например, для звуковой карты, поддерживающей спецификацию XG, выбрать реверберацию типа Tunel (звук, как в тоннеле), последовательность системных сообщений должна выглядеть так: F0 43 10 4С 02 01 00 11 00 F7. О применении системных сообщений для смены типа эффекта в некоторых звуковых картах мы подробно рассказали в книгах [6, 9, 11, 46]. Наиболее распространенное применение системных сообщений — передача синтезатору команды сброса в исходное состояние.


Итак, если вы хотите получить доступ ко всем без исключения ресурсам синтезатора, без редактора системных сообщений SysEx вам не обойтись. Как добраться до такого редактора в Cubase SX? Сейчас мы вам об этом расскажем на примере записи сообщения о системном сбросе синтезатора, соответствующего спецификации GM. Оно необходимо для того, чтобы привести систему управления синтезатора в правильное исходное состояние. Подобное сообщение желательно вставлять в начале каждого проекта в часть на один из его MIDI-треков. Слово "подобное" означает здесь то, что сообщение о сбросе должно соответствовать стандарту, который поддерживается синтезатором. Конкретно, следует формировать следующие сообщения: 





  •  Для GM-синтезатора - F0 7E 7F 09 01 F7; 



  •  Для ХС-синтезатора - FO 43 10 4С 00 00 7Е 00 F7;



  •  Для GS-синтезатора — F0 41 10 42 12 40 00 7F 00 41 F7.

    В раскрывающемся списке Insert выберите строку SysEx и известным вам способом вставьте в начало списка сообщение типа SysEx (рис. 6.11).

    Сообщение типа SysEx вставлено, но оно пока пусто (содержит только признаки начала и конца SysEx). Обратите внимание на ячейку в столбце Comment, именно там отображается содержание сообщения, в данном случае символы F0,F7. Щелкните на этой ячейке для того, чтобы открыть окно редактора системных сообщений MIDI-Sysex-Editor (рис. 6.12).



    Рис. 6.11. В список вставлено сообщение типа SysEx



    Рис. 6.12. Окно MIDI-Sysex-Editor

    Сообщение может быть очень длинным, тогда оно займет много строк. Чтобы легче было в строках ориентироваться, по мере ввода байтов сообщения они автоматически нумеруются: в столбце Address приводится шестнадцате-ричный номер первого байта в строке. Для сведения в правом столбце (ASCII) приводится содержание каждой строки сообщения, отображенное в виде символов, соответствующих ASCII-кодировке. Это всё вспомогательные элементы окна. Главное здесь столбцы 1 — 7 и инструменты записи байтов. Напомним, что мы собираемся сформировать следующее содержание сообщения: F0 7E 7F 09 01 F7 (здесь все числа шестнадцатеричные).



    Начальный и конечный байты уже введены (удалить их невозможно). Для ввода нового байта первым делом нажмите кнопку Insert. Строка удлинится на одну позицию, в которой пока будет записаны два нуля. Щелчком на этой позиции сделайте ее доступной для ввода и с клавиатуры введите 01. Дело в том, что последовательность вводится в обратном порядке, и сейчас для ввода доступно содержание предпоследнего байта. Затем опять нажмите кнопку Insert и введите 09. Повторяйте так, пока не введете все содержание сообщения (рис. 6.13).



    Рис. 6.13. Введено содержание сообщения о сбросе GM-синтезатора

    Если содержание сообщения в руководстве пользователя представлено в десятеричной или двоичной системах счисления — не беда. В окно редактора системных сообщений MIDI-Sysex-Editor встроен калькулятор. Он позволяет вам в поле Binary вводить двоичное число, которое после нажатия клавиши <Enter> программа автоматически преобразует в десятичное (поле Decimal) и введет в ту позицию на рабочем поле окна, которая в данный момент выделена зеленой рамкой. Аналогичным образом будет обстоять дело, если начать с ввода десятичного числа в поле Decimal. Оно будет преобразовано и в двоичную и в шестнадцатеричную формы. Калькулятор "умеет считать" до десятичного числа 127, а большего от него и не требуется. Введенную последовательность байтов есть смысл сохранить в файле с расширением SYX, воспользовавшись кнопкой Export. В Internet можно разыскать "готовые к употреблению" банки системных сообщений и загрузить их в свой синтезатор. Для этого служит кнопка Import.

    После проверки и исправления (при необходимости) введенной последовательности байтов нажмите ОК. Содержание SysEx появится в столбце Comment окна List Editor (рис. 6.14).



    Рис. 6.14. В списке появилось сообщения о сбросе GM-синтезатора


    Содержание раздела