В нижнем рабочем поле (столбцы Action Target, Operation, Parameter 1,Parameter 2) определяются параметры преобразования MIDI-сообщения. Напротив каждого из рабочих полей имеется пара кнопок: Add Line (добавить строку в список на рабочем поле) и Delete Line (удалить строку из списка на рабочем поле).
В строках верхнего рабочего поля вам предстоит набирать программу, согласно которой будет проводиться выявление сообщений, характеризующихся определенными признаками. В строках нижнего рабочего поля предстоит формулировать конкретное задание для Logical Editor, т. е. указывать действия, которые должны быть выполнены в отношении выявленных сообщений.
Рабочие поля можно сравнить с двумя разграфленными листками обыкновенного блокнота. На первом вы составляете описание какого-либо объекта (например, "женщина, молодая, красивая"), а на втором пишете, что нужно будет с таким объектом сделать, если он вам встретится (например, "познакомиться").
Оба рабочих поля понадобятся вам не всегда. Если, допустим, требуется удалить определенные сообщения, то такая операция программируется без использования нижнего рабочего поля. Однако когда вы соберетесь преобразовать сообщения, то необходимо будет определить, какие свойства должны быть изменены и каким именно образом.
Задача логическому редактору в общем виде формулируется путем выбора одной из строк в раскрывающемся списке, который расположен в левом верхнем углу окна Logical Editor:
В поле, расположенном справа, содержатся пояснения к выбранной задаче преобразования.
Разработчики утверждают, что средствами Logical Editor можно выполнить преобразования любой сложности. И это очень похоже на правду. Во всяком случае, количество различных вариантов преобразований подсчитать очень трудно. Никому из нас не удалось бы перебрать их и за всю свою жизнь. Logical Editor, как и любое устройство, логика которого построена не по жесткой схеме, а программируется, сам может считаться объектом творчества. Поэтому бессмысленно пытаться обучать вас выполнению 5, 10, 20 конкретных преобразований. Все, чем мы можем вам помочь в освоении Logical Editor, так это разъяснить общие принципы его применения. Вот и продолжим это занятие.
Рассмотрим использование окна Logical Editor на примере одного из пресетов. Откроем список Presets и выберем пресет standard set 2 > del patch changes. Судя по названию, пресет предназначен для удаления из списка сообщений о смене MIDI-инструмента.
Программа преобразований загрузилась в Logical Editor. Посмотрим, как это отразилось на содержании окна (Рисунок 6.32).
В безымянном раскрывающемся списке, расположенном в верхнем левом углу окна, появилась надпись Delete. Значит, сообщения действительно будут удаляться. Справа в поле комментария содержится пояснение о том, что будут удалены все сообщения, удовлетворяющие условиям фильтрации.
Условие фильтрации набрано в верхнем рабочем поле. Но здесь трудно охватить запись взглядом. Поэтому для справки соответствующее логическое выражение приведено и в информационной строке, расположенной чуть ниже. В данном случае условие выглядит следующим образом:
( Туре = Program OR ( Type = Controller AND ( Valuel = 0 OR Valuel = 32 ) ))
Попробуем расшифровать эту запись. Начнем с пары внешних скобок — ( и ). Они служат признаками начала и конца логического оператора, определяющего условия фильтрации. Сообщения каких типов будут удалены?
Или типа Program Change (см. выражение Туре = Program), или типа Controller (см. выражение Туре = Controller). О том, что именно "или — или", свидетельствует первый слева оператор OR. Все ли сообщения типа Controller будут удалены? Нет, не все, а только те, которые, будучи сообщениями данного типа, одновременно удовлетворяют дополнительным условиям: имеют значения своего параметра, равные или 0, или 32. Об этом свидетельствует выражение (Туре = Controller AND ( Valuel = О OR Valuel — 32 )). Как известно, контроллер № 0 — это BankSel LSB (младший байт сообщения о выборе банка), а контроллер № 32 — это BankSel MSB (старший байт сообщения о выборе банка). Итак, действительно, в рассмотренном условии запрограммировано удаление всех возможных сообщений, связанных со сменой MIDI-инструмента. Даже предусмотрен тот факт, что в различных MIDI-спецификациях предусмотрены различные способы адресации банка.