Редактирование списка событий
Редактирование списка событий
Необходимость редактирования списка MlDl-событий возникает обычно, когда требуется разобраться в проблемах, источник которых неясен. В таком списке можно вставлять, удалять или модифицировать любой вид событий, в том числе запуск и выключение нот, управление громкостью, MIDI-контроллерами, изменение высоты звучания нот и т. д.
События представляют собой MIDI-сообщения, формат которых определен спецификацией MIDI. MIDI-сообщения подразделяются на две категории: channel (сообщения для каналов) и system (системные).
Сообщения для MIDI-каналов
Channel messages (Сообщения для MIDI-каналов) предназначены для любых устройств в системе, чей номер канала соответствует номеру канала, закодированному в сообщении. Сообщения для каналов бывают двух типов: voice messages (связанные со звуком) и mode messages (устанавливающие режим).
Сообщения для каналов, связанные со звуком
Note On (Включить ноту). Сообщение о включении звучания ноты. Параметры: note (номер ноты) и velocity (скорость нажатия на клавишу).
Номер ноты задается абсолютным значением в диапазоне от 0 до 127, при этом ноте до первой октавы соответствует десятичный номер 60. В MIDI принята нумерация октав с нуля, поэтому нота до первой октавы обозначается C5.
Как известно, чем сильнее удар по клавише фортепиано, тем громче звук. Второй параметр как раз соответствует динамике обычной фортепианной клавиатуры. Электронные клавиатуры, способные передавать динамику нажатия, обычно называют активными. Однако можно выделить два типа «активности»: чувствительность к скорости нажатия velocity и к силе давления на клавишу aftertouch (послекасание). Второй тип мы рассмотрим позднее. В этом разделе книги идет речь о скорости нажатия, поскольку на самом деле громкость звука при нажатии на клавиши электронных клавиатур зависит не от силы, а именно от скорости нажатия. Данная характеристика косвенно отражает силу удара по клавише. Она задается числом в диапазоне от 0 до 127 (обычно используется логарифмическая шкала). В мощных синтезаторах этот параметр управляет не только громкостью звука, но также и фильтрами (громким звукам соответствует более звонкое звучание) и выбором семплов.
Note Off (Выключить ноту). Сообщение о выключении звучания ноты. Параметры те же: note и velocity, но значение второго параметра равно нулю.
Polyphonic Key Pressure или Key Aftertouch. Сообщение о давлении на отдельную клавишу (послекасание). Параметры: note и pressure value (величина давления).
Клавиатура настоящего фортепиано не имеет такого свойства. Суть свойства заключается в том, что, если к уже нажатой клавише приложить дополнительное усилие (то есть слегка надавить на нее), клавиатура, отрабатывающая такое дополнительное нажатие, посылает в MIDI-интерфейс соответствующие команды и сообщает измеренные величины давления. Большинство профессиональных синтезаторов реагируют на эту команду, но все по-разному. В одних случаях они производят эффект расстроенного пианино, в других – звук электрогитары с эффектом «дисторшн», и т. д.
Program Change (Смена программы, или инструмента). Сообщение о смене программы в канале. Параметр один: program number (номер программы). Под программой здесь понимается номер инструмента или тембра в выбранном банке. Величина задается значением от 0 до 127. Стандартом General MIDI определены 128 основных мелодических и 47 ударных инструментов, собранных в нулевом банке. Устройства с расширенным набором инструментов имеют дополнительные банки, а также могут иметь частично измененный основной набор.
Channel Pressure или Channel Aftertouch. Сообщение о давлении на клавиши (послекасание) – усредненное давление на все нажатые клавиши. Параметр один: pressure value (величина давления).
Pitch Bend Change. Сообщение об изменении высоты всех нот в канале, то есть строя инструмента. Диапазон значений – от 0 до 16383, среднее значение принимается за относительный нуль, так что условный диапазон изменений – от -8192 до 8191.
Control Change. Сообщение об изменении состояния органов управления (MIDI-контроллеров). Параметры: control (номер контроллера) и control value (значение контроллера).
По характеру своего воздействия MIDI-контроллеры делятся на continuous (непрерывные) – ручки, движки, ползунки, изменяющие значения в некоем диапазоне, и switches (переключатели) – педали, кнопки, тумблеры, имеющие только два состояния: on (включено) и off (выключено). В табл. 4.1 приведена принятая нумерация контроллеров.
Таблица 4.1. Нумерация контроллеров
Для управления параметрами звука применяются два основных способа: абсолютный и относительный. При абсолютном способе параметр полностью зависит от установленного значения контроллера. При относительном способе имеется некое стандартное значение, соответствующее нейтральному положению (64). Для таких параметров, как громкость или панорама, используется абсолютный способ управления; для других – например, глубина реверберации, частота среза фильтра – относительный.
Состоянию контроллера-переключателя off соответствует значение 0, состоянию on – значение 127. Значения от 1 до 126 включительно игнорируются.
Рассмотрим MIDI-контроллеры и их работу.
Сообщения класса MIDI-контроллеры
В табл. 4.2 показаны применяемые на практике MIDI-контроллеры:
Таблица 4.2. MIDI-контроллеры
Bank Select (Выбор банка). Во многих MIDI-устройствах существует возможность работать со встроенными, а также дополнительно подгружаемыми наборами инструментов (тембров) и звуковых эффектов, которые для удобства объединены в банки звуков, или просто банки. Одновременно в одном канале может использоваться только один банк. Для переключения банков и служит контроллер Bank Select, который состоит из двух частей:
Bank Select MSB (Выбор банка, старший значащий байт);
Bank Select LSB (Выбор банка, младший значащий байт).
Одним устройствам для переключения банков требуется только один из этих контроллеров, другим – оба.
По умолчанию устанавливается нулевой банк. После смены банка обязательно должен быть выбран инструмент (тембр), то есть отправлено сообщение Program Change. Для отработки сообщений о смене банка и инструмента различным устройствам требуется разное время, иногда довольно продолжительное (десятки миллисекунд). В зависимости от реализации некоторые устройства при поступлении этих сообщений выключают звучащие в канале ноты.
Modulation (Модуляция). Контроллером задается глубина частотной модуляции в канале. При значении 0 (по умолчанию) модуляция отключена, при значении 127 устанавливается максимальная глубина.
Portamento (Портаменто). Портаменто называют способ певучего исполнения мелодии, когда один звук постепенно (как бы скользя) переходит в другой. Если этот контроллер-переключатель выключен, каждая нажатая нота начинает звучать на частоте, зависящей от высоты ноты и – дополнительно – от значений контроллеров управления высотой. При включенном портаменто очередная нота начинает звучать на частоте, заданной либо контроллером Portamento Control (он рассмотрен ниже), либо предыдущим сообщением Note On. Затем ее высота плавно изменяется до нужной за время, определенное контроллером Portamento Time (он рассмотрен ниже). Другими словами, последнее сообщение Note On всегда фиксируется в качестве исходной высоты для последующей ноты. При этом все скольжения от ноты к ноте выполняются независимо.
Portamento Time (Время портаменто). Контроллер задает время плавного скольжения от частоты предыдущей ноты до частоты очередной ноты. Значение 0 соответствует минимальному времени, 127 – максимальному.
Portamento Control (Управление портаменто). Задает ноту, от которой плавно перестраивается частота, позволяя определить другую исходную высоту ноты, отличную от установленной сообщением Note On.
Main Volume (Общая громкость). Задает общую громкость звучания канала. Обычное значение – 100.
Pan (Панорама). Задает соотношение уровней стереоканалов (стереобаланс) для MIDI-канала, то есть положение инструмента в стереопанораме. По умолчанию устанавливается в 64 (среднее положение в стереопанораме). Значение 0 соответствует крайнему смещению в левый стереоканал, 127 – в правый.
Expression (Выразительность). Определяет степень выразительности звука. На простых MIDI-инструментах только дублирует контроллер Main Volume, на инструментах с развитым синтезом управляет более тонкими параметрами выразительности. Обычное значение – 127.
Sustain Pedal, Hold1 (Педаль сустейна, удержание звучания). Действие этого контроллера-переключателя аналогично действию правой педали фортепиано: в его включенном состоянии все отпущенные клавиши продолжают звучать. Иными словами, в канале задерживается отработка поступающих для каждой ноты сообщений Note Off. При выключении контроллера все задержанные сообщения отрабатываются одновременно. На активные в это время ноты сброс контроллера не влияет.
Sostenuto Pedal (Педаль удержания звучания отдельных нот). Этот контроллер-переключатель действует подобно Sustain Pedal, но удерживает звучание только тех нот, которые уже нажаты к моменту включения контроллера. Все остальные ноты отрабатываются в обычном порядке. Иными словами, сообщения Note Off откладываются только для тех нот, для которых сообщения Note On поступили до включения Sostenuto Pedal.
Soft Pedal (Педаль приглушения). Действие контроллера-переключателя аналогично действию левой педали фортепиано: смягчается звучание всех нот, нажатых при его включении.
Harmonic Content (Содержание гармоник). Контроллер изменяет глубину резонанса фильтра в канале, позволяя подчеркнуть высокочастотные гармоники. Повышение значения данного контроллера увеличивает крутизну характеристики (добротность) фильтра, усиливая частоты, лежащие вне частоты среза. Значение по умолчанию – 64.
Release Time (Время затухания звука). Контроллер определяет время затухания звучания нот после их выключения, то есть с момента отработки сообщения Note Off до полного исчезновения звука. Значение по умолчанию – 64.
Attack Time (Время атаки звука). Контроллером определяется время начальной атаки звука – нарастания громкости звучания нот с момента отработки сообщения Note On до заданного значения громкости. Значение по умолчанию – 64.
Brightness (Яркость). Контроллер изменяет частоту среза фильтра в канале, управляющего ослаблением высокочастотных составляющих звука. Значение по умолчанию – 64.
Reverb Level (Уровень реверберации). Контроллер задает глубину эффектов, основанных на постоянной задержке сигнала.
Chorus Level (Уровень хоруса). Этим контроллером задается глубина эффектов, основанных на переменной задержке сигналов – Chorus, Flanger, Phaser и т. п.
Variation Level (Уровень эффекта Variation). Контроллер задает глубину эффекта Variation (Вариация). Управление эффектом зависит от реализации инструмента.
Для расширенного управления синтезом звуков введены дополнительные контроллеры: Registered Parameter Number, или RPN (Зарегистрированные номера параметров), и Non-Registered Parameter Number, или NRPN (Незарегистрированные номера параметров). Их номера представлены в табл. 4.3.
Таблица 4.3. Дополнительные MIDI-контроллеры
Полученные устройством сообщения RPN или NRPN запоминаются, после чего в любое время могут быть переданы значения выбранного параметра при помощи контроллера Data Entry (Ввод данных).
RPN Increment (Увеличение RPN на 1) и RPN Decrement (Уменьшение RPN на 1) меняют контроллер соответственно на предыдущий (по номеру) или последующий, при этом параметр не используется.
Стандартом General MIDI определена интерпретация только трех RPN, значения которых задаются старшими байтами Data Entry, как показано в табл. 4.4.
Таблица 4.4. Сообщения RPN, значения которых задаются старшими байтами Data Entry
Pitch Bend Sensitivity (Чувствительность смещения высоты) определяет число полутонов, на которое смещается высота при получении сообщения Pitch Bend Change. По умолчанию принимается диапазон смещения в два полутона вверх или вниз по высоте. Подстройки позволяют сместить строй инструмента в канале на заданное число полутонов при Coarse Tuning (Грубая подстройка) или сотых долей полутона при Fine Tuning (Точная подстройка). Несмещенному строю соответствует значение 64.
В некоторых устройствах используются для подстройки отдельных инструментов в различных банках два дополнительных RPN (табл. 4.5), хотя стандартом они не регламентируются.
Таблица 4.5. Дополнительные сообщения RPN
Стандартом GS введен набор NRPN для управления генераторами огибающих и резонансными фильтрами, а также для настройки параметров ударных инструментов. Стандартом XG введены дополнительные NRPN для ударных.
Сообщения, устанавливающие режим канала
В табл. 4.6 представлены сообщения, предназначенные для установки режима канала.
Таблица 4.6. Сообщения, устанавливающие режим канала
All Sounds Off (Выключить все звуки) выключает все звучащие ноты.
Reset All Controllers (Сброс всех контроллеров) устанавливает каждый контроллер в значение по умолчанию. Обычно сброс выполняется перед воспроизведением партитуры.
Local Control (Локальное управление) служит для запрета (при нулевом значении) и, соответственно, разрешения (при значении 127) управления устройством с локальной панели. В случае запрета устройство управляется только по MIDI-интерфейсу.
All Notes Off (Выключить все ноты) выключает все звучащие ноты. В зависимости от состояния режимов Sustain и Sostenuto звучание конкретной ноты может и не прекратиться.
Omni Off (Выключить режим Omni) служит для выключения режима Omni. Когда он выключен, устройство обрабатывает сообщения только для выбранного канала, что позволяет разделить устройства между каналами.
Omni On (Включить режим Omni) используется для включения режима Omni, в котором устройство обрабатывает сообщения для всех каналов. Такой режим требуется в основном для устаревших моделей электронных музыкальных инструментов, имеющих один MIDI-канал и не поддерживающих разделение тембров.
Mono (Режим моно) переключает устройство в одноголосный режим. При этом в каждый момент времени может звучать только одна нота. Включение новой ноты приводит к принудительному отключению предыдущей. Значение параметра в сообщении Mono некоторые устройства воспринимают как количество MIDI-каналов, по которым распределяются ноты в одноголосном режиме при выключенном Omni.
Poly (Полифонический режим) служит для переключения устройства в многоголосный (полифонический) режим. В этом случае каждая новая нота включает очередной генератор, а когда их количество исчерпано, новая нота либо игнорируется, либо ей выделяется уже работающий генератор. При этом, конечно, звучавшая ранее нота пропадает.
Следует заметить, что сообщения Omni Off, Omni On, Mono и Poly вызывают отработку сообщения All Sounds Off.
Различные комбинации режимов Omni, Poly и Mono называют обычно Mode (Режим). Существует четыре разновидности работы MIDI-устройств:
• Omni On, Poly;
• Omni On, Mono;
• Omni Off, Poly;
• Omni Off, Mono.
Среди современных MIDI-устройств наиболее распространен Mode 3 – полифонический режим с независимой работой каналов.
Системные сообщения
Различают system messages (системные сообщения) трех типов: common (общие), real-time (реального времени) и exclusive (исключительные).
В табл. 4.7 приведены применяемые системные сообщения (код в таблице дан в шестнадцатеричном виде).
Таблица 4.7. Системные сообщения
System Exclusive – SysEx (Системное исключительное сообщение) предназначено для передачи специальной информации конкретным устройствам.
Главной отличительной чертой системных исключительных сообщений от других MIDI-сообщений является то, что они не действуют в реальном времени (их нельзя передавать во время проигрывания MIDI-произведения). Эти сообщения, как правило, приводят к коренной перестройке основных параметров MIDI-инструмента. Исключительными (эксклюзивными) такие сообщения называются потому, что стандартизован только формат их передачи. В отличие от других MIDI-сообщений System Exclusive может состоять из любого числа байтов. Форматом определен лишь признак конца сообщения – байт F7. Обычно первыми тремя байтами идентифицируются фирма-производитель устройства, код конкретной модели и порядковый номер устройства в сети. В остальном формат сообщения определяется производителем.
Следовательно, SysEx для конкретной модели инструмента подойдет только к такой же модели – и ни к какой другой.
В табл. 4.8 представлены идентификаторы наиболее известных фирм-производителей (даны в шестнадцатеричном виде).
Таблица 4.8. Идентификаторы наиболее известных фирм-производителей
Song Position Pointer (Указатель позиции в партитуре) предназначен для установки позиции в партитуре для устройств, имеющих встроенный секвенсор, автоаккомпанемент или ритм-блок.
Song Select (Выбор партитуры) определяет, какая из существующих партитур будет воспроизведена при получении системного сообщения Start (см. далее).
Tune Request (Запрос подстройки) предписывает выполнить автоматическую подстройку частоты. Обычно это относится к аналоговым синтезаторам; их строй может смещаться из-за нестабильности элементной базы, на которой они построены.
EOX – End Of SysEx (Конец системного исключительного сообщения) указывает на завершение последовательности исключительного системного сообщения.
Timing Clock (Синхронизация по времени) служит для синхронизации устройств.
Сообщения Start (Запуск партитуры), Continue (Продолжение партитуры) и Stop (Остановка партитуры) предназначены, соответственно, для запуска воспроизведения или записи выбранной партитуры с начала (Start), с прерванного места (Continue) или с позиции, установленной при помощи Song Position Pointer, и остановки (Stop).
Active Sensing (Проверка соединений MIDI-сети) используется для проверки MIDI-сети. Получив это сообщение, приемные устройства начинают следить за MIDI-потоком и при отсутствии каких-либо сообщений автоматически отрабатывают сообщения All Notes Off, All Sounds Off и Reset All Controllers.
System Reset (Системный сброс всех устройств сети) предназначен для отмены всех настроек.
Список событий в Cakewalk
Чтобы открыть список MIDI-событий, надо выделить один или несколько треков в окне Track (Трек) и выполнить команду Event List (Список событий) из меню View (Просмотр) либо нажать на правую кнопку мыши (указатель при этом должен находиться на треке). Из появившегося контекстного меню следует выбрать одноименную команду либо нажать кнопку Event List view (Просмотр списка событий) на панели инструментов. Откроется окно Event List, изображенное на рис. 4.9.
Рис. 4.9. Окно Event List
События из выбранных треков перечислены в окне сверху вниз по одному в строке. Когда вы перемещаетесь по списку событий, Cakewalk автоматически модифицирует маркер Now (Настоящее время), который показан в дисплеях инструментальных панелей Transport (Транспортная) и Position (Позиция), изображенных на рис. 4.10 и 4.11 соответственно.
Рис. 4.10. Инструментальная панель Transport. Слева – дисплей маркера времени Now
При воспроизведении список событий прокручивается, следуя за событиями. При остановке воспроизведения подсвечивается то событие, на котором произошла остановка. При любом изменении времени Now список событий модифицируется, и подсветка перемещается на то событие, запуск которого будет следующим.
Когда Event List включает больше одного трека, события объединяются в хронологическом порядке. Например, если выбрать треки 1 и 3 и открыть окно Event List, вы увидите список событий, объединенных из треков 1 и 3. Одновременно можно открыть любое число списков Event List. При этом каждый из них будет содержать информацию о любом числе треков. Вы можете заменить треки, показанные в Event List, нажав на кнопку Pick Track (Указатель треков) и выделяя треки по своему желанию.
Итак, в каждой строке окна Event List показано единственное событие со всеми его параметрами. Существуют различные типы событий, но для всех общими являются следующие характеристики:
• время события в формате SMPTE (часы: минуты: секунды: кадры);
• время события в музыкальном формате (такты: доли: удары);
• тип события.
Остальные параметры меняются в зависимости от типа события. В окне Event List тип события указан в колонке Kind (Тип). Для его смены нужно дважды щелкнуть мышью в ячейке на пересечении строки события и колонки Kind, при этом откроется окно Kind of Event (Тип события), вид которого показан на рис. 4.12 и в котором надо пометить нужный тип.
Рис. 4.11. Инструментальная панель Position. Слева – дисплей маркера Now
Рис. 4.12. Окно Kind of Event
Как видно из рисунка, все события разделены на три группы сообщений: MIDI, Special (Специальные) и Notation (Для нотации).
Данный текст является ознакомительным фрагментом.