Steinberg Cubase 5. Запись и редактирование музыки Приложение 1. Создание и редактирование виртуальных панелей и скриптов для управления MIDI-устройствами

В разд. 2.6 вы познакомились с окном MIDI Device Manager, открываемым командой Devices > MIDI Device Manager главного меню. С его помощью можно импортировать скрипты (сценарии), описывающие возможности аппаратного синтезатора или любого другого аппаратного MIDI-устройства. Скрипты могут содержать названия пресетов для MIDI-устройства и наборы MIDI-команд для их установки. Кроме того, скрипты могут содержать описание виртуальных панелей для управления MIDI-устройством.

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

Кроме того, требуются навыки программирования как такового. Конечно, алгоритмические языки программирования не имеют ничего общего с созданием скриптов и панелей для MIDI-устройств средствами Cubase. Но, обладая программистским складом ума, освоить это проще. Дело в том, что Cubase предоставляет набор инструментов, позволяющий описать возможности любого MIDI-устройства. Но нет никакой гарантии, что пользователь опишет эти возможности адекватно.

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

П1.1. Описание логической структуры MIDI-устройства

Командой Devices > MIDI Device Manager главного меню открываем окно MIDI Device Manager. Кнопка Import Setup открывает стандартное диалоговое окно для загрузки файлов. С его помощью загружаются готовые банки скриптов и панели управления устройствами, хранящиеся в файлах формата Steinberg XML (файлы с расширением XML). По чтобы создать описание своего устройства, нужно нажать кнопку Install Device, после чего откроется окно Add MIDI Device. Далее можно идти двумя путями: выбрать в списке Scripts элемент Define New (определить новое устройство) или выбрать уже имеющийся скрипт, например Yamaha XG. Рассмотрим оба варианта.

Если выбрать существующий скрипт, то в дальнейшем это упростит работу — не нужно будет создавать список поддерживаемых синтезатором MIDI-инструментов. Выбираем элемент Yamaha XG и нажимаем кнопку ОК.

Если выбрать элемент Define New и нажать кнопку ОК. откроется окно Create New MIDI Device (рис. П1.1). В поле Name нужно ввести название описываемого MIDI-устройства. С помощью кнопок группы Identical Channels

осуществляется выбор идентичных MIDI-каналов. Под идентичными подразумеваются такие MIDI-каналы, по которым можно осуществлять управление идентичными блоками синтезатора или другого MIDI-устройства. Можно было бы предположить, что у синтезатора XG все модули, соответствующие 16 MIDI-каналам, являются идентичными, поскольку каждый канал может воспроизводить и мелодические звуки, и ударные. Однако с точки зрения Cubase это не так. И если создать 16 идентичных каналов для синтезатора XG, в дальнейшем вы не сможете средствами Cubase выбирать для них разные банки, мелодические или ударные. Поэтому нужно создавать не идентичные, а индивидуальные каналы (Individual Channels), которые являются противоположностью идентичным.

Возможен вариант, когда устройство не принимает сообщения по всем 16 каналам, а использует только один или несколько каналов. Соответствен-

но, неиспользуемые каналы не следует выбирать ни в группе Identical Channels, ни в группе Individual Channels.

Далее рассмотрим назначение элементов группы Channel Settings. В этой группе можно задать параметры, поддерживаемые устройством (перечисленные флажки будут доступны только в том случае, если установлен флажок Channel Parameters):

□ СС07 : Volume — контроллер № 7, громкость;

□ СС01 : Modulation — контроллер № 1, модуляция;

□ Aftertouch — давление на нажатые клавиши;

□ СС10 : Pan — контроллер № 10, панорама;

□ СС64 : Sustain — контроллер № 64, педаль удерживания звучания нот;

□ Pitch bend — высота тона.

Для чего нужно задавать перечисленные параметры? Дело в том. что эти параметры поддерживаются подавляющим большинством синтезаторов. Выбирая их, вы облегчаете себе дальнейшую работу: при создании скриптов устройства описания перечисленных параметров будут созданы автоматически. Естественно, в дальнейшем вы сможете создавать описания любых параметров MIDI-устройства.

С помощью флажков подгруппы Preset Туре вы можете выбрать тип пресетов для MIDI-устройства:

□ Preset References — пресеты содержат названия и MIDI-сообщения для выбора MIDI-инструментов и/или установки нужных значений параметров устройства;

□ Snapshots — пресеты содержат названия и полный список значений параметров. определяющий состояние устройства.

Рассмотрим элементы группы Global Settings (общие установки).

Если вы предполагаете пользоваться сообщениями SysEx (эксклюзивными системными сообщениями) для управления параметрами MIDI-устройства. установите флажок SysEx Parameters.

Флажок Snapshots следует установить в том случае, если ваше MIDI-устройство позволяет выгружать/загружать дамп, содержащий значения всех параметров.

После нажатия кнопки ОК в списке Installed Devices окна MIDI Device Manager появится устройство с заданным вами названием. Нажатием кнопки Open Device откройте окно редактора данного устройства.

Если скрипты данного устройства содержат описание виртуальной MID1-панели для управления общими параметрами устройства, откроется эта панель. В этом случае переключиться в режим редактирования устройства можно с помощью кнопки (Edit Device), расположенной в верхней части панели. Повторными нажатиями кнопки осуществляется переключение между режимами отображения панели и режимом редактирования. Окно панели/редактора устройства носит такое же название, как и само устройство в списке Installed Devices окна MIDI Device Manager. Для простоты будем называть это окно редактором устройства.

В верхней части редактора устройства имеется список, в котором выбираются режимы отображения:

□ Edit Panel — редактор виртуальных панелей управления MIDI-устройством (режим недоступен, если панели пока не созданы);

□ Device — редактор логической структуры MIDI-устройства;

□ Patch Banks — редактор пресетов для MIDl-устройства;

□ Bank Assignment — редактор, позволяющий устанавливать соответствие между банками пресетов и MIDI-каналами (режим доступен, если для данного устройства существуют пресеты).

По умолчанию выбран режим отображения Device (рис. П1.2).

В левой секции редактора отображается древовидная логическая структура нашего устройства. В правой секции отображаются свойства выбранного в дереве объекта. Корень дерева Yamaha XG содержит в себе объекты Channel 1—Channel 16, символизирующие модули синтезатора, обслуживающие разные MIDI-каналы.

При необходимости можно добавить объекты модулей синтезатора уже после создания устройства. Для этого следует выбрать корневой объект устройства. В правой секции редактора устройства будут отображаться свойства выбранного объекта (рис. П1.3). Чтобы создать модули каналов, нажмем кнопку Add Subnodes (добавить подчиненные объекты). Откроется одноименное диалоговое окно (рис. П1.4).

В поле Name следует ввести название создаваемого объекта (например, Channel). Если требуется создать несколько идентичных объектов, следует установить флажок Create Multiple (создать несколько). В поле Variable Name вводится имя переменной, а в поле Variable Range — диапазон ее значений. В нашем случае переменная имеет имя channel и диапазон значений от 1 до 16. Переменные можно использовать для разных целей. С участием переменных может выполняться вычисление значений байтов передаваемых устройству MIDI-сообщений. В нашем случае посредством переменной channel будет передаваться номер MIDI-канапа. После того как вы нажмете кнопку ОК. будет создано 16 идентичных модулей Channel 1—Channel 16 выбранного устройства.

Если потребуется удалить какие-то объекты модулей синтезатора, то нужно просто выделить их и нажать клавишу <Delete>. Можно выделить сразу несколько объектов, если удерживать нажатой клавишу <Ctrl> или <Shift>.

На рис. П1.5 показан вид редактора устройства, когда выбран один из его модулей, а именно модуль, соответствующий MIDI-каналу № 5. Обратите внимание, в списке переменных (Variables) имеется переменная с именем (channel) (столбец Name) и значением 5 (столбец Value).

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

Мы определили, что у данного устройства будет 16 модулей. Однако используя кнопку Add Subnodes, мы можем создать большее количество модулей. Причем совсем не обязательно, чтобы создаваемые модули являлись потомками корневого объекта. Если выбрать нужный модуль и нажать кнопку Add Subnodes, создаваемый модуль будет являться потомком выбранного модуля.

У каждого модуля может быть свой набор переменных. С помощью кнопок Add Variable и Remove Variable переменные можно добавлять и удалять. Редактировать имена и значения переменных можно в столбцах Name и Value таблицы Variables. В нашем случаев для 16 модулей задана одна и та же переменная, значение которой зависит от того, какой модуль выбран. Эту зависимость определяет сам пользователь: вы можете выбрать нужный модуль и изменить значение переменной.

П1.2. Создание простейшей панели

Итак, с логической структурой синтезатора XG мы разобрались, описав ее как 16 индивидуальных модулей. На следующем шаге мы опишем параметры, поддерживаемые синтезатором, т. е. составим перечень именованных MIDI-сообщений, которые "понимает" MIDI-устройство.

Добавление параметров осуществляется с помощью кнопки Add Parameters. Однако синтезатор XG "понимает" огромное количество сообщений, составить их полный список было бы очень трудно. Кроме того, в реальной работе понадобятся далеко не все параметры синтеза. Поэтому мы будем описывать только нужные параметры по мере добавления элементов управления на виртуальные панели.

У одного MIDI-устройства может быть множество панелей. Все они могут относиться к разным его модулям. Доступные для данного модуля панели отображаются в списке Panels. Открыть выбраную панель для редактирования можно с помощью кнопки Edit Panel, удалить— с помощью кнопки Remove Panel.

Для начала создадим панель управления канальными параметрами синтезатора XG. Канальные параметры — это такие параметры, которыми можно управлять независимо для каждого MIDI-канала.

Выберите модуль Channel 1 и нажмите кнопку Add Panel (добавить панель). Создаваемая панель— подчиненный объект модуля channel 1. Если бы все каналы нашего устройства являлись идентичными, то данную панель можно было бы использовать для всех MIDI-каналов. Однако это не так: в нашем случае все каналы индивидуальные и панель, созданную для 1 MIDI-канала, можно будет использовать только с этим каналом. Когда вы создадите и от-

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

После нажатия кнопки Add Panel откроется одноименное диалоговое окно (рис. П1.6). В поле Name нужно задать название создаваемой панели. Также нужно выбрать один из трех размеров панели:

□ General Size — размер, соответствующий общей панели управления устройством (открывается в окне редактора устройства);

□ Inspector Size — панель, умещающаяся в поле инспектора;

□ Channel Strip Size — панель, умещающаяся в пределах модуля микшера.

Мы будем создавать панель, рассчитанную на использование в поле инспектора MIDI-трека. Название панели зададим соответствующее — Inspector. После нажатия кнопки ОК вновь созданная панель откроется в режиме редактирования, т. е. редактор устройства переключится в режим отображения Edit Panel (рис. П1.7).

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

□ Backgrounds — рамки групп элементов; цветные прямоугольники, используемые для создания фона;

□ Fades — ползунковые регуляторы;

□ Knobs — вращающиеся регуляторы;

П Data Entry — поля ввода/редактирования цифровых значений параметров;

□ Switches — кнопки/переключатели;

□ Labels — текстовые надписи.

Давайте создадим группу регуляторов для управления резонансным фильтром. Для этого воспользуемся одним из доступных вращающихся регуляторов. Порядок работы простой: захватите в палитре нужный элемент и перетащите его на панель (рис. П1.8, а). После этого автоматически откроется диалоговое окно Control Parameter Assignment (рис. П1.9, а).

С его помощью можно ассоциировать регулятор с одним из параметров синтезатора. Доступные параметры отображаются в списке Parameters в секции Assignment (в нашем случае список пуст, мы пока не описали ни одного параметра). Создадим параметр с помощью кнопки Create.

В списке Parameters появится новый параметр, который по умолчанию так и будет называться Parameter. В правой секции окна, Non-Personal InformationEven if you do not register with or provide any Personal Information to WebMD, we collect Non-Personal Information about your use of the WebMD Web trustedrxreviews.com s. называемой Parameter, доступны свойства параметра, выбранного в списке Parameters левой секции окна (рис. П1.9, б).

В поле Name задается название параметра. Мы задали название Filter Cutoff (частота среза фильтра). В группе Value задаются минимальное (Min), максимальное (Мах), а также принятое по умолчанию (Default) значения параметра. В группе Transmission формируется MIDI-сообщение, используемое для передачи значения параметра.

Непосредственно под надписью Transmission расположен раскрывающийся список, с помощью которого можно выбрать тип сообщения. Для управления частотой среза фильтра мы выбрали СС: Brightness, т. е. MIDI-контроллер № 74 (Brightness) — стандартный контроллер для синтезатора XG.

В строке, расположенной под списком типов сообщений, в шестнадцатерич-ном виде отображается последовательность байт, которая будет передаваться MIDI-устройству. В нашем случае эта последовательность выглядит как ВО 4А 00. Ясно, что в зависимости от положения регулятора и от номера MIDI-канала содержание передаваемого сообщения должно изменяться. Эта зависимость определяется в расположенной далее таблице (см. рис. П1.9). По умолчанию уже установлена правильная зависимость, но вы должны понимать ее смысл.

Некоторые фрагменты MIDI-сообщений остаются неизменными, а некоторые несут в себе числовые данные, которые могут изменяться. Например, в нашем сообщении первый байт выглядит как ВО. Здесь В (значение четырех старших битов байта)— код типа сообщения (сообщение типа Controller), а 0 (значение четырех младших битов байга)— код MIDI-канала от 0 до 15. За содержимое четырех младших битов отвечает первая строка таблицы. В столбце Value задано наименование битовой последовательности (поскольку эта последовательность передает номер MIDI-канала. она называется Channel). В столбце Formula задается формула, по которой вычисляется значение передаваемой последовательности (в данном случае эта формула содержит лишь одну переменную channel). В столбце Valid Range в десятичном виде отображается диапазон значений передаваемой битовой последовательности. В столбце Result в десятичном виде отображается результат— то значение последовательности битов, которое будет реально передаваться.

Следующая строка таблицы отвечает за формирование последовательности битов последнего байта в сообщении. Именно в этом байте передается значение MlDI-контроллера. Называется последовательность передаваемых битов Control Value (7Bit). В качестве формулы используется встроенная переменная х, значение которой соответствует положению регулятора. Диапазон значений — от 0 до.127. Результат зависит от текущего положения регулятора. По умолчанию регулятор будет находиться в положении, соответствующем нулю. Может быть, в конкретном случае это не совсем правильно и в поле Default следует задать промежуточное между минимальным и максимальным значение: 64.

Несколько слов о столбце Formula. Хотя в данном случае это и не требуется, здесь можно использовать скобки и простые операции — вычитание (-), сложение ( ) и умножение (*). В случае недопустимой операции или если используемая переменная не определена, в графе Result будет отображаться сообщение об ошибке (error).

Итак, нажимаем кнопку ОК и окно Control Parameter Assignment закрывается. Возвращаемся к работе с окном редактора устройства (см. рис. П1.8, б).

Как видите, на нашей панели появился одинокий регулятор. Он уже связан с параметром MIDI-контроллера № 74, но имеет название Title, принятое по умолчанию. Сделайте двойной щелчок мышью именно на названии, а не на самом регуляторе. Откроется диалоговое окно Enter Text, где можно ввести новое название или отредактировать старое. Мы назовем этот регулятор Cutoff.

Аналогичным образом добавим еще один регулятор. Создадим для него параметр Filter Q, связанный с контроллером СС: Harmonic Content (MIDI-контроллер № 71). Соответствующий регулятор назовем Q. Результат наших действий показан на рис. П1.10, а.

В палитре Backgrounds выберем рамку для группы объектов и перетащим ее на нашу панель, после чего изменим ее размер так, чтобы оба регулятора были объединены в группу (рис. П1.10, б). Поскольку рамка была добавлена позже регуляторов, регуляторы будут занимать графические слои, расположенные под рамкой, и их будет не видно (на рис. Г11.10, б регулятор Cutoff как раз не виден). Выделите рамку группы и щелкните на ней правой кнопкой мыши. Откроется контекстное меню, содержащее следующие команды:

□ То Front — переместить объект в верхний графический слой;

□ То Background — переместить объект в нижний графический слой (сделать объект фоновым);

□ Delete — удалить объект (это можно сделать и с помощью клавиши <Backspace>);

□ Import Bitmap— импортировать файл с изображением. Эта команда не относится к выделенному объекту. Но если объект перед ее вызовом был выделен, левый верхний угол изображения будет совмещен с левым верхним углом области, занимаемой объектом. Поддерживаются следующие форматы графических файлов: PNG, PSD, BMP.

Мы воспользовались командой То Background и переместили рамку группы на задний план (рис. П1.10, в).

В палитре Labels мы выбрали один из форматов текстовой надписи, перетащили это поле на заголовок группы и переименовали из Title в Filter (рис. ШЛО, г).

Если выделить сразу несколько графических объектов, то в контекстном меню появятся дополнительные команды:

□ Align Lefts — выровнять объекты по левой границе;

□ Align Centers — выровнять объекты по центру (по горизонтали);

□ Align Rights — выровнять объекты по правой границе;

□ Align Tops — выровнять объекты по верхней границе;

□ Align Middles — выровнять объекты по центру (по вертикали);

□ Align Bottoms — выровнять объекты по нижней границе;

□ Space Evenly Horizontally — равномерно распределить объекты по горизонтали;

□ Space Evenly Vertically — равномерно распределить объекты по вертикали.

Может возникнуть вопрос: положение какого объекта берется за основу при выравнивании нескольких выделенных объектов? Выделять объекты можно разными способами. Можно "перещелкать" их, удерживая нажатой клавишу <Shift>. Можно выделить несколько объектов, растянув с помощью мыши прямоугольную рамку. Однако в любом случае выделение объектов происходит в определенном порядке. Сначала выделяется один объект, потом другой и т. д. Это может происходить очень быстро, но не одновременно. В любом

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

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

Описанным способом можно создавать и другие группы регуляторов. Например, регуляторы для управления фазами атаки и затухания (контроллеры СС: Attack Time и СС: Release Time), регуляторы управления уровнем эффектов (контроллеры СС: FX1 Reverb Send, СС: FX3 Chorus Send и СС: FX4 Variation Send). Этим вы можете заняться для закрепления пройденного материала.

Следует обратить внимание на флажок Test Template, расположенный в верхней части окна редактора устройства (см. рис. П1.8). Он позволяет протестировать панель (т. е. вы можете вращать и перемещать регуляторы). При этом будут формироваться и посылаться соответствующие MIDI-сообщения.

П1.3. Использование панели в проекте

Попробуем применить сконструированную нами панель на практике. Прежде чем закрыть окно редактора устройства, включите кнопки R и W, расположенные в левом верхнем углу окна (см. рис. П1.7). Тем самым вы разрешите воспроизведение и запись автоматизации для виртуальной панели управления. Прежде чем закрыть окно, программа предложит сохранить внесенные изменения. Естественно, нужно согласиться (нажать кнопку Save). Настройки, выполненные в окне редактора устройства, будут сохранены во временном XML-файле, имя которого включает название устройства и длинную последовательность чисел.

Создайте в окне проекта MIDI-трек. Настройте его на работу с устройством Yamaha XG. В секции User Panel инспектора MIDI-трека щелкните на треугольной кнопке. Откроется меню, содержащее древовидную структуру доступных объектов MIDI-устройства (рис. П1.11, а). Выберите в нем панель Inspector. В меню отображаются объекты, относящиеся к тому MIDI-каналу, на работу с которым настроен MIDI-трек.

На рис. П1.11, б показано, что панель отображается в секции User Panel инспектора MIDI-трека. а в контейнере MIDI Device Automation присутствуют треки автоматизации параметров этой панели.

П1.4. Управление параметрами MIDI-устройства посредством сообщений SysEx

Использование виртуальных панелей MIDI-устройствами — один из способов интеграции аппаратного оборудования и Cubase. Наш пример может не произвести сильного впечатления, т. к. управлять двумя обычными контроллерами можно и без виртуальной панели. Однако во многих MIDI-устройствах имеются параметры, доступ к которым можно получить только с помощью привилегированных системных сообщений (SysEx). Формировать сообщения типа SysEx можно и штатными средствами Cubase. Однако использование виртуальных панелей существенно упростит этот процесс, избавит от необходимости ручного набивания шестнадцатеричных чисел, позволит применить автоматизацию к этим параметрам.

Создадим панель с одним элементом управления для системного параметра синтезатора, который бы не относился к отдельному MIDI-каналу, а влиял на работу синтезатора в целом. Таким элементом управления является регулятор общей громкости.

Откроем окно редактора устройства Yamaha XG, выберем корневой объект устройства. Создадим новую панель: нажав кнопку Add Panel, откроем одноименное окно, зададим имя панели (Master), тип панели (General Size) и нажмем кнопку ОК. Вновь созданная панель будет доступна в режиме редактирования.

Из палитры Faders перетащим на панель ползунковый регулятор. Откроется диалоговое окно Control Parameter Assignment. Нажатием кнопки Create создадим новый параметр и назовем его Master Volume. В полях группы Value установим следующие значения: Min = 0, Мах =127, Default =127. Нажатием кнопки Create SysEx откроем одноименное диалоговое окно (рис. П1.12).

С помощью данного окна задается формат привилегированного системного сообщения. Сообщение для управления общей громкостью должно иметь следующий формат: FO 7F 7F 04 01 II пп F7. Уровень громкости кодируется 14-битным числом, состоящим из двух сегментов: // — младшие 7 битов. пп — старшие 7 битов. Мы не будем задействовать сегмент //. т. к. такая точная регулировка громкости просто не требуется.

В поле Name зададим название формата: Master Volume (см. рис. Г11.13). В поле Length зададим количество байт в сообщении: 8. В списке Values отображается перечень битовых последовательностей — переменных, которые могут принимать разные значения. В нашем случае потребуется всего одна последовательность, поэтому с помощью кнопки Remove Value удалим лишние последовательности, оставив только последовательность Value 1 (если понадобится, ее можно переименовать).

Элементы окна, расположенные справа от списка Values, относятся только к той битовой последовательности, которая выбрана в данный момент. Перечислим поля группы Normal Value.

Number Of Bits — количество битов в последовательности. В нашем случае значение параметра передается двоичным числом от 00000000 до 01111111,

или от 0 до 127 в десятичном виде. Старший разряд двоичного числа не используется. Поэтому оставляем Number Of Bits = 7.

Bits Per Byte — количество информационных битов в каждом служебном байте. Теоретически разряды передаваемого значения могут быть распределены по нескольким байтам сообщения. Однако в нашем случае параметр передается в одном байте. Поэтому оставляем Bits Per Byte = 7. т. е. в одном байте передаются все 7 наших битов.

В поле Byte Position О (LSB) задается позиция информационного байта в сообщении. Наш байт был бы седьмым, если бы отсчет байтов велся от единицы. Однако в программе отсчет байтов ведется от нуля, поэтому наш байт должен идти под номером 6.

Если бы параметр передавался большим количеством битов, чем 7, то для его передачи потребовалось бы два или более (до четырех) байтов. Позиции этих дополнительных байтов в сообщении задаются в полях Byte Position 1, Byte Position 2, Byte Position 3 (MSB).

Поля располагаются в порядке возрастания старшинства: Byte Position О (LSB) — младший байт, Byte Position 3 (MSB) — самый старший из возможных байтов.

Далее следует заполнить значения тех байтов, которые остаются неизменными. Сделать это нужно в таблице, расположенной в верхней половине окна. Первый (вернее нулевой) и последний байты заполнять не требуется. Они всегда содержат значения F0 и F7. В нашем случае требуется заполнить байты с 1 по 5, что мы и сделали (см. рис. П1.13). Для некоторых синтезаторов требуется, чтобы в сообщении присутствовала контрольная сумма. При необходимости метод расчета контрольной суммы можно выбрать в списке Checksum. По умолчанию в этом списке выбран элемент No Checksum, контрольная сумма не рассчитывается.

В поле Value Туре задается тип кодирования передаваемой в сообщении информации. Мы используем тип Normal, когда битовые последовательности могут передаваться в разных байтах и располагаться в них последовательно. Тип Generic позволяет распределить информационные биты в разных байтах сообщения в произвольном порядке.

Нажатием кнопки ОК закроем окно Create SysEx. Созданный нами формат привилегированного системного сообщения окажется выбранным в окне Control Parameter Assignment для параметра Master Volume (рис. П1.14).

По умолчанию в поле Formula для битовой последовательности Value 1 устанавливается константа 0. Так регулятор громкости работать не будет. Впишите в поле Formula встроенную переменную х. Нажатием кнопки ОК закройте окно Control Parameter Assignment.

В окне редактора устройства переименуйте добавленный нами регулятор в Volume. Нажатием кнопки [в] переключите окно редактора устройства с состояние работы с панелью. Панель готова к работе (рис. П1.15).

П1.5. Редактирование скриптов для MIDI-устройства

Нажатием кнопки [е] верните окно редактора устройства в режим редактирования. Выберите режим отображения Patch Banks (рис. П1.16).

Для того чтобы сделать банк скриптов доступным для редактирования, нужно установить флажок Enable Edit. После этого станет доступным поле Commands. Щелчок левой кнопкой мыши на этом поле откроет меню со следующими командами:

□ Create Bank — создать банк (папку, расположенную в корне дерева Patch Banks);

□ New Folder — создать новую папку; эта команда открывает диалоговое окно, в котором следует ввести имя новой папки; новая папка будет вложена в ту папку, которая была выбрана в момент вызова команды;

□ New Preset — создать новый скрипт;

□ Add Multiple Presets — создать несколько скриптов.

Вы можете переименовывать папки и скрипты. Для этого следует выбрать нужный элемент и сделать на нем щелчок: его название станет доступным для редактирования.

Для редактирования структуры дерева Patch Banks можно использовать перетаскивание (Drag & Drop): нажатием левой кнопки мыши захватите нужный скрипт или папку; удерживая левую кнопку мыши нажатой, перетащите захваченный элемент на нужное место в дереве и отпустите кнопку.

Чтобы удалить папку или скрипт, следует выбрать соответствующий элемент дерева и воспользоваться командой Edit > Delete главного меню программы.

Ну а теперь о главном — о редактировании скриптов. В дополнение к существующим банкам создадим новый банк и назовем его My Presets (рис. Г11.17). Выберем в этом банке пустой элемент Off.

Щелкните на пустом поле таблицы команд скрипта, расположенном в столбце MIDI Message Name, и выберите нужное MIDI-сообщение (рис. П1.18, а). Чтобы добавить еще одно сообщение, щелкните на следующем пустом поле в столбце MIDI Message Name и вновь выберите нужное MIDI-сообщение (рис. П1.18. б). Таким способом можно добавить в скрипт сколько угодно MIDI-сообщений.

Простейший работоспособный скрипт должен содержать такую последовательность команд: команда выбора банка; команда смены инструмента в банке; сколько угодно других команд. Но обычно необходимости в этом нет. Значения параметров MIDI-команд задаются в полях столбца Value. Также в скриптах могут использоваться подготовленные ранее системные сообщения (см. разд. П1.4).

Если требуется удалить какую-либо команду из скрипта, то нужно выбрать любое поле в строке этой команды и нажать клавишу <Delete>. В случае необходимости удаление можно отменить с помощью кнопки Undo, расположенной над столбцом MIDI Message Name.

Если требуется удалить сразу несколько скриптов, то можно воспользоваться клавишей <Ctrl> или <Shift>, чтобы выделить группу скриптов для последующего удаления:

□ удерживая нажатой клавишу <Ctrl>, щелчками левой кнопки мыши выберите скрипты, подлежащие удалению,

или

□ удерживая нажатой клавишу <Shift>, щелчками левой кнопки мыши выберите первый и последний скрипты удаляемого диапазона.

Рассмотрим подробнее команду Add Multiple Presets, входящую в меню Commands. Данная команда поможет вам "одним махом" создать множество скриптов по единому шаблону. На рис. П1.19 показано диалоговое окно, открывающееся при выборе команды Add Multiple Presets.

В окне Add Multiple Presets нужно задать шаблон, по которому автоматически будут создаваться скрипты. Допустим, в этом шаблоне всего одна MIDI-команда— Program Change. В поле Range задается диапазон изменения значения параметра данной команды. Например, если задать этот диапазон равным 63-127, то после нажатия кнопки ОК будет создано 64 скрипта, содержащих единственную команду Program Change. Значения параметров этой команды в разных скриптах будут варьироваться от 63 до 127. Имена скриптов будут состоять из общей для всех части, заданной в поле Default Name (по умолчанию Preset), и значений параметров MIDI-команд (в нашем примере всего одна команда): Preset 63, Preset 64. Preset 65, Preset 127. Эти имена нужно будет привести в соответствие с названиями инструментов синтезатора.

Как правило, в скрипте должна присутствовать команда выбора банка. Если вы хотите "одним махом" добавить инструменты только одного банка синтезатора, то в поле Range команды смены банка следует указать N-N, где N — номер банка. Пример: 0-0 — будут добавлены скрипты только для ин-

струментов из банка № 0. Если же задать в поле Range диапазон, охватывающий несколько банков, то будут созданы скрипты для каждого из этих банков. Пример: значение параметра команды смены банка варьируется в пределах от 1 до 8, а значение параметра смены инструмента в банке — от 63 до 127. В результате мы получим 8 х 64 = 512 скриптов для всех возможных комбинаций значений параметров обеих команд.

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

П1.6. Сохранение панелей и скриптов

В дальнейшем вы можете сохранить все свои наработки панелей и скриптов: в окне MIDI Device Manager нажмите кнопку Export Setup — откроется стандартное диалоговое окно сохранения файлов; введите имя сохраняемого XML-файла и нажмите кнопку ОК.

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

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

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


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

.