1.htm

Подробно о работе с MIDI

- 6.1. Подготовка к работе с MlDI-данными
  - 6.1.1. Выбор параметров отображения MIDl-сообщений
  - 6.1.2. Выбор опций записи и воспроизведения MIDl-сообщений
  - 6.1.3. Выбор параметров MIDI-функций
  - 6.1.4. Выбор параметров функции Chase
- 6.2. Работа в редакторе List Editor
  - 6.2.1. Назначение секций окна редактора List Editor
  - 6.2.2. Инструменты окна List Editor, редактирование сообщений
    - Обзор инструментов окна List Editor
    - Управление отображением сообщений
    - Вставка новых сообщений
  - 6.2.3. Работа с сообщениями типа NRPN
  - 6.2.4. Работа с привилегированными системными сообщениями
  - 6.2.5. Редактирование нот с MIDI-клавиатуры
  - 6.2.6. Пошаговый ввод нот
- 6.3. Работа в редакторе Key Editor
  - 6.3.1. Инструменты окна Key Editor
  - 6.3.2. Секция отпечатков клавиш
  - 6.3.3. Секция графического редактирования параметров MIDI-сообщений
- 6.4. Работа в редакторе Drum Editor
  - 6.4.1. Особенности инструментов редактора Drum Editor
  - 6.4.2. Редактирование партий ударных инструментов
- 6.5. Работа в Logical Editor
- 6.6. Применение квантизации
  - 6.6.1. Выбор параметров квантизации
  - 6.6.2. Суть различных алгоритмов квантизации
- 6.7. Применение команд меню MIDI
  - 6.7.1 Transpose... — транспонирование выделенных MIDI-нот
  - 6.7.2. Merge MIDI in Loop — перезапись MIDI-сообщений с разных треков на один; применение MIDI-плагинов
  - 6.7.3. Dissolve Part — распределение сообщений с выделенной части по отдельным трекам
  - 6.7.4. O-Note Conversion — преобразование номеров нот в соответствии с Drum Map
- 6.8. Применение функций, доступных из подменю MIDI > Functions
  - 6.8.1. Delete Notes... — удаление нот, имеющих заданные параметры
  - 6.8.2. Velocity... — преобразование значений параметра Velocity сообщений Note On

В этой главе мы подробно рассмотрим все средства редактирования MIDI-сообщений, имеющиеся в Cubase SX. А их очень даже не мало. Как известно, в программу Cubase SX по наследству перешли лучшие находки, зарекомендовавшие себя в ее более ранних версиях. История развития и совершенствования продуктов, в имени которых присутствует слово "Cubase", началась с программного MIDI-секвенсора. Звук, аудиоэффекты и виртуальные инструменты появились в Cubase позже. Не удивительно, что MID1-составляющая программы доведена ее разработчиками до состояния, близкого к совершенству. В программе представлены все ставшие классическими способы численного и графического редактирования MIDI-данных, все мыслимые функции их обработки, масса интересных MIDI-эффектов.
Нам кажется уместным сказать здесь о том, что некоторые компьютерные музыканты не совсем верно понимают роль MIDI в работе над музыкальными композициями. Слово "MIDI" рядом со словом "музыка" часто употребляется в негативном и даже в ругательном смысле. Такие пользователи утверждают примерно следующее: "Музыка, записанная "вживую" с микрофона, в том числе с помощью программы-звукового редактора, — это высший класс. Музыка, полученная на основе добротных сэмплов, лупов и грувов все в том же звуковом редакторе, — это нормально. Музыка, исполняемая синтезатором звуковой карты под управлением MIDI-секвенсора, — примитив". Это неверно, прежде всего потому, что MIDI — всего лишь основа технологии записи, редактирования и воспроизведения команд, управляющих синтезатором. Качество звука определяется не секвенсором, а синтезатором. Да и качество самой музыки зависит не столько от MIDI-секвенсора, сколько от умения музыканта использовать его возможности. Ругать секвенсор так же бессмысленно, как и, например, сетовать, что песня не удалась, так как ее ноты вы записывали не гусиным пером, а шариковой ручкой. Справедливости ради скажем, что еще несколько лет назад действительно были основания критиковать компьютерную MIDI-музыку. Слишком велик был разрыв в качестве синтеза звуков мультимедийными картами и дорогими профессиональными музыкальными синтезаторами (хотя и те и другие управлялись и управляются по MIDI). Однако сейчас наступила эпоха бурного развития виртуальных синтезаторов, которые под управлением MIDI-секвенсора формируют звук, не уступающий по своим свойствам тому, что создается лучшими образцами реальных инструментов. Поэтому музыкант, недооценивающий MIDI, обречен на неудачу. Пожалуй, можно считать, что MIDI ныне переживает второе рождение. Конечно, рамки стандарта, созданного почти четверть века назад, стали тесноватыми. Это ведет к тому, что MIDI-технология развивается. Кроме того, зарождаются более совершенные технологии управления музыкальными инструментами и студийным оборудованием, в основе которых, однако, все равно лежат принципы, апробированные в MIDI.
Итак, приступим к изучению тех возможностей записи и редактирования MIDI-сообщений, которые таятся в Cubase SX.
И начнем с того, что подготовим программу к работе с MIDI-данными, причем сделаем это более тщательно и детально, чем при подготовке к выполнению элементарных операций на начальном уровне, описанных в разд. 1.13.

6.1. Подготовка к работе с MIDI-данными

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

- подключение к звуковой карте MIDI—клавиатуры или MIDI-синтезатора (разд. 1.1);
- настройка MIDI-портов (разд. 2.2);
- настройка параметров проекта (разд. 2.9);
- загрузка файла с проектом, открытие и закрытие проекта, сохранение проекта (разд. 1.13);
- настройка метронома (разд. 2.8);
- описание MIDI-усгройств, подключенных к компьютеру (разд. 2.1);
- загрузка банков SoundFont (разд. 2.4);
- импорт MIDI-файлов и файлов в форматах предыдущих версий Cubase (разд. 1.13);
- выбор параметров фильтрации MIDI-сообщений, поступающих через входные MIDI-порты (разд. 2.2);
- подготовка MIDI-треков к записи и осуществление записи (глава 4).

Осталось познакомить вас лишь с несколькими операциями из числа тех, которые есть смысл проводить до начала работы с MIDI-проектом, и среди них:

- выбор параметров отображения MIDl-сообшений;
- выбор опций записи и воспроизведения MIDI-сообщений;
- выбор параметров MIDI-функций;
- выбор параметров функции Chase.

6.1.1. Выбор параметров отображения MIDI-сообщений

Командой главного меню File > Preferences откройте окно Preferences и в левой части окна выберите раздел Event Display - MIDI. В правой части окна будут доступны опции управления отображением MIDI-сообщений (рис. 6.1).

Рис. 6.1.Диалоговое окно Preferences (раздел Event Display - MIDI)

В раскрывающемся списке Default Edit Action вы можете по своему вкусу выбрать тот MIDI-редактор, который будет открываться двойным щелчком левой кнопки мыши на части, находящейся на MlDI-треке в окне проекта. По умолчанию будет открываться Key Editor, который, и в самом деле, используется чаще остальных редакторов (List Editor, Logical Editor, Drum Editor).
Раскрывающийся список Part Data Mode позволяет выбрать форму отображения сообщений типа Note на MIDI-треке в окне проекта:

- No Data — не отображать никак;
- Lines — отображать в виде горизонтальных линий, длина которых пропорциональна длительности ноты;
- Scores — отображать в виде символов нот (без признаков длительности);
- Drums — отображать в виде символов, принятых для записи партий ударных инструментов.

Если установлен флажок Show Controllers, то кроме сообщений типа Note в частях на MIDI-треках в окне проекта будут отображаться также и другие сообщения (например, типа Controller) в виде вертикальных линий, высота которых пропорциональна значению параметра контроллера.
Если установлен флажок Edit as Drums when Drum Map is assigned, то в частях на MIDI-треках, которые ассоциированы с барабанными картами, сообщения типа Note будут отображаться в виде символов, принятых для записи партий ударных инструментов. Кроме того, двойным щелчком на такой части будет открываться окно Drum Editor (независимо от того, какой редактор выбран в раскрывающемся списке Default Edit Action).
В раскрывающемся списке Note Name Style вы можете выбрать систему обозначения нот, которая будет использоваться при их отображении в окнах редакторов:

- MIDI — символами А, В, С, D, E, F, G и # в сочетании с обозначением номера MlDI-октавы (от -2 до 8);
- MIDI and Value — кроме символов, характерных для предыдущего варианта, будут отображаться также номера MIDI-ног (от 0 до 127);
- DoReMi — в виде слоговых обозначений нот (Do, Re, Mi, Fa, Sol, La, Si и #) в сочетании с обозначением номера MIDI-октавы;
- Classic — символами А, В, С, D, E, F, G и # (для MIDI-октав с —2 по 1), причем октава обозначается количеством штрихов в нижнем индексе (для MIDI-октав с —2 по 0); символами а, Ь, с, d, e, f, g и # (для MIDI-октав со 2 по 8), причем октава обозначается количеством штрихов в верхнем индексе (для MIDI-октав с 3 по 8);
- Classic (German) — обозначения аналогичны предусмотренным в варианте Classic за одним исключением: вместо символа альтерации # (диез) к символу, обозначающему ноту, добавляется окончание is. Например, Cis — до-диез первой октавы, dis — ре-диез второй октавы (в системе нумерации Cubase SX).

6.1.2. Выбор опций записи и воспроизведения MIDI-сообщений

Командой главного меню File > Preferences откройте окно Preferences и в левой части окна выберите раздел MIDI. В правой части окна будут доступны опции записи и воспроизведения MlDI-сообщений (рис. 6.2).

Рис. 6.2. Диалоговое окно Preferences (раздел MIDI)

Если установлен флажок Snap Record Parts to Bars, то любая MIDI-часть, полученная в результате записи, будет автоматически удлиняться таким образом, чтобы она оканчивалась точно на границе со следующим тактом. Это делает более удобным дальнейшее редактирование (например, копирование и перемещение частей).
При установленном флажке MIDI Thru Active автоматически будет обеспечен мониторинг записываемого MIDI-трека. В результате вы будете слышать то, что играете на MIDI-клавиатуре (подробнее о мониторинге читайте в разд. 2.7). Если между клавиатурой и звуковой картой связь по MIDI установлена в обоих направлениях, то для предотвращения самовозбуждения MIDI-системы вы должны на MIDI-клавиатуре выбрать режим "Local Off (подробнее о проблеме самовозбуждения MIDI-системы см. в разд. 1.1).
При установленном флажке Reset on Record End no окончании записи Cubase SX будет посылать синтезатору сообщение Reset о сбросе его установок в состояние, предусмотренное по умолчанию. Если установлен флажок Reset on Part End, то сообщение Reset будет формироваться в процессе воспроизведения по окончании каждой очередной части. При установленном флажке Reset on Stop сообщение Reset будет формироваться при остановке записи или воспроизведения. Эти опции могут быть полезными для того, чтобы в следующих сеансах записи или воспроизведения не сохранялись те установки параметров синтеза, которые использовались ранее.
Если установлен флажок "Note On" Priority, то сообщения о нажатии клавиш (Note On) приобретают приоритет по отношению к любым другим MIDI-сообщениям. Это может быть существенно в том случае, когда MIDI-интерфейс оказывается перегруженным сообщениями, так как обеспечивается гарантированная передача сообщений наиболее важного типа. Это означает, что если из-за перегрузки какие-то сообщения не удается передать, то программа пожертвует любым другим сообщением, но только не тем, в котором содержится информация о нажатии клавиши. Действительно, какой смысл в том, что синтезатор получит сообщение, например, об изменении высоты звука на несколько центов, если команда о начале формирования самого звука к нему не попадет?
В поле ввода Length Correction вы можете в тиках выбрать интервал времени, которым должно быть отделено начало следующей ноты от окончания предыдущей. Наличие такого интервала необходимо для корректного управления по одному и тому же MIDl-каналу формированием нот, имеющих одинаковые номера.
Предположим, что идет запись одновременно на несколько MIDI-треков, а вы в это время открыли часть для ее редактирования в каком-либо из MIDl-редакторов. Если установлен флажок Solo Record in Editors, то в подобной ситуации режим записи сохранится только для того трека, на котором находится редактируемая часть. Разработчики считают, что так удобнее.
В поле ввода Record Catch Range in ms вы можете в миллисекундах выбрать интервал времени опережения фактического включения режима записи по отношению к моменту, соответствующему положению левого локатора. Это позволяет избежать досадных случаев пропуска записи первой ноты, которые могут происходить из-за того, что вы сыграли ее чуть раньше, чем указатель текущей позиции достиг левого локатора.

6.1.3. Выбор параметров MIDI-функций

Командой главного меню File > Preferences откройте окно Preferences и в левой части окна выберите секцию MIDI — Functions Parameters. В правой части окна будут доступны две опции управления отображением MIDI-сообщений.
В поле ввода Legato Overlap производится настройка функции Legato (команда главного меню MIDI > Legato). Если Legato Overlap = 0, то после применения функции Legato к выделенным нотам окончание каждой предыдущей ноты будет точно совпадать с началом следующей. Если Legato Overlap > 0, то ноты будут перекрываться. Интервал перекрытия (в тиках) будет равен числу, введенному в поле Legato Overlap. При Legato Overlap < 0 между нотами будет оставлен соответствующий промежуток.
От состояния флажка Split MIDI events зависит результат применения функции Split в окне проекта в тех случаях, когда место разрезания части приходится не на промежуток между нотами, а на саму ноту. При установленном флажке нота будет разрезана на две более короткие. Одна из вновь образованных нот окажется в предшествующей (левой) части, а вторая — в последующей (правой) части. Если флажок сброшен, нота останется только в левой части, причем ее длительность будет сокращена (у звука будет отрезан и удален "хвост").

6.1.4. Выбор параметров функции Chase

Начнем с того, что напомним назначение функции Chase, с которой вы впервые встретились в разд. 4.4.2. В частях на MIDI-треках записаны, как правило, не только сообщения о нажатии на MIDI-клавиши, но и сообщения других типов. Это могут быть, например, сообщения об изменении различных параметров синтеза, о смене MIDI-инструмента и т. д. Если воспроизведение происходит с самого начала трека, то все сообщения последовательно считываются с трека и посылаются синтезатору. Все в порядке. А что будет, если воспроизведение стартует не с начала трека? Некоторые сообщения будут пропущены, останутся "за бортом". Синтезатор даже и "не узнает", что они записаны где-то там на треке в частях, которые не были воспроизведены. Получится, что музыка будет воспроизводиться совсем не тем инструментом, совсем не с теми громкостью, панорамой и реверберации, что были задуманы вами. Так вот, чтобы такого не случалось, в Cubase SX и предусмотрена функция Chase.
Ее суть заключается в том, что сразу же после включения режима записи или воспроизведения программа учтет все MlDl-сообщения, заключенные между началом трека и позицией старта.
В секции MIDI — Chase Events Filter диалогового окна Preferences (рис. 6.3), вызываемого командой File > Preferences, можно выбрать те типы MIDI-сообщений, которые не будут учитываться функцией Chase.
Напомним смысл типов сообщений, перечисленных в секции MIDI - Chase Events Filter:

- Note — сообщения о нажатии MIDI-клавиш;
- Poly Pressure — давление на отдельные нажатые клавиши;
- Controller — сообщения об изменениях значений контроллеров;
- Program Change — смена инструмента;
- Aftertouch — усредненное давление на нажатые клавиши в одном MIDI-канале;
- Pitchbend — сдвиг высоты тона;
- Sysex — привилегированные системные сообщения.

Рис. 6.3. Диалоговое окно Preferences (секция MIDI - Chase Events Filter)

Функцией Chase не будут восприниматься сообщения тех типов, для которых установлены флажки.
Приведем пример. Допустим, что для некоторого трека в основной секции инспектора выбран инструмент Harmonica. Пусть при этом в части на треке записано сообщение о смене MIDI-инструмента: в начале 32-го такта выбран инструмент Viola. Вы мышью переместили указатель текущей позиции в 33-й такт и включили воспроизведение. Если флажок Program Change установлен, то вы услышите губную гармонику (сообщение о смене инструмента не будет воспринято программой), а если флажок сброшен — скрипку.
После завершения подготовки программы можно переходить непосредственно к записи и редактированию MIDI-сообщений. В Cubase SX есть несколько редакторов, позволяющих работать с MIDI-данными, представленными в самых различных формах (см. разд. 1.7). Пожалуй, есть смысл начать с того редактора, в котором вы можете работать непосредственно с MIDI-сообщениями. Вам понадобится умение ориентироваться в MIDI-сообшениях различных типов, поэтому нелишним будет освежить в памяти содержание разд. 1.2.

6.2. Работа в редакторе List Editor

List Editor относится к наиболее важным редакторам программы. В принципе, практически все, на что способна программа Cubase SX в части работы с MIDI-сообщениями, можно реализовать в этом редакторе, хотя сделать это будет не всегда легко. Информация в окне List Editor отображается в форме, наиболее близкой к форме представления информации в MIDI-системе — в виде сообщений (с параметрами), привязанных к определен-*ным моментам времени и относящихся к конкретному треку.
Командой главного меню MIDI > Open List Editor откройте окно редактора List Editor (рис. 6.4). Команды вызова этого и остальных MIDI-редакторов доступны лишь в том случае, когда в окне проекта выделена хотя бы одна часть. Если выделены несколько частей, то в окне редактора отображаются сообщения той части, которая расположена ближе к началу трека.

Рис. 6.4. Окно редактора List Editor

6.2.1. Назначение секций окна редактора List Editor

Давайте осмотримся. Основное пространство окно редактора List Editor пo вертикали поделено на три секции:

- левая секция — список сообщений (List), предназначенный для численного отображения и редактирования параметров сообщений;
- средняя секция — графический дисплей (Event Display), предназначенный для отображения и графического редактирования сообщений;
- правая секция — столбец Value (Value Display), предназначенный для графического редактирования некоторых параметров сообщений.

В левой секции окна List Editor находится таблица — список всех MIDI-сообщений в выделенной части, записанных подряд так, как они реально расположены в файле. Исключение составляют только MIDI-сообщения Note Off (формируются MIDI-клавиатурой, когда вы отпускаете нажатую клавишу). Для удобства просмотра непосредственно они не выводятся на экран, зато у MIDI-сообщений Note On (нажатие на клавишу), обозначенных в списке как Note, присутствует такой параметр, как End (время окончания звучания ноты).
Каждое сообщение (Event) занимает в списке одну строчку и, по существу, представляет собой указание, которое должен выполнить музыкальный синтезатор в определенный момент. Каждая строка в списке соответствует какому-либо сообщению (событию). Все события привязаны ко времени. Чем раньше наступает событие, тем выше в списке находится строка.
В списке отображаются сообщения, содержащиеся в той части, которую вы выделили в окне проекта. Если в части много сообщений, то не все из них одновременно доступны для просмотра и редактирования. Вывести на экран любой фрагмент списка можно с помощью вертикальной полосы прокрутки.
Возможность просмотра всех MIDI-сообшений подряд в одном списке оказывается полезной в тех ситуациях, когда не удается другими способами найти ошибку (лишнее или неправильное MIDI-сообщение).
Список всех MIDI-сообщений выводится в девять столбцов. Вы можете менять расположение столбцов, перетаскивая мышью их заголовки. Далее мы рассмотрим столбцы в том порядке, в котором они размещаются по умолчанию.
В первом из них, обозначенном как L, отображается перемещение указателя текущей позиции при воспроизведении: стрелочка указывает на то сообщение, которое в данный момент воспроизводится (или на котором воспроиз-"ведение было остановлено). Для того чтобы переместить эту стрелочку, воспользуйтесь клавишами <+> или <->.
Строку списка можно выделить щелчком на любом ее месте. Если на панели инструментов нажата кнопка , а в выделенной строке записана нота, то вы услышите ее звучание. Пошаговое прослушивание в прямом направлении производится с помощью клавиши <вниз> (происходит движение вниз по списку), в обратном — клавиши <вверх> (происходит движение вверх по списку).
Во втором столбце (Туре) указывается тип сообщения (Note, Program Change, Controller и т. д.).
В третьем столбце (Start) указывается позиция MIDI-события в партии в формате такт.доля.часть доли.тик (см. разд. 113.5). Для сообщения Note в четвертом столбце (End) в том же формате указывается время окончания звучания ноты, а в пятом столбце (Length) ее длительность.
В шестом столбце (Data 1) отображается первый байт значения сообщения. Для сообщений Note — это высота тона в формате, выбранном в окне Preferences (см. разд. 6.1). Для сообщений Controller — это номер контроллера или его имя, для Program Change — номер программы (тембра, MIDI-инструмента, патча), для Aftertouch — значение силы давления на клавишу. Для Pitchbend — значение первого байта, соответствующего грубой настройке высоты.
В седьмом столбце (Data 2) отображается второй байт значения сообщения. Для сообщений Note — это Velocity. Для сообщений Controller — это значение контроллера. Для сообщений других типов значение в этом столбце отсутствует.
В восьмом столбце (Comment) могут содержаться текстовые комментарии, например, пометки, позволяющие легче ориентироваться в списке сообщений, или любые сведения, которые автор композиции пожелает сообщить пользователям.
В девятом столбце (Channel) отображается номер MIDI-канала, с которым ассоциировано данное сообщение. В Cubase SX этот номер канала имеет значение, только если весь MIDI-трек направлен в канал ANY (в инспекторе окна проекта). В противном случае MIDI-сообшения трека выводятся в MIDI-канал, указанный в окне проекта, а значения номеров каналов, содержащиеся в MIDI-сообщениях, игнорируются.
Редактирование содержания таблицы производится с клавиатуры компьютера или мышью с помощью меню и полей ввода. Щелкнув на любом MIDI-сообщении, вы его выделите. Двойной щелчок на любом параметре позволяет редактировать его значение. Нельзя изменять только значения в столбце Туре, а также в пустых полях. Поочередными щелчками на MIDI-сообщениях с одновременным удержанием клавиши <Shift> можно выделить несколько MIDI-сообщений. Далее к ним можно применить какую-либо функцию. Их можно удалить с помощью клавиши <Delete>, а также команды Edit > Delete главного или контекстного меню.
В средней секции окна List Editor расположена секция графического редактирования сообщений. По горизонтали здесь отложены такты и их доли, а по вертикали — позиция в списке. Поскольку в списке все события расположены последовательно, в графической части редактора они располагаются "лесенкой". Здесь с помощью инструмента (Draw) редактируются существующие и записываются новые сообщения, а нежелательные сообщения удаляются с помощью инструмента (Erase). Применимы также и другие инструменты, о которых мы расскажем чуть позже.
В правой секции окна List Editor располагается столбец Value (Value Display), который предназначен для графического редактирования некоторых параметров сообщений. Для сообщений Note — это Velocity. Для сообщений Controller — это значение контроллера, для Program Change — номер программы (тембра, MIDI-инструмента, патча), для Aftertouch — значение силы давления на клавишу. Для Pitchbend — значение первого байта, соответствующего грубой настройке высоты.
Регулируемый параметр отображается в виде горизонтально расположенных столбиков. Длина столбика пропорциональна величине параметра. Каждый столбик, по сути дела, служит элементом регулировки. Для того чтобы помочь пользователю быстрее сориентироваться, регуляторы Velocity выделены черным цветом, а остальных параметров — серым. Из всех инструментов, имеющихся в окне List Editor, здесь фактически действует только (Draw). He случайно при перемещении в правую секцию окна редактора курсор мыши приобретает форму карандаша. Щелкнув на столбике, его можно укоротить, уменьшив тем самым величину соответствующего параметра. А если ухватиться за столбик мышью и перемещать ее влево-вправо, то вы получите в свое распоряжение плавный регулятор. Чтобы перейти к редактированию соседних параметров, не обязательно отпускать кнопку мыши.
Обратите внимание на то, что при изменении длины столбика одновременно будет изменяться число в ячейке одного из столбцов левой секции (Data 1 или Data 2), а также цвет прямоугольника, отображающего соответствующее сообщение в средней секции окна редактора.
С назначением правой секции окна редактора вы теперь, вероятно, разобрались. Давайте сравним роли левой (список сообщений List) и средней (Event Display) секций окна List Editor. С одной стороны, они частично дублируют друг друга: в обеих можно изменять время поступления и длительность сообщения типа Note. Правда, в левой секции это делается численным способом (а значит, и с высокой точностью), а в правой — графическим (следовательно, приближенно). Но не в этом состоит самое главное отличие. Принципиально другое. В левой секции можно отредактировать любые параметры любого сообщения и удалить его, но нельзя вставить новое сообщение. Сделать это можно, только работая в средней секции.
До сих пор мы занимались только тем, что учились ориентироваться в пределах окна List Editor, теперь настало время научиться работать в нем.

6.2.2. Инструменты окна List Editor, редактирование сообщений

В настоящем разделе мы познакомимся с инструментами окна List Editor, подробнее остановимся на некоторых приемах, позволяющих более эффективно использовать возможности List Editor. Речь пойдет о поиске сообщений определенного типа, методике вставки новых сообщений, работе с сообщениями типа NRPN и SysEx, редактировании нот с MIDI-клавиатуры, пошаговом вводе нот.

Обзор инструментов окна List Editor

Инструменты окна List Editor располагаются в его верхней части. Среди них есть кнопки, раскрывающиеся списки и одно поле ввода (рис. 6.5).

Рис. 6.5. Инструменты окна List Editor

Рассмотрим назначение инструментов окна List Editor.
(Solo Editor) — кнопка включения режима "Соло" для части, редактируемой в окне List Editor. Иными словами, работая с каким-то треком, вы можете слушать только его, а звук остальных треков отключить. Кнопка не связана с аналогичными инструментами, находящимися в окне проекта (например, в основной секции инспектора трека). После закрытия окна List Editor режим "Соло", включенный в нем, автоматически отменяется.
(Object Selection) — кнопка выделения объектов в левой и средней секциях окна List Editor. Пользуясь ею, можно выделить как отдельное сообщение, так и целую группу сообщений. Для этого в левой секции окна достаточно нажать левую кнопку мыши и провести ее курсором по нескольким строкам списка. В средней секции нужно "нарисовать" пунктирный прямоугольник, охватывающий выделяемые объекты.
(Draw) — основной инструмент, с помощью которого в окне производится вставка сообщений и редактирование их параметров.
(Erase) — инструмент удаления сообщений.
(Zoom) — инструмент изменения масштаба отображения по горизонтали (в средней секции окна). При его применении в сочетании с нажатой клавишей <Alt> изображение уменьшается, без клавиши <Alt> — увеличивается.
(Mute) — инструмент мьютирования (заглушения) отдельного сообщения или целой группы сообщений (действует в средней секции окна). Заглушенные сообщения не удаляются из части, однако при воспроизведении они игнорируются.
(Autoscroll) — кнопка включения режима автоматической прокрутки по вертикали изображения в окне в режиме записи или воспроизведения. Если кнопка нажата, то на экране всегда видно сообщение, которое воспроизводится в данный момент. Кнопка доступна, если выключен режим пошагового ввода, т. е. не нажата кнопка (Step Input). Далее идут:

- раскрывающийся список Insert, предназначенный для выбора типа вставляемого сообщения;
- поле Mouse Position, в котором отображается позиция курсора мыши при условии что он находится в пределах средней секции окна. Если нажата кнопка (Step Input), то на месте Mouse Position появляется поле ввода Insert Position, в котором отображается и может быть отредактирована позиция вставки сообщения;
- кнопка (Snap), предназначенная для включения режима привязки вставляемых сообщений к долям тактов;
- раскрывающийся список Quantize, предназначенный для выбора шага квантизации, с которым располагаются вставляемые сообщения;
- раскрывающийся список Length Quant., предназначенный для выбора шага квантизации длительности сообщений;
- раскрывающийся список Mask и кнопка позволяющие выбирать сообщения, отображаемые в окне List Editor;
- раскрывающийся список Colors, предназначенный для выбора цветовой гаммы отображения параметров сообщений;
- кнопка (Auto Play), предназначенная для включения режима прослушивания звучания нот при выборе в левой секции окна сообщений типа Note.

В левой части панели инструментов расположены еще 6 кнопок (на рис. 6.5 видно, что 4 из них недоступны), с ними мы познакомим вас несколько позже.

Управление отображением сообщений

В части может содержаться очень много сообщений. Если все они будут отображаться в окне List Editor, то поиск нужного сообщения может стать очень утомительной работой, требующей концентрации внимания. Для того чтобы упростить поиск сообщений, некоторые из них можно временно скрыть. Для этого в окне List Editor есть специальные средства. Среди инструментов, расположенных в верхней области окна, найдите кнопку (Chow/Hide Filter View). Нажав на нее, можно открыть (или, наоборот, скрыть) панель управления отображением сообщений различных типов (рис. 6.6).

Рис. 6.6. Панель управления отображением сообщений

Если не установлен ни один флажок, то в списке будут отображаться все сообщения, имеющиеся в выделенной части. Устанавливая тот или иной флажок, вы скроете сообщения определенных типов. Например, можно оставить видимыми на экране только сообщения типа Note или сообщения типа Program Change. Согласитесь, что работать только с определенной группой сообщений будет удобнее, чем со всеми сразу.
В окне List Editor предусмотрено еще одно средство выбора отображаемых сообщений: раскрывающийся список Mask. Как им пользоваться?
Выделите в списке окна List Editor MIDI-сообщение того типа, который вы хотите видеть на экране, и затем выберите в раскрывающемся списке Mask строку Event Types. В списке окна List Editor останутся только сообщения выбранного типа, а остальные будут скрыты от ваших глаз. Например, если вы выделили в списке, сообщение типа Note, то только сообщения этого типа и останутся на экране в результате применения функции Mask.
Если же в списке окна List Editor выбрать сообщение типа Controller, а в раскрывающемся списке Mask выбрать строку Controller and Event Types, то вы увидите только те сообщения, у которых с выбранным совпадает не только тип, но и значение Data 1. Например, если вы выбрали Controller — Sustain, то после применения Controller and Event Types в списке будут видны только контроллеры сустейн-педали.
Если в раскрывающемся списке Mask выбрать строку Event Channels, то в списке останутся только сообщения, ассоциированные с определенным MIDI-каналом.
Для того чтобы снова перейти в режим просмотра всех сообщений, нужно в раскрывающемся списке Mask выбрать строку Nothing.

Вставка новых сообщений

Теперь расскажем о том, как вставлять новые сообщения. Пусть в список, представленный на рис. 6.4, нужно вставить сообщение о смене MIDI-инструмента (программы). В начале трека выбран MIDI-инструмент Acoustic Piano (в стандартном GM-банке — MIDI-инструмент № 1), а нам хочется, чтобы партию, записанную в части на этом треке, начиная с 17-го такта, исполнял MIDI-инструмент Electric Piano (в стандартном GM-банке — № 3).
Первым делом уберем с экрана все лишние сообщения, установив на панели управления отображением сообщений (см. рис. 6.5) все флажки, кроме единственного флажка Program Change. Картина существенно упростится. Теперь выберем инструмент вставки сообщений (Draw) и в средней секции окна указатель текущей позиции поставим на начало 17-го такта (рис. 6.7).

Рис. 6.7. Пример редактируемого списка сообщений

В списке Insert, расположенном в верхней части окна среди других инструментов, выберем тип вставляемого сообщения (в данном случае Program Change). Наведем указатель мыши на начало 17-го такта, чуть ниже последней заполненной строки списка, и сделаем щелчок левой кнопкой мыши. В списке появится еще одна строка с сообщением .типа Program Change (рис. 6.8).

Рис. 6.8. Новое сообщение о смене MIDI-инструмента в списке окна List Editor

Посмотрим на плоды своих трудов. Во-первых, видно (поле в столбце Start), что сообщение вставлено не точно в позицию начала 17-го такта. Ошибка
при наведении курсора мыши на 17-й такт в средней секции окна составила в данном случае 76 тиков. Если это принципиально (когда, например, первая нота в семнадцатом такте звучит раньше), то щелкнем на поле тиков в ячейке Start и введем в него число 0.
Во-вторых, пока что смены инструмента не произошло: ведь вставленным оказался инструмент № 1. Щелкнем на ячейке столбца Data 1 и вместо числа 1 с клавиатуры введем в нее 3 (можно также воспользоваться клавишами <вверх> и <вниз>). Вот теперь, наконец-то, дело сделано. Смена инструмента завершена (рис. 6.9).

Рис. 6.9. Смена MIDI-инструмента в списке окна List Editor завершена

Заметим, что установка сообщений точно в начало доли такта в средней зоне окна возможна, если на панели инструментов нажата кнопка (Snap). Шаг сетки, к которой будут привязаны вставляемые сообщения, выбирается в раскрывающемся списке Quantize.
В списке Length Quant, выбирают дискретные значения длительности вставляемых сообщений типа Note.
Методика записи и редактирования сообщений других типов аналогична рассмотренной.

6.2.3. Работа с сообщениями типа N RPN

В документации на звуковые карты сведения о нерегистрируемых параметрах (NRPN), как правило, приводятся в виде таблиц, в которых содержатся значения младшего и старшего байтов номеров NRPN. В Cubase SX они (LSB и MSB) также вводятся раздельно.
Значения LSB и MSB в документации на звуковые карты приводятся в шестнадцатеричной системе счисления, а в окне List Editor значения параметров этих сообщений необходимо указывать в десятичной. Поэтому, чтобы ввести в программу номер NRPN, значения его старшего и младшего байтов необходимо перевести в десятичную систему счисления. Для этого откройте инженерный калькулятор из набора стандартных программ Windows и выберите шестнадцатеричную систему счисления (опцией Hex). Введите значение NRPN LSB и поменяйте систему счисления на десятичную (опцией Dec). Калькулятор покажет десятичное значение NRPN LSB. Таким же образом получите десятичное значение NRPN MSB.
Рассмотрим пример. В синтезаторах, поддерживающих MlDI-специ-фикацию XG, предусмотрена возможность управления частотой среза фильтра — параметром Filter Cutoff Frequency — посредством NRPN, у которого LSB = 20h и MSB = Olh. Символ h означает шестнадцатеричную систему счисления. С помощью калькулятора получим десятичные значения: Ь8В = 32и MSB = 01.
Для ввода NRPN LSB предназначен контроллер № 98, а для ввода NRPN MSB — контроллер № 99. Для ввода старшего байта (MSB) значения NRPN служит контроллер № 6 (Data Entry MSB). Младший байт (LSB) значения NRPN нам не понадобится, так как для XG-совместимых MIDI-устройств он по умолчанию равен нулю.
Допустим, вы хотите установить максимальную частоту среза фильтра (десятичное значение 127). Для этого в окне List Editor вы должны вставить три сообщения типа Controller, в ячейках столбцов Data 1 выбрать имена контроллеров NRPN MSB, NRPN LSB и DataEnt MSB, а в ячейках столбцов Data 2 ввести значения контроллеров: 32, 1 и 127 (рис. 6.10).

Рис. 6.10. Пример использования сообщений NRPN

Следует заметить, что целью описанного выше примера является иллюстрация принципа работы с NRPN. На практике применять NRPN для управления синтезаторами, совместимыми с XG, особого смысла нет (вы легко сможете найти очень удобные графические редакторы), а управление частотой среза проще осуществлять с помощью контроллера № 74. Тем не менее, существуют синтезаторы, у которых "достучаться" до большинства параметров синтеза можно только посредством NRPN, например, синтезаторы широко известных звуковых карт SB Live!.

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

Вероятно, вы уже заметили, что в раскрывающемся списке 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
> 0001ялли 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-синтезатора

6.2.5. Редактирование нот с MIDI-клавиатуры

Всем хороши описанные выше способы редактирования MIDI-сообщений в окне List Editor. Но есть одно неудобство: пользуясь ими, трудно передать ощущение, присущее реальной игре на инструменте. Нота разложена на некие математические составляющие. И не каждый музыкант сможет научиться быстро оценивать влияние того или иного редактируемого параметра на звучание, получающееся в итоге всех манипуляций с кнопками и полями ввода. Хорошо бы иметь возможность вместо этого просто сыграть необходимую ноту с необходимой громкостью! И, конечно, в программе Cubase SX предусмотрена такая функция. Она включается кнопкой (MIDI Input). Панель инструментов после этого несколько меняет свой вид (рис. 6.15). Становятся доступны кнопки, расположенные в ее правой области (сравните с рис. 6.5).

Рис. 6.15. Инструменты окна List Editor в режиме редактирования с MIDI-клавиатуры

Параметры сообщения, которые будут восприниматься редактором при нажатии вами MlDI-клавиш, выбираются специальными кнопками.
(Record Pitch) — будет записываться номер MIDI-ноты.
(Record NoteOn Velocity) — будет записываться Velocity сообщения Note On (скорость перемещения клавиши при ее нажатии, которую можно считать пропорционально связанной с громкостью звучания ноты).
(Record NoteOfF Velocity) — будет записываться Velocity сообщения Note Off (скорость возвращения нажатой клавиши в исходное положение после того, как вы ее отпустите). Трудно однозначно ассоциировать Note Off Velocity с конкретным свойством звучания ноты, тем более что далеко не все клавиатуры формируют в сообщении Note Off значение Velocity. Итак, подключите MIDI-клавиатуру. Нажмите кнопку (MIDI Input). Нажмите в любом необходимом сочетании кнопки (Record Pitch), (Record NoteOn Velocity), (Record NoteOff Velocity). В окне List Editor выберите ноту, которую вы хотите отредактировать.
Сыграйте на MIDI-клавиатуре необходимую ноту с необходимой силой удара по клавише. Выделение "перескочит" на следующее сообщение в списке. Но главное, что в столбцах Data 1 и Data 2 того сообщения, редактированием которого вы занимались, появятся значения параметров, введенные в результате вашей "живой" игры. Если результат не понравится, можно вновь выделить необходимое сообщение и повторить попытку.
Обращаем ваше внимание на то, что таким путем меняется только высота тона и громкость звучания ноты. Временные параметры сообщения (время начала и продолжительность звучания) остаются прежними. Поэтому можем предложить вам такое применение описанному способу редактирования. Не задумываясь о мелодической составляющей, создайте заранее необходимый ритмический рисунок, записав любым путем произвольную последовательность нот. Например, можно в режиме записи просто "отстучать" ритм на одной и той же клавише MIDI-клавиатуры. В вашем распоряжении окажется ритмический шаблон, который теперь будет легче наполнить мелодическим содержанием.

6.2.6. Пошаговый ввод нот

Режим пошагового ввода полезен в том случае, когда вы по каким-то причинам не в состоянии сыграть определенный фрагмент композиции в реальном времени, точно выдерживая моменты взятия нот или аккордов.
Приступая к пошаговому вводу нот, не забудьте подключить MIDI-клавиатуру!
Для перехода в пошаговый режим нажмите кнопку (Step Input). Панель инструментов после этого несколько изменит свой вид (рис. 6.16). Станет доступной кнопка (Insert Mode), а поле Mouse Position изменит свое название на Insert Position (сравните с рис. 6.15).
Выберите записываемые параметры, нажав кнопки (Record Pitch), (Record NoteOn Velocity), (Record NoteOff Velocity) в любом необходимом сочетании. Если кнопка (Record Pitch) останется выключенной, то вместо тех нот, которые вы в дальнейшем сыграете на MIDI-клавиатуре будет записываться нота СЗ.

Рис. 6.16. Инструменты окна List Editor в режиме пошагового ввода

С помощью инструмента или клавишами <<->, <->> установите позицию начала пошаговой записи (в средней секции окна она отмечается вертикальной синей линией). При необходимости уточните ее в поле ввода Insert Position. В раскрывающемся списке Quantize выберите шаг, с которым будут записываться очередные ноты, а в раскрывающемся списке Length Quant — длительность записываемых нот.
А теперь можете нажимать клавиши MIDI-клавиатуры, извлекая отдельные ноты или целые аккорды. Соответствующие сообщения будут появляться в окне List Editor. Если нужно ввести паузу — воспользуйтесь клавишей <->>, и указатель позиции ввода перескочит через долю. Конечно, после каждого нажатия клавиш необходимо будет уточнять точку записи и длительность очередной ноты. Вот так, не торопясь, шаг за шагом вы и справитесь с записью любого самого быстрого пассажа. Если, прослушав полученный результат, вы придете к выводу, что где-либо посредине записанной последовательности вы пропустили ноту, не спешите удалять все ноты, расположенные после места, где возникла ошибка. Нажмите кнопку (Insert Mode) и установите указатель позиции записи в точку, где должна быть записана пропущенная нота. Сыграйте ее на MIDI-клавиатуре. Нота будет вставлена на свое место, а остальные сообщения, располагавшиеся в точке записи и правее ее, будут одновременно (как единое целое) сдвинуты еще далее вправо на величину шага квантизации.
По окончании сеанса пошаговой записи не забудьте выключить кнопку (Step Input).
Теоретически с помощью опций окна Event List можно вставлять в список сообщения любых типов и выполнять операции по их редактированию. Однако на практике оказывается, что сообщения некоторых типов удобнее записывать, пользуясь другими средствами, имеющимися в программе. Ноты лучше наиграть на MIDI-клавиатуре, записать в нотаторе (Score Editor) или в редакторе отпечатков фортепианных клавиш (Key Editor). Уровнем громкости и значениями контроллеров непрерывного действия удобнее управлять, рисуя графики изменения параметров в окне Key Editor или огибающие автоматизации в окне Cubase SX Project.

6.3. Работа в редакторе Key Editor

Окно Key Editor программы Cubase SX предназначено для выполнения двух чрезвычайно важных функций:

- графического редактирования отпечатков клавиш;
- графического редактирования параметров MIDI-сообщений.

Окно отрывается командой MIDI > Open Key Editor при условии, что в окне проекта выделена хотя бы одна из MIDI-частей.
Если будут выделены несколько частей, то их сообщения будут одновременно доступны для редактирования в окне Key Editor даже в том случае, если части размещаются на разных треках. Сообщения, принадлежащие активной части, имеют яркий цвет, сообщения всех остальных частей серые. Стоит "тронуть мышью" сообщение неактивной части, как та становится активной. Таким образом, в окне Key Editor поддерживается мультитрековый режим. Для того чтобы не запутаться в том, сообщения какого трека или какой части вы редактируете в данный момент, используйте обозначение различными цветами сообщений, принадлежащих разным частям, или сообщений, ассоциированных с разными MIDI-каналами.
Возможно, некоторым музыкантам это покажется странным, но именно Key Editor (рис. 6.17) является наиболее удобным при редактировании MIDI-информации.

Рис. 6.17. Окно Key Editor

6.3.1. Инструменты окна Key Editor

В окне Key Editor видны две секции: секция отпечатков клавиш (Note Display) и секция графического редактирования параметров MIDI-сообщений (Controller Display). Верхняя секция служит для отображения собственно отпечатков клавиш фортепиано, а нижняя — для графического управления параметрами синтеза звука. Изменять размеры секций можно, перемещая мышью разделительную линию вверх или вниз.
В верхней секции имеется вертикальная полоса прокрутки. Пользуясь ею, можно просмотреть любой участок виртуальной MIDI-клавиатуры (от ноты С-2 до ноты G8).
По краям вертикальной и горизонтальной полос прокрутки размещены слайдеры для уменьшения или увеличения масштаба изображения. При достаточно крупном масштабе отображения по вертикали на отпечатках клавиш появляются обозначения нот, которым они соответствуют.
В верхней части окна расположены инструменты редактирования отпечатков клавиш и параметров MIDI-сообщений.
Если нажать кнопку (Show Info), то под панелью инструментов появится информационная строка (рис. 6.18), в которой отображаются параметры (Start, End, Length, Pitch, Velocity, Channel, Off Velocity) выделенного отпечатка клавиши.

Рис. 6.18. Окно Key Editor, открыта информационная строка

Если выделены несколько отпечатков, то в информационной строке отображаются параметры того из них, который был выделен первым, причем цвет шрифта изменяется.
Следующие два инструмента знакомы вам: такие же точно элементы есть и в окне List Editor.
(Solo Editor) — кнопка включения режима "Соло" для части, редактируемой в окне Key Editor.
(Object Selection) — кнопка выделения объектов в верхней и нижней секциях окна Key Editor. С помощью этого инструмента можно выделить как отдельные объекты, так и целые их группы. Выделенные отпечатки клавиш можно перетаскивать на любое место верхней секции, удалять или копировать в буфер обмена. Выделенные в нижней секции графики можно удалять. Одновременно с этим будут удалены и те отпечатки клавиш, которым удаленные графики соответствовали. С помощью этого инструмента можно не только перемещать отпечатки клавиш, но и изменять их размер. Ухватившись за левую или правую стороны выделенного отпечатка, можно изменить длительность звука. Ухватившись за среднюю часть прямоугольника, можно изменить положение отпечатка клавиши во времени или изменить высоту тона. Любые изменения отпечатков клавиш будут вызывать соответствующие изменения в списке MIDI-сообщений и в нотной записи. Инструментом (Draw) окна Key Editor производится вставка отпечатков клавиш и редактирование их параметров. Данный инструмент несколько отличается от аналогичного по назначению инструмента окна List Editor (обратите внимание на треугольник в углу кнопки). Треугольник означает, что двойным щелчком на кнопке отрывается меню, в котором выбирается разновидность инструмента вставки. То есть под этой кнопкой "скрывается" не один, а сразу несколько инструментов. С их помощью можно рисовать графики, составленные из элементов определенной формы, например, параболических, пилообразных, синусоидальных и т. д. На наш взгляд, эта возможность актуальна только при редактировании параметров в нижней секции окна. Если применить данный набор инструментов в верхней секции, то ноты, расположенные на созданных таким путем траекториях, вряд ли будут выражать какую-либо осмысленную музыкальную идею. Исключение составляет разве что такой вариант инструмента, как (Paint). Проводя им в горизонтальном направлении, можно нарисовать последовательность отпечатков клавиш, местоположение и длина которых будут определяться установками, выполненными в полях Quantize и Length Quant.
(Erase) — инструмент для удаления звуков. Этим инструментом работают точно так же, как обычным канцелярским ластиком. Нажмите левую кнопку мыши и проведите курсор по тем отпечаткам клавиш (или графикам изменения значений параметров MIDI-сообщений), которые вам не нужны. Удалить выделенные отпечатки клавиш или графики можно и с помощью клавиши <Delete>.
(Zoom) — инструмент изменения масштаба отображения по горизонтали.
(Mute) — инструмент мьютирования отдельного отпечатка клавиши или целой их группы. Выберите этот инструмент и щелкните на отпечатке. Он сменит цвет своей окраски на белый и окажется заглушенным. При воспроизведении или записи именно его вы не услышите. Отменяется мьютирование повторным щелчком на отпечатке. Для того чтобы заглушить группу отпечатков клавиш, выберите этот инструмент и, удерживая нажатой левую кнопку мыши, "нарисуйте" прямоугольник, охватывающий необходимые отпечатки. Однако не советуем увлекаться применением инструмента
(Mute) к группе отпечатков. Для того чтобы отменить их мьютирование, вам нужно будет вспомнить, какой именно пунктирный прямоугольник вы рисовали, заглушая отпечатки, и нарисовать точно такой же еще раз. Вряд ли это удастся сделать, поэтому с части отпечатков мьютирование будет снято, но зато заглушатся какие-нибудь другие отпечатки, впервые попавшие в пунктирный прямоугольник. Командой Undo отменить применение инструмента (Mute), к сожалению, нельзя. Инструментом (Split) можно разрезать отпечаток клавиши на две части. Если выделены несколько отпечатков, расположенных на одной вертикали, то все они будут разрезаны. По отношению к операции Split команда Undo действует.
Инструмент (Glue), наоборот, служит для склеивания отпечатков клавиш, расположенных на одной и той же горизонтали. Пощелкайте им, и вы увидите, как относительно короткие отпечатки удлиняются и объединяются. При этом всем последующим отпечаткам присваиваются свойства (например, значение Velocity) того из них, который был расположен левее.
Инструмент (Autoscroll) — знакомая вам кнопка включения режима автоматической прокрутки изображения в окне (по горизонтали) в режиме записи или воспроизведения.
Правее расположены два поля. В верхнем поле отображается вертикальная координата курсора мыши (если он находится в пределах верхней секции окна Key Editor). В нижнем поле в обычном режиме отображается горизонтальная координата курсора мыши. В режиме пошагового ввода в этом поле отображается и в случае необходимости редактируется позиция ввода очередной ноты.
Среди других полей ввода находится поле Insert Velocity. В нем можно выбрать значение Velocity, которое будет присваиваться сообщениям типа Note, когда вы будете вставлять отпечатки клавиш.
Все остальные инструменты знакомы вам, так как они ничем не отличаются от тех, что имеются в окне List Editor (см. разд. 6.2). Поэтому просто перечислим их.

- Кнопка (Snap), предназначенная для включения режима привязки вставляемых сообщений к долям тактов (она действует и применительно к графикам в нижней секции окна).
- Раскрывающийся список Quantize, предназначенный для выбора шага квантизации, с которым располагаются вставляемые сообщения.
- Раскрывающийся список Length Quant, предназначенный для выбора шага квантизации длительности сообщений.
- Раскрывающийся список Colors, предназначенный для выбора цветовой гаммы отображения параметров сообщений.
- Кнопка (Auto Play), предназначенная для включения режима прослушивания звучания нот.
- Кнопка (Step Input), предназначенная для включения пошагового режима записи отпечатков клавиш с MIDI-клавиатуры.
- Кнопка (MIDI Input), предназначенная для включения режима редактирования отпечатков клавиш с MIDI-клавиатуры.
- Кнопка (Insert Mode) включения режима сдвига существующих отпечатков клавиш вправо от позиции вставки.
- Кнопки (Record Pitch), (Record NoteOn Velocity), (Record NoteOff Velocity) выбора параметров сообщения, которые будут восприниматься редактором при нажатии вами MIDI-клавиш.

Несколько слов скажем о раскрывающемся списке Colors. Выбирая в нем ту или иную строку, вы сможете влиять на цветовое отображение параметров сообщений в окнах List Editor и Key Editor:

- Velocity — ноты (для краткости так назовем и отпечатки клавиш в окне Key Editor, и объекты в средней секции окна List Editor) будут окрашиваться в разные цвета в зависимости от значения их Velocity. Установка этого режима позволяет следить за уровнем Velocity, даже если в нижней секции окна Key Editor в данный момент отображается другой параметр. По умолчанию "тихие" ноты отображаются синим цветом, который по мере увеличения Velocity постепенно переходит в красный;
- Pitch — окраска каждой ноты будет зависеть от ее номера в пределах октавы: все до разных октав окрашиваются в один цвет, до-диез — в другой и т. д.;
- Channel — ноты, ассоциированные с определенным MIDI-каналом, будут окрашиваться в свой цвет;
- Part — ноты будут окрашиваться в тот цвет, который в окне проекта выбран для данной части.

На окраску собственно нот в окне Score Editor все это никакого влияния не оказывает.
Для всех вариантов, кроме Part, можно редактировать палитру цветов, вызвав командой Setup соответствующее окно. Его название и набор опций видоизменяются в зависимости от того, какой режим окраски (Channel, Pitch или Velocity) является текущим.

6.3.2. Секция отпечатков клавиш

Отпечатки клавиш фортепиано отображаются прямоугольниками, длина которых соответствует длительности звука. Чтобы определить высоту тона (номер ноты), достаточно посмотреть, какой клавише клавиатуры, расположенной слева, соответствует отпечаток.
Хотя мы и говорим о клавишах фортепиано, на самом деле в окне изображена клавиатура, соответствующая стандарту MIDI (она имеет почти одиннадцать октав). Очевидно, что все клавиши не могут уместиться в окне, поэтому отображается лишь небольшой участок клавиатуры. С помощью полосы прокрутки в правой части окна можно вывести на экран любой участок клавиатуры. Некоторые клавиши подписаны: С хх, где хх — номер октавы. Например, СЗ означает до третьей октавы (в системе нумерации Cubase SX). Кроме того, в полях расположенных на панели инструментов, отображаются координаты курсора мыши: по вертикали — обозначение ноты и MIDI-номер клавиши, а по горизонтали — время с точностью до тика.
Перемещаться вдоль клавиатуры можно не только с помощью вертикальной полосы прокрутки. Если щелкнуть на изображении клавиатуры и переместить курсор по вертикали до границы видимой части клавиатуры, изображение начнет прокручиваться. Раздастся звук, характерный для игры "глиссандо", как будто вы скользите пальцем по настоящей фортепианной клавиатуре.
Перемещаться вдоль окна отпечатков клавиш можно не только с помощью горизонтальной полосы прокрутки, но и пользуясь клавишами <->> или <<->. При этом будет осуществляться пошаговый переход к очередному соседнему отпечатку клавиши.
Если на компьютерной клавиатуре предварительно нажать клавишу <Ctrl>, то щелчком мыши на какой-либо клавише виртуальной клавиатуры можно выделить все соответствующие ей ноты данной части. При этом не имеет значения расположение нот во времени. Это полезно, когда нужно для всего трека изменить, например, громкость звучания конкретной ноты (например, командой MIDI > Functions > Velocity). Предварительно нажав клавишу <Shift>, мышью можно выделить сразу несколько различных по высоте нот.
Если нажать <Ctrl> и повторно щелкнуть на одной из нот, входящих в выделенную группу, то это приведет к снятию выделения со всех ранее выделенных нот (кроме той, на которой этот щелчок выполнен).
Если нажата кнопка (Show Info), то непосредственно над секцией отпечатков клавиш окна Key Editor (см. рис. 6.18) располагается информационная строка, содержащая 7 полей ввода. В этих полях вы можете редактировать (или просто наблюдать) следующие параметры выделенного отпечатка клавиши:

- Start — время, соответствующее положению начала отпечатка клавиши (в формате такт.доля.часть доли.тик);
- End — время, соответствующее положению окончания отпечатка клавиши Length — длительность MIDl-ноты (длина отпечатка клавиши);
- Pitch — обозначение и номер MIDI-ноты, которой соответствует отпечаток клавиши;
- Velocity — значение параметра Velocity сообщения Note On;
- Channel — номер MIDI-канала по которому передается сообщение о включении выделенной ноты;
- Off Velocity — значение параметра Velocity сообщения Note Off.

Редактировать содержимое полей можно как непосредственно вводя в них необходимые числовые значения, так и с помощью клавиш <вверх> или <вниз>. Итак, работа в верхней секции окна Key Editor сводится к вставке и редактированию (различными способами) отпечатков клавиш в соответствии с вашим композиторским замыслом.

6.3.3. Секция графического редактирования параметров MIDI-сообщений

Секция графического редактирования занимает нижнюю область окна Key Editor. Каждый звук характеризуется не только высотой и длительностью, но также громкостью и еще рядом параметров. Как вы уже знаете, MIDI-сообщения о нажатии клавиши несут в себе информацию об изменении громкости звука. В окне Key Editor можно управлять громкостью звучания нот, соответствующих отдельным отпечаткам. Громкость можно задавать как в цифровой, так и в графической форме. Кроме громкости, теоретически можно управлять любым параметром, поддерживаемым MIDI-устройством. Однако на практике управление такими параметрами, как, например, NRPN, предполагающими точную установку значения, бывает затруднительно.
Значения отдельных параметров отображаются в виде вертикальных линий, высоту которых вы можете изменять с помощью соответствующих инструментов.
В левой части секции графического редактирования окна Key Editor расположен раскрывающийся список (рис. 6.19) — меню, содержащее перечень сообщений, параметры которых доступны для редактирования в секции управления параметрами. На рис. 6.18 в этом меню выбран элемент Velocity.
Если в этом меню выбрать команду Setup, то откроется окно Controllers Menu Setup (рис. 6.20).

Рис. 6.19. Пример меню выбора редактируемого параметра

Рис. 6.20. Окно Controllers Menu Setup

Окно состоит из двух областей. В левой области перечислены контроллеры, включенные в меню секции графического редактирования. В правой — все оставшиеся возможные контроллеры. Вы можете изменять содержание левой области. Если хотите сократить список контроллеров, выделите имя одного из них (или нескольких) и нажмите кнопку >>>. Соответствующие строки переместятся из левой области окна Controllers Menu Setup в правую. Если список нужно пополнить, то выделите необходимую строку в правой области и нажмите кнопку <<<. Затем нажмите ОК. Обновление меню свершится.
Работа в секции графического редактирования окна Key Editor сводится к выбору редактируемого параметра и к изменению высоты столбиков, отображающих значение того или иного параметра. В этих целях можно использовать инструменты (Draw) и (Erase).
Рассмотрим особенности действия различных вариантов инструмента (Draw).
(Draw) и (Paint) — можно рисовать столбики произвольной высоты, редактировать параметры отдельно взятого отпечатка клавиши.
(Line) — можно рисовать графики изменения параметра, состоящие из отрезков прямых линий (пример применения представлен на рис. 6.21).
(Parabola) — можно рисовать графики изменения параметра, состоящие из линий параболической формы (рис. 6.22).
(Sine) — можно рисовать графики изменения параметра, состоящие из линий синусоидальной формы (рис. 6.23).
(Triangle) — можно рисовать графики изменения параметра, состоящие из пилообразных кривых (рис. 6.24).
(Square) — можно рисовать графики изменения параметра, состоящие из последовательности прямоугольных импульсов (рис. 6.25).

Рис. 6.21. Пример применения инструмента Line

Рис. 6.22. Пример применения инструмента Parabola

Рис. 6.23. Пример применения инструмента Sine

Рис. 6.24. Пример применения инструмента Triangle

Рис. 6.25. Пример применения инструмента Square

Вы видите, что однократное применение любого из этих инструментов приводит к изменению параметров сразу многих сообщений. Инструменты удобны тем, что однократный выбор команды Undo также сразу отменяет все эти изменения.
По умолчанию в секции графического редактирования отображается график изменения одного из параметров (см., например, рис. 6.18). Однако при желании вы можете наблюдать и редактировать одновременно несколько параметров и даже все параметры, включенные в меню (см., например, рис. 6.19).
Для того чтобы добавить в секцию графического редактирования линейку с графиком изменения еще одного параметра, выполните следующие действия. Щелчком правой кнопки мыши откройте контекстное меню и в нем выберите команду Create New Controller Lane. Появится вторая линейка с графиком изменения текущего параметра. В меню (см. рис. 6.19) выберите необходимый параметр, например, Pan. В качестве примера на рис. 6.26 приведен вид окна Key Editor, в котором для отображения одновременно выведены графики параметров Velocity и Pan.

Рис. 6.26. В окне Key Editor отображаются графики Velocity и Pan

Когда вам захочется скрыть линейку с графиком какого-либо параметра, щелкните на ней правой кнопкой мыши и в открывшемся контекстном меню выберите команду Remove this Lane. Таким способом можно закрыть вообще все линейки.
Несколько слов скажем об особенностях графического управления некоторыми параметрами.
С помощью сообщений Pitchbend можно передавать данные о положении колеса изменения тона. Положение колеса изменяется от —8192 до 8191. Как правило, по умолчанию чувствительность колеса устанавливается равной ±2 полутона. Это значит, что положение колеса -8192 соответствует понижению высоты звука на 2 полутона, а 8191 — повышению высоты звука на 2 полутона. Чувствительность колеса можно запрограммировать с помощью регистрируемого параметра RPN 0. Регистрируемые параметры (RPN) применяются также для подстройки строя синтезатора.
Нерегистрируемые параметры NRPN с одними и теми же номерами у различных производителей музыкальных инструментов и студийного оборудования могут использоваться для разных целей (в отличие от RPN).
На практике управлять параметрами NRPN с помощью опций окна Key Editor трудно. Дело в том, что значение NRPN складывается из NRPN LSB и NRPN MSB (это относится и к RPN тоже). Поэтому для того чтобы получить численный результат, имеющий определенный смысл, вам потребуется производить вычисления, которые, кроме сложения, должны включать в себя еще и перевод чисел из десятичной системы в шестнадцатеричную и обратно.
Итак, мы рассмотрели окно Key Editor, позволяющее редактировать партии мелодических инструментов, представленные в виде последовательности отпечатков клавиш.

6.4. Работа в редакторе Drum Editor

Если редактируемый MIDI-трек (точнее редактируемая часть, находящаяся на MIDI-треке) содержит сообщения для ударных инструментов, то вместо Key Editor удобнее применять другой редактор — Drum Editor. Его окно (рис. 6.27) открывается командой MIDI > Open Drum Editor.
В этом случае вместо прямоугольных отпечатков клавиш вы видите ромбики, обозначающие начальные моменты формирования звуков ударных — отпечатки ударных инструментов, а вместо клавиш фортепиано — названия ритмических инструментов (в столбце Instrument), а также обозначения клавиш, которым они соответствуют (в столбце Pitch).
Работа в окне Drum Editor, в конечном счете, сводится к тому, что вы должны:

- в верхней секции окна в необходимых долях тактов расставлять ромбики — отпечатки необходимых ударных инструментов;
- для каждого отпечатка ударных инструментов задавать параметры синтеза, рисуя их графики в нижней секции окна (как минимум, задавать изменение Velocity).

Рис. 6.27. Окно Drum Editor. В раскрывающемся списке Map выбрана строка No Drum Map

Окно Drum Editor как нельзя лучше приспособлено для обеспечения такой деятельности. Не удивительно, что оно отличается особой структурой и наличием специфических инструментов.

6.4.1. Особенности инструментов редактора Drum Editor

Понятно, что работа с ударными музыкальными инструментами хотя и имеет свои особенности, но, вместе с тем, является частным случаем работы с музыкальными инструментами вообще. Поэтому среди инструментов окна Drum Editor вы найдете кнопки, поля ввода и раскрывающиеся списки, знакомые по ранее рассмотренным окнам MIDI-редакторов List Editor и Key Editor. Их мы рассматривать не будем. Остановимся лишь на новых инструментах. Их всего три:
(Solo Instrument) — кнопка включения режима сольного прослушивания партии выделенного ударного инструмента (при воспроизведении или записи);
(Drumstick) — кнопка записи ромбиков-отпечатков ударных инструментов в верхней секции окна (основной рабочий инструмент в Drum Editor);
(Use Global Quantize) — кнопка включения квантизации, общей для всех ударных инструментов. Определенные особенности также проявляются в двух элементах, имеющихся и в Key Editor:

- инструмент действует только в нижней секции окна, а среди его разновидностей нет варианта Draw;
- в качестве вертикальной координаты в соответствующем поле вместо номера ноты отображается название ударного инструмента.

6.4.2. Редактирование партий ударных инструментов

Итак, для каждого ударного инструмента выделена своя строка в верхней секции, которая, в свою очередь, состоит из двух областей. В правой области располагаются линейки, поделенные на такты и доли тактов. Именно на них инструментом (Drumstick) и следует наносить отпечатки ударных инструментов. В левой области есть несколько столбцов (их количество и назначение зависит от того, выбрана ли какая-либо барабанная карта в раскрывающемся списке Map). Под барабанной картой понимается система соответствия звучащих ударных инструментов MIDI-сообщениям Note On, поступающим по определенному каналу от определенных MIDI-клавиш.
Сначала рассмотрим структуру левой области верхней секции окна при условии, что барабанная карта не выбрана (в раскрывающемся списке Map выбрана строка No Drum Map). Фактически в этом случае будет установлено стандартное для GM закрепление ударных инструментов за MIDI-клавишами (см. рис. 6.27).
В такой ситуации левая область окна поделена на 4 столбца.
1. Безымянный столбец, щелкая на ячейках которого, можно выделить определенный ударный инструмент и услышать его звучание.
2. Столбец Pitch, в котором указаны обозначения и номера MIDI-клавиш (нот). Содержание ячеек данного столбца для редактирования недоступно.
3. Столбец Instrument, в котором указаны названия ударных инструментов. Текст в ячейках данного столбца доступен для редактирования.
4. Столбец Quantize, в ячейках данного столбца для партии каждого ударного инструмента можно ввести свое значение шага квантизации.
Реальное влияние на процесс редактирования партий ударных инструментов оказывает только содержимое ячеек последнего из перечисленных столбцов. Чтобы разобраться в этом, рассмотрим методику записи отпечатков ударных инструментов для одной из партий. Допустим, что удары инструмента Bass Drum должны приходиться на начало такта и происходить раз в такт.
Поэтому для инструмента Bass Drum в поле столбца Quantize введем 1/1 Note. Для этого следует щелкнуть на поле Quantize и в открывшемся меню выбрать одну из стандартных длительностей. Теперь убедимся, что кнопка (Use Global Quantize) выключена. В противном случае на результат будет влиять содержание раскрывающегося списка, находящегося под ней. Далее выберем инструмент (Drumstick). Подготовка к записи партии завершена. Приступайте к главному. В правой области окна нацельте указатель мыши на любую точку линейки, которая соответствует инструменту Bass Drum, нажмите левую кнопку мыши и проведите ее указателем вдоль линейки. Отпечатки ударного инструмента будут установлены точно в назначенные места: в начало каждого такта (рис. 6.28).

Рис. 6.28. Записана партия инструмента Bass Drum

Направление перемещения указателя мыши не имеет значение. Можно двигать его вправо, но можно и влево. Главное, чтобы один и тот же такт он не проходил дважды. Иначе, при повторном проходе ранее нанесенные отпечатки будут удалены.
Аналогично записываются партии других ударных инструментов. Причем для каждой из них в поле столбца Quantize можно задать свой шаг квантизации. Так, например, на рис. 6.29 для Side Stick выбран шаг квантизации 1/2 Note, поэтому отпечатки этого инструмента оказались вставлены через полтакта.
В отличие от окна Key Editor в нижней секции рассматриваемого редактора отображаются параметры (например, значение Velocity) не одновременно всех инструментов (клавиш), а только того из них, который выбран в верхней секции (на рис. 6.29, например, таким инструментом является Closed Hi-Hat). Поэтому и редактировать параметры можно для каждого инструмента в отдельности, что в случае ударных очень удобно.

Рис. 6.29. Пример записи партий ударных (для каждой партии выбран свой шаг квантизации)

Если кнопка (Use Global Quantize) включена, то программа игнорирует значения шага квантизации, установленные для каждого инструмента в отдельности, и все отпечатки будут "рисоваться" в тех долях, которые определяются содержанием раскрывающегося списка, находящегося под данной кнопкой.
Получается, что при записи партии средствами окна Drum Editor наименьший шаг записи ударов равен шестьдесятчетвертой доле. Это, конечно, совсем не плохо. Однако если понадобится внести в партию еще более тонкие ритмические нюансы, то придется перейти в окно List Editor и в нем отредактировать содержание столбца Start для каждого сообщения: сдвинуть сообщения вперед-назад на несколько тиков.
Итак, мы разобрались в структуре окна для того случая, когда барабанная карта не выбрана. А теперь в раскрывающемся списке Map выберем, например, строку GM Map. Вид окна Drum Editor после этого изменился (рис. 6.30). Если барабанная карта для трека выбрана, то двойным щелчком на нем в окне проекта открывается окно Drum Editor, а не Key Editor.
В левой области появились еще 5 столбцов.
1. М — щелкая на ячейках этого столбца, можно заглушить любые ударные инструменты. При редактировании нескольких партий такая возможность дает дополнительные удобства.
2. I-Note — в этом столбце указывается фактическое соответствие канала данного инструмента (строки таблицы) определенной ноте во входном потоке MlDI-сообщений.
3. O-Note — в этом столбце указывается фактическое соответствие канала данного инструмента (строки таблицы) определенной ноте в выходном потоке MIDI-сообщений.
4. Channel — MIDI-канал, ассоциированный с данным ударным инструментом. Канал можно выбрать в меню, открывающемся щелчком на соответствующей ячейке столбца Channel.
5. Output — выходной MIDI-порт, которому будут посылаться сообщения. Щелчком на ячейке открывается меню выбора выходного порта.

Рис. 6.30. Окно Drum Editor. В раскрывающемся списке Map выбрана строка GM Map

Дополнительные столбцы левой секции окна приобретают значение в том случае, когда вы записываете партии ударных инструментов с MIDI-клавиатуры или синтезатора, имеющих нестандартную раскладку ударных инструментов. Редактируя содержание столбцов I-Note и O-Note, можно установить любое соответствие ударных клавишам. Правда, думается, что дело до этого не дойдет. В комплекте с Cubase SX поставляется множество файлов с самыми различными вариантами Drum Map. Командой MIDI > Drum Map Setup открывается окно Drum Map Setup, с помощью которого любую из этих барабанных карт можно загрузить в программу, после чего новая барабанная карта становится доступной и в раскрывающемся списке Map окна Drum Editor. Подробно о работе с окном Drum Map Setup мы рассказали в разд. 4.1.2.
Вы уже, вероятно, поняли, что "входная" нота (клавиша, с помощью которой вы вводите сообщение для данного ударного инструмента) и "выходная" (реально звучащий ударный инструмент) могут не совпадать. Это можно использовать для создания исполнителю комфортных условий. Например, если вы играете партию ударных вживую и один из задействованных тембров расположен на клавиатуре далеко от остальных, то вам будет неудобно все время "тянуться" к этой удаленной клавише. Назначьте для данного ударного инструмента более близкую клавишу в качестве входной, а выходную оставьте прежней. Тогда у вас все инструменты окажутся под рукой.
В завершение раздела осталось сказать, что редактирование параметров MIDI-сообщений в нижней секции окна Drum Editor ничем не отличается от аналогичной процедуры в окне Key Editor, описанной нами в разд. 6.3.2.

6.5. Работа в Logical Editor

Работа над музыкальной композицией — это не только творчество. Приходится также выполнять массу рутинных операций, отнимающих много сил. Особо нудным занятием является редактирование однотипных параметров серии однотипных MIDI-сообщений. То нужно найти все ноты с определенным номером для того, чтобы затем отредактировать какой-либо из их параметров; то нужно, избавляясь от огрехов исполнения, удалить случайные ноты (как правило, очень короткие или очень тихие); то нужно транспонировать часть нот; то нужно удалить из списка сообщения определенного типа. Композиций у вас много, да все они содержат не по одному десятку треков, а сообщений на них — не сосчитать. Сколько драгоценного времени может уйти на подобную работу!
Нечто похожее наблюдается в математике, когда приходится, например, для получения графика тысячи раз повторять вычисления по одной и той же формуле, подставляя различные исходные данные. Математики давно изобрели способ облегчения своей и нашей жизни — программирование. Программист один раз пишет последовательность команд, а многократное их выполнение возлагает на вычислительную машину. В основе такого подхода лежит один из языков программирования, обеспечивающий перевод инструкций, формулируемых в удобном для человека виде, в код, понятный машине. Многие Windows-приложения содержат в себе встроенные языки программирования, позволяющие автоматизировать повторяющиеся операции и расширить функциональные возможности приложения. Так, например, в программе Cakewalk SONAR имеется встроенный язык CAL, позволяющий писать достаточно сложные программы обработки MIDI-данных. С нашей точки зрения, Logical Editor также можно рассматривать как графическое средство доступа к языку программирования последовательности операций с MIDI-сообще-ниями. Пожалуй, от типичных средств редактирования содержания компьютерных программ Logical Editor отличается лишь относительной простотой да еще формой составления программ. При работе с Logical Editor вам не потребуется вести посимвольную запись операторов программы. Вы их будете выбирать из числа тех, что предлагаются в меню и в списках.
В названии редактора слово "логический" присутствует не случайно. Ведь суть работы с Logical Editor состоит в следующем:
1. Вы задаете признаки, по которым программа должна выявить определенные MIDl-сообщения. Критерии поиска формулируются как совокупность логических условий. Например, на обычном человеческом языке это может выглядеть так: "Найти все MIDl-сообщения типа Note, для которых Velocity < 10".
2. Вы указываете программе последовательность действий, которые она должна выполнить по отношению к выявленным сообщениям. Например: "Удалить".
3. Вы определяете область, в пределах которой программа должна выполнять ваше задание. Например, выделяете часть на MIDI-треке.
Иными словами, в работе с редактором вы постоянно используете логические условия.
Вообще говоря, в математике существует обширный раздел, который так и называется "Логика". Одной из задач логики является исследование эффективных способов построения сложных логических высказываний на основе элементарных логических операторов. Среди различных логических систем особое место занимает двоичная (булева) логика, в которой и исходные объекты и результаты их обработки принимают только два значения. Обычно эти значения обозначаются как 0 и 1, или как ЛОЖЬ (FALSE) и ИСТИНА (TRUE). В частности, доказано, что самые сложные отношения между объектами (условия) могут быть выражены на основе суперпозиции всего лишь двух элементарных логических функций (операторов). Разработчики Logical Editor выполнили это условие с избытком: в качестве таких операторов выбраны три функции: NOT, AND и OR. Функции AND и OR присутствуют в явном виде, они так и обозначены: AND и OR. Функции NOT в явном виде вы здесь не найдете, но фактически, выбирая одно из двух условий Equal или Unequal, вы будете иметь дело именно с ней.
NOT — функция одной переменной. Она принимает значение 1, когда переменная равна 0, и 0, когда переменная равна 1.
Остальные логические функции позволяют работать с различным числом логических переменных. Для функций AND и OR минимальное количество переменных равно двум. Логические функции задаются в виде таблиц истинности. В табл. 6.1 приведена таблица истинности функции AND, а в табл. 6.2 — функции OR.

Таблица 6.1. Функция AND

Х2\Х, | 0 | 1
0 | 0 | 0
1 | 0 | 1

Таблица 6.2. Функция OR

Х2\Х, | 0 | 1
1 | 1 | 1
1 | 1 | 1

В верхней строке каждой таблицы приведены значения первой логической переменной (\i). В левом столбце — значения второй логической переменной (х2). На пересечении строки и столбца записан результат операции. Например, (1 AND 0) = 0, (1 AND 1) = 1, (0 OR 1) = 1
Словами табл. 6.1 можно описать так: в результате операции AND получится ИСТИНА, только в том случае, если обе переменные (х1 и х2) принимают значение ИСТИНА.
Смысл табл. 6.2 иной: в результате операции OR получится ИСТИНА, в том случае, если хотя бы одна из переменных (x1 или х2) принимает значение ИСТИНА.
Возможно, некоторым музыкантам и это легкое прикосновение к математике покажется слишком сложным. Но если вы хотите научиться пользоваться Logical Editor, то ничего не поделаешь, без понимания хотя бы элементарных вещей не обойтись. Ведь именно путем построения цепочки логических операторов вам предстоит объяснять программе задачу, которую вы ей ставите. Известная программистская мудрость гласит: "Что запрограммируешь, то и получишь". Не хотелось бы, чтобы, применяя Logical Editor, вместо удовольствия от работы, вы получали неожиданные неприятности.
Окно Logical Editor (рис. 6.31) открывается командой MIDI > Open Logical Editor.
С помощью Logical Editor определяются параметры поиска и преобразования MIDI-сообшений, записанных в части на MIDI-треке. Возможные варианты действий:

- преобразование свойств найденных сообщений;
- удаление найденных сообщений;
- вставка новых сообщений, параметры которых определенным образом связаны с найденными сообщениями.

В окне Logical Editor имеется два рабочих поля: в верхнем (столбцы (, Filter Target, Condition, Parameter 1, Parameter 2, Bar Range, ), bool) определяются условия фильтрации.

Рис. 6.31. Окно Logical Editor

В нижнем рабочем поле (столбцы Action Target, Operation, Parameter 1,Parameter 2) определяются параметры преобразования MIDI-сообщения. Напротив каждого из рабочих полей имеется пара кнопок: Add Line (добавить строку в список на рабочем поле) и Delete Line (удалить строку из списка на рабочем поле).
В строках верхнего рабочего поля вам предстоит набирать программу, согласно которой будет проводиться выявление сообщений, характеризующихся определенными признаками. В строках нижнего рабочего поля предстоит формулировать конкретное задание для Logical Editor, т. е. указывать действия, которые должны быть выполнены в отношении выявленных сообщений.
Рабочие поля можно сравнить с двумя разграфленными листками обыкновенного блокнота. На первом вы составляете описание какого-либо объекта (например, "женщина, молодая, красивая"), а на втором пишете, что нужно будет с таким объектом сделать, если он вам встретится (например, "познакомиться").
Оба рабочих поля понадобятся вам не всегда. Если, допустим, требуется удалить определенные сообщения, то такая операция программируется без использования нижнего рабочего поля. Однако когда вы соберетесь преобразовать сообщения, то необходимо будет определить, какие свойства должны быть изменены и каким именно образом.
Задача логическому редактору в общем виде формулируется путем выбора одной из строк в раскрывающемся списке, который расположен в левом верхнем углу окна Logical Editor:

- Delete — удалить найденные сообщения;
- Transform — преобразовать сообщения;
- Insert — вставить сообщения, найденные в соответствии с заданными условиями;
- Insert Exclusive — вставить сообщения за исключением найденных в соответствии с заданными условиями;
- Сору — копировать сообщения, преобразовать их согласно заданным условиям и вставить на другой трек;
- Extract — извлечь найденные сообщения и вставить их на другой трек;
- Select — выделить найденные сообщения с тем, чтобы вы могли продолжить работу с ними в другом редакторе.

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

Рис. 6.32. Окно Logical Editor с загруженным пресетом del patch changes

Рис. 6.33. Верхнее рабочее поле с введенным условием преобразования

Теперь рассмотрим внимательнее верхнее рабочее поле (рис. 6.33) с тем, чтобы понять, каким образом только что проанализированное условие оказалось там записанным.
Содержание условия следует читать слева направо и сверху вниз, как мы обычно читаем книгу. Немного сбивают с толку длинные пробелы между некоторыми элементами, но со временем к этому можно привыкнуть.
Верхняя строка содержит заголовки столбцов. Они одновременно являются названиями списков, раскрывающихся двойным щелчком на соответствующей ячейке.
Получается следующее:

- в одной строке можно записать некоторое выражение, заключенное в скобки. Количество скобок в пределах от 0 до 3 выбирается в ячейках ( и ). Cubase SX автоматически проверяет выполнение правил синтаксиса, присущих для данного языка программирования. Одно из них заключается в том, что количество закрывающих скобок должно быть равно количеству открывающих;
- в ячейке столбца bool можно записать один из двух логических операторов (Оr или And).

Выражение, записанное в строке, может состоять из следующих компонентов.
1. Filter Target — признак (объект) фильтрации. Выбор осуществляется из вариантов: Type Is (по типу сообщения); Position (по позиции сообщения); Length (по длине сообщения); Value 1 (по значению первого параметра сообщения); Value 2 (по значению второго параметра сообщения); Channel (по MIDI-каналу); Property (по атрибуту сообщения — muted, selected, locked); Value 3 (по значению третьего параметра сообщения).
2. Condition — условие фильтрации (состояние признака фильтрации). Выбор осуществляется из вариантов, число и смысл которых зависит от объекта фильтрации, выбранного в столбце Filter Target. Например, для объекта Channel такими вариантами будут: Equal (равно), Unequal (неравно), Bigger (больше), Bigger or Equal (больше или равно), Less (меньше), Less or Equal (меньше или равно), Inside Range (находится в заданном диапазоне), Outside Range (находится вне заданного диапазона).
3. Parameter 1, Parameter 2 — значения параметров.
4. Ваr Range — временной диапазон поиска сообщений в пределах каждого такта. Столбец доступен только в том случае, когда в столбце Filter Target выбран объект Position, а в столбце Condition — признаки Inside Bar Range или Outside Bar Range.
Итак, для составления программы поиска и преобразований сообщений необходимо путем выбора элементов в раскрывающихся списках заполнять ячейки в строках верхнего и нижнего рабочих полей.
Для применения Logical Editor нажмите кнопку Do It.
Хотим предупредить, что в ходе подготовки материала данного раздела мы изредка сталкивались с неприятным явлением. В ряде случаев на выбор в Logical Editor недопустимого сочетания параметров программа Cubase SX реагировала еще более недопустимым, на наш взгляд, образом: сообщала об ошибке и тут же закрывалась с потерей всех данных.
Не станем углубляться дальше. Не очень верится в то, что вы всерьез займетесь разработкой собственных алгоритмов для Logical Editor (особенно если не обладаете соответствующей подготовкой в области программирования). А вот разобраться в смысле преобразований, которые сохранены создателями Cubase SX в виде пресетов, вам теперь вполне по силам. Там вы обнаружите очень полезные вещи. Советуем вам в свободное время поэкспериментировать с содержимым раскрывающегося списка Presets, применяя пресеты для обработки какого-либо несложного и хорошо знакомого вам материала. Кстати говоря, списки пресетов Logical Editor содержатся также и в системе подменю, которые открываются командой MIDI > Logical Presets.
Напомним, что в разд. 4.1.2 рассмотрен пример применения для преобразования MIDI-сообщений окна Input Transformer, которое очень похоже на окно Logical Editor. Разница заключается в том, что окно Input Transformer предназначено для редактирования параметров фильтрации и преобразования MIDI-данных в реальном времени, а с помощью окна Logical Editor осуществляется фильтрация и преобразование MIDI-данных, уже сохраненных на треке. Кроме того, в Cubase SX имеется работающий в режиме реального времени MIDI-плагин Transform, который является полным аналогом Logical Editor.
Те команды и функции, которые применяются в процессе редактирования MIDI-сообщений, сосредоточены в меню MIDI. В предыдущих разделах текущей главы мы уже обращались к командам, открывающим различные MIDI-редакторы (за исключением Score Editor — этот редактор мы рассмотрим в главе 7). С работой в окне Drum Map Setup, которое открывается командой MIDI > Drum Map Setup, мы познакомили вас в разд. 4.1.2. За пределами нашего повествования пока остались функции, доступные в подменю MIDI > Functions, и группа команд, связанных с квантизацией.

6.6. Применение квантизации

В самом общем смысле суть квантизации состоит в привязке начальных моментов MIDI-сообщений и/или их протяженности во времени к выбранной дискретной сетке. Перечислим наиболее распространенные задачи квантизации.
1. Выравнивание неточно сыгранной последовательности нот по заданным долям такта.
2. Преобразование ритмической структуры обрабатываемой партии в соответствии с образцовой партией.
3. Внесение небольших "случайных" отклонений моментов взятия нот и их длительностей от идеально равномерной тактовой сетки. Такая обработка имитирует игру исполнителя-человека и позволяет избавиться от впечатления навязчивой механистичности в звучании партий, созданных с помощью MIDI-секвенсора.
В Cubase SX предусмотрено много различных алгоритмов квантизации. Перед тем как перейти к их анализу, рассмотрим команду Quantize Setup, которой открывается диалоговое окно Quantize Setup, предназначенное для выбора параметров квантизации.

6.6.1. Выбор параметров квантизации

Итак, откроем диалоговое окно Quantize Setup (рис. 6.34) и рассмотрим его содержание.

Рис. 6.34. Диалоговое окно Quantize Setup

В средней части окна расположено поле (Grid Display), в котором (в пределах одного такта) наглядно отображается сетка квантизации и те изменения, которые происходят с ней при выборе различных значений параметров и алгоритмов квантизации.
В верхней части окна находится группа Grid Quantize, элементы которой предназначены для установки сетки квантизации — положения на оси времени тех точек, к которым в результате квантизации будут привязываться сообщения. В группу входят:
1. Раскрывающийся список Grid, в котором выбирают основной шаг квантизации в пределах от целой до стодвадцатьвосьмой длительности.
2. Раскрывающийся список Туре, предназначенный для перехода:

- к пунктирной длительности (Dotted — удлинение шага квантизации на половину основной длительности, в нотной записи такие длительности обозначаются как "нота с точкой");
- к длительности, позволяющей образовывать триоли (Triplet — деление основной длительности не на две части, а на три).

Еще большую гибкость в вопросе выбора шага квантизации даст вам поле ввода Tuplet. С его помощью такт и основные доли такта можно разделить на любое количество частей. Это позволяет формировать любые триолеобразные ритмические фигуры, базирующиеся на квинтолях (рис. 6.35), секстолях, септолях и т. д.
С помощью слайдера Swing можно сместить каждый второй узел сетки квантизации относительно его обычного положения (рис. 6.36). При воспроизведении квантизированной таким образом музыки действительно возникает ощущение свинга.
Слайдер Magnetic Area позволяет определить в окрестностях узлов сетки квантизации размер тех областей (рис. 6.37), в пределах которых квантизация будет оказывать влияние на ноты ("притягивать" их к узлам). Ноты, находящиеся вне Magnetic Area, могут быть не затронуты квантизацией. Это также служит разрушению ощущения монотонности в образе идеально ровной MIDI-музыки. Область захвата отображается на поле Grid Display в виде голубых прямоугольников, длина каждого из которых пропорциональна значению Magnetic Area.

Рис. 6.35. Такт разделен сеткой квантизации на 5 частей

Рис. 6.36. Пример сетки квантизации, Grid = 1/8, Swing = 50 %

Рис. 6.37. Пример сетки квантизации, Grid = 1/8, Magnetic Area = 20%

А вот в поле Non Quantize можно ввести в тиках ширину области, в пределах которой квантизация, наоборот, не будет оказывать влияния на ноты. Это, с одной стороны, позволит сохранить небольшие отклонения от равномерной игры, которые как раз и являются одним из признаков стиля музыканта-профессионала, а с другой стороны, позволит устранять грубые исполнительские ошибки. Напомним, что в Cubase SX на четвертную длительность приходится 120 тиков.
Если в поле Random Quantize ввести ненулевое значение (в тиках), то сообщения будут квантизироваться к случайным позициям в пределах указанного "расстояния" от сетки квантизации.
В поле Iterative Strength в процентах вводится параметр, определяющий область действия алгоритма квантизации, который приводится в действие командой MIDI > Iterative Quantize (ее мы охарактеризуем чуть позже).
Обращаем ваше внимание на то, что любые изменения сетки квантизации, выполненные в диалоговом окне Quantize Setup, немедленно находят отражение в окне Key Editor: изменяется "густота" вертикальных линий сетки в правой секции. Кроме того, изменение параметров Grid, Type и Tuplet мгновенно отображается также в поле Quantize, имеющемся в окнах Key Editor и List Editor. А вот для того чтобы применить установленную квантизацию к MlDI-сообщениям, записанным на треке в выделенной части, нужно нажать кнопку Apply.

6.6.2. Суть различных алгоритмов квантизации

После того как вы выбрали параметры квантизации, можно применять ее на практике. Доступ к соответствующим командам осуществляется либо из контекстного меню, либо из меню MIDI.
Непосредственно в меню MIDI (или в подменю MIDI контекстного меню) имеются 2 команды квантизации:

- Over Quantize — произвести полную квантизацию моментов наступления событий в соответствии с сеткой квантизации, выбранной в раскрывающемся списке Quantize окна Key Editor;
- Iterative Quantize — выполнить итеративную (приближенную) квантизацию, при которой начальные моменты событий переместятся не точно в узлы сетки квантизации, а в некоторую их окрестность, ширина которой определяется значением параметра Iterative Strength (выбирается в окне диалога Quantize Setup).

Кроме того, в подменю Advanced Quantize содержатся 4 дополнительные команды, относящиеся к квантизации. Рассмотрим суть каждой из них.
1. Quantize Lengths — выполнять квантизацию только продолжительности событий, не затрагивая их начальные моменты. Команда доступна только при открытых окнах редакторов Key Editor или List Editor.
2. Quantize Ends — выполнять квантизацию только моментов окончания событий.
3. Undo Quantize — отменить ранее выполненную квантизацию. Данная команда в отличие от отмен, которые выполняются командой Edit > Undo, оказывает влияние только на операции квантизации, не затрагивая другие разновидности редактирования. Вместе с тем, применение Undo Quantize отображается в предыстории редактирования окна Edit History.
4. Freeze Quantize — стереть из предыстории квантизации информацию о первоначальных положениях и протяженности событий. После применения данной команды к выделенным сообщениям их текущие положения и длительности программа будет считать исходными. Если ранее квантизация не выполнялась, то команда не окажет никакого влияния. Если квантизация имела место, то после применения команды MIDI > Advanced Quantize > Freeze Quantize не будет действовать команда MIDI > Advanced Quantize > Undo Quantize. Однако и в последнем случае отменить квантизацию все-таки можно. Для этого следует воспользоваться командой Edit > Undo.
Обилие алгоритмов квантизации — это то, чем всегда гордились поклонники музыкальных редакторов, в именах которых имеется слово "Cubase". Суть этих алгоритмов за долгие годы не претерпела значительных изменений. Поэтому при желании вы сможете найти их подробное описание в книгах, посвященных ранним версиям программы Cubase. Мы же на этом завершаем тему квантизации.
В заключение хочется обратить ваше внимание только на одно обстоятельство. Квантизацию можно отнести к тем средствам программы, которые позволяют в автоматическом режиме выполнять одновременную обработку большого количества сообщений в соответствии с заданным алгоритмом. Это может помогать в работе, но только в том случае, когда вы хорошо представляете себе, что получится в ее результате при различных начальных условиях. Поэтому советуем вам вводить в свою практику различные приемы квантизации постепенно, после того, как на понятных вам примерах вы испытаете их в действии.

6.7. Применение команд меню MIDI

В меню MIDI имеются следующие команды: Transpose..., Merge MIDI in Loop, Dissolve Part, O-Note Conversion и Reset.
Командой Reset вы можете послать синтезатору сигнал сброса MIDI-контроллеров в состояние по умолчанию. Такая необходимость возникает чаще всего в тех случаях, когда происходит случайное "подвисание" ноты: сообщение Note On прошло, a Note Off — нет. Остальные команды требуют чуть более подробного пояснения.

6.7.1. Transpose... — транспонирование выделенных MIDI-нот

Командой MIDI > Transpose... открывается диалоговое окно Transpose (рис. 6.38), предназначенное для транспонирования выделенных MIDI-нот.

Рис. 6.38. Диалоговое окно Transpose

В поле ввода Semitones вы должны указать интервал транспонирования (в количестве полутонов. Положительное число означает транспонирование вверх, отрицательное — вниз. Алгоритм работы Transpose состоит в том, что к номерам нот, записанных в части на треке, прибавляется число, введенное вами в поле Semitones.
Разработчики программы предлагают нам самим решать, как быть в тех случаях, когда в результате транспонирования ноты могут "забраться" слишком высоко или "опуститься" слишком низко. Если установлен флажок Keep Notes in Range, то максимальный диапазон транспонирования будет ограничен значениями, введенными в полях ввода Upper Barrier и Lower Barrier. Советуем не менять его значения, установленного по умолчанию (от С-2/0 до G8/127). В этом случае, даже если в промежуточном результате вычислений, сопровождающих транспонирование, номер ноты выйдет за допустимый интервал [0, 127], ничего страшного не случится. Программа автоматически прибавит к промежуточному результату или число 12, или -12, и ноты окажутся в пределах существующих MIDI-октав. В итоге, нота до по-прежнему останется нотой до, нота ре — ре и т. д.
Если же в полях ввода Upper Barrier и Lower Barrier вы зададите слишком узкий допустимый диапазон транспонирования, то его алгоритм будет иным способом реагировать на возникновение "пограничных конфликтов":

- если сумма номера исходной ноты и числа, заданного в поле ввода Semitones, превысит число, заданное в поле ввода Upper Barrier, то в итоге будет создана нота с номером, равным числу, заданному в поле ввода Upper Barrier;
- если сумма номера исходной ноты и числа, заданного в поле ввода Semitones, станет меньше числа, заданного в поле ввода Lower Barrier, то в итоге будет создана нота с номером, равным числу, заданному в поле ввода Lower Barrier.

В таких ситуациях вероятным становится непредсказуемое изменение нот: нота до вполне может превратиться, например, в ноту ля или в любую другую.
Этому окну можно найти довольно необычное применение. Если в полях Upper Barrier и Lower Barrier ввести одно и то же значение, то все ноты, содержащиеся в выделенной части, превратятся именно в ту ноту, которая указана в данных полях. Понадобиться это может в тех случаях, когда вам захочется из мелодической партии выделить ритм "в чистом виде".

6.7.2. Merge MIDI in Loop — перезапись MIDI-сообщений с разных треков на один; применение MIDI-плагинов

Команда Merge MIDI in Loop позволяет объединить все MIDI-сообщения, находящиеся на незаглушенных треках между левым и правым локаторами, в единую часть. Часть размещается на выбранном треке. Командой открывается диалоговое окно MIDI Merge Options, в котором следует определить опции формирования части.
Обращаем ваше внимание на важное обстоятельство: успешное применение команды возможно только при условии, что для каждого из MIDI-треков выбран выходной порт!
Наибольшая польза от команды Merge MIDI in Loop может быть получена в том случае, когда она используется для применения результатов работы MIDI-плагинов.
MIDl-плагины в Cubase SX, в основном, используются в реальном времени. Для этого вы сначала должны подключить MIDI-плагин к проекту одним из двух способов:

- в режиме вставки как эффекты последовательного действия (в секции Inserts инспектора или в аналогичной секции микшера);
- в режиме посыла как эффекты параллельного действия (в секции Sends инспектора или в аналогичной секции микшера).

Затем вы можете регулировать параметры плагина в его окне. Результат работы плагина, минуя трек Cubase SX, будет поступать непосредственно на выходной MIDI-порт программы (все подробности о работе с MIDI-плаги-нами читайте в главе 9).
На работу плагина в реальном времени тратится некоторая часть ресурсов компьютера. Если к проекту подключено много плагинов, то нагрузка на компьютер может стать существенной. Поэтому хорошо было бы обладать инструментом для пересчета результатов работы плагина в MIDI-сообщения, записываемые вместо исходных непосредственно в часть на MIDI-треке. Подобрали параметры плагина в реальном времени, убедились в том, что результаты его работы вас устраивают — и давайте команду на их запись. А плагин после этого уже и не нужен. Отключайте его от проекта.
Именно таким средством и является диалоговое окно MIDI Merge Options (рис. 6.39), которое открывается командой MIDI > Merge MIDI in Loop.

Рис. 6.39. Диалоговое окно MIDI Merge Options

В окне находятся только три флажка: Include Inserts, Include Sends и Erase Destination.
Если установлен флажок Include Inserts, то в процессе перезаписи данных с одного MIDI-трека на другой будут учтены все преобразования, которые осуществляются MIDI-плагинами, подключенными в режиме вставки как эффекты последовательного действия (в секции Inserts инспектора или в аналогичной секции микшера).
Если установлен флажок Include Sends, то в процессе перезаписи данных с одного MIDI-трека на другой будут учтены все преобразования, которые осуществляются MIDI-плагинами, подключенными в режиме посыла как эффекты параллельного действия (в секции Sends инспектора или в аналогичной секции микшера).
Если установлен флажок Erase Destination, то после выполнения команды исходные данные из фрагментов частей, задействованных в обработке, будут удалены.
В главе 9 мы научим вас, как использовать команду Merge MIDI in Loop для исследования сущности MIDI-плагинов, имеющихся в Cubase SX.

6.7.3. Dissolve Part— распределение сообщений с выделенной части по отдельным трекам

Команда MIDI > Dissolve Part служит для распределения MIDI-сообщений с выделенной части (или с нескольких выделенных частей одного или нескольких треков) по отдельным трекам. Обращаем ваше внимание на то, что команда доступна, если вы работаете в окне Cubase SX Project, и лишь в том случае, когда имеется хотя бы одна часть, выделенная при включенной кнопке Командой открывается диалоговое окно (рис. 6.40). в котором следует выбрать критерий распределения сообщений. Возможны два варианта:

- Separate Channels — по признаку принадлежности сообщений к определенному MIDI-каналу (будет установлено соответствие "трек — MIDI-канал";
- Separate Pitches — по номеру MIDI-ноты (на каждом из треков будут собраны сообщения, характеризующиеся одинаковым номером ноты).

Рис. 6.40. Диалоговое окно Dissolve Part

Если все сообщения в выделенной части ассоциированы с одним и тем же MIDI-каналом, то опция Separate Channels недоступна.
Опция Separate Channels может оказаться полезной для обратного преобразования MIDI-данных, обработанных командой MIDI > Merge MIDI in Loop. Конечно, для возврата в исходное состояние удобнее пользоваться командой Edit > Undo. Однако в тех случаях, когда это оказывается невозможным (например, когда вы "одумались" лишь после сохранения и закрытия проекта), команда MIDI > Dissolve Part и опция Separate Channels могут выручить. Данная опция может пригодиться также при работе с M1DI-данными, импортированными в Cubase SX из стандартных MIDI-файлов формата 0, в которых абсолютно все сообщения хранятся на одном треке.
Опция Separate Pitches на практике часто используется для разноса по нескольким трекам партий различных ударных инструментов. Некоторые музыканты считают, что так их удобнее редактировать. Хотя это, скорее, дань привычке. Вспомните, как удобно организована работа в окне Drum Editor: все партии ударных видны, а параметры каждой партии можно редактировать независимо от других.

6.7.4. O-Note Conversion— преобразование номеров нот в соответствии с Drum Map

Мы уже рассказывали о Drum Map в разд. 4.1.2 и разд. 6.4. Напомним, что Drum Map можно считать своего рода перекодировщиком, который в соответствии с заданным правилом меняет номера нот, поступающих в него (I-Note), на новые номера. Те ноты, которые формируются на выходе Drum Map, в Cubase SX обозначены как O-Note. Drum Map применяется в составе редактора Drum Editor. Данные два средства, по сути дела, совместно выполняют роль MIDI-плагина реального времени. При игре на MIDI-клавиатуре I-Note поступают в Drum Map с нее, в режиме воспроизведения — с MIDI-трека Cubase SX, a O-Note в любом случае отправляются в выходной MIDI-порт программы.
Команда O-Note Conversion позволяет записать ноты, номера которых преобразованы в соответствии с Drum Map, на MIDI-трек.
Команда доступна только в том случае, когда для MIDI-трека назначена барабанная карта, т. е. если в раскрывающемся списке mар: основной секции инспектора трека выбрана любая строка, кроме No Drum Map.
Заметим, что в барабанной карте две различные I-Note не могут соответствовать одной O-Note. Например, сочетание I-Note = СЗ/60 -> O-Note = ЕЗ/64 и I-Note = ЕЗ/64 -> O-Note = ЕЗ/64 является запрещенным. Поэтому в такой ситуации программа откажется выполнять команду O-Note Conversion и выдаст сообщение о некорректности "навязываемых" ей преобразований. Конфликт, обозначенный в приведенном примере, можно разрешить следующим образом: I-Note = СЗ/60 -» O-Note = ЕЗ/64 и I-Note = ЕЗ/64 -> O-Note = СЗ/60.

6.8. Применение функций, доступных из подменю MIDI > Functions

MIDI > Functions — подменю, в котором собраны команды, выполняющие ряд редактирующих функций:

- Legato — удлинение MIDI-нот до их слияния. В результате применения этой функции каждая MIDI- нота удлиняется таким образом, чтобы либо ее окончание достигало начала следующей ноты, либо между нотами оставался промежуток заданной длительности, либо ноты накладывались друг на друга. Параметры функции Legato задаются в диалоговом окне Preferences (команда File > Preferences, вкладка MIDI - Function Parameters);
- Fixed Lengths — изменение длительности всех MlDI-нот до заданного значения. Длительность, к которой будут преобразованы ноты, выбирается в раскрывающемся списке Quantize окна Key Editor (или окна List Editor);
- Delete Doubles — удаление двойных нот. Двойные ноты — это ноты, имеющие одинаковые номера и расположенные в одинаковых временных позициях. Они могут возникать при записи в циклическом режиме, а также в процессе редактирования. Двойные ноты напрасно расходуют полифонию синтезатора, причем их звучание, как правило, отличается в худшую сторону от звучания отдельных нот из-за небольшого и непредсказуемого временного рассогласования;
- Delete Controllers — удаление всех сообщений, кроме MIDI-нот из выделенной части;
- Delete Notes... — удаление нот, имеющих заданные параметры;
- Restrict Polyphony — редактирование длительности одновременно звучащих нот с целью уменьшения их числа. Командой Restrict Polyphony открывается диалоговое окно, предназначенное для выбора допустимого количества голосов, используемых при воспроизведении выделенных нот или частей. Функция полезна в том случае, когда в вашем распоряжении имеется звуковая карта или синтезатор с небольшой полифонией. Реально функция сокращает длительность нот таким образом, чтобы одни ноты успевали отзвучать до начала следующих;
- Pedals to Note Length — преобразование длительности нот с учетом наличия сообщений о включении сустейн-педали. Функция выявляет имеющиеся сообщения о включении и выключении сустейн-педали, удлиняет ноты, к которым эти сообщения относятся. После этого сами сообщения о включении и выключении сустейн-педали удаляются. Таким способом несколько разгружается MlDI-интерфейс;
- Delete Overlaps (mono) — устранение перекрытия во времени MIDI-нот с одинаковыми номерами. Для правильной работы некоторых синтезаторов требуется, чтобы сообщение Note Off предшествующей ноты шло обязательно раньше, чем сообщение Note On следующей ноты. Команда решает эту проблему автоматически;
- Delete Overlaps (poly) — устранение перекрытия во времени MIDI-нот с любыми номерами;
- Velocity... — преобразование значений параметра Velocity сообщений Note On;
- Fixed Velocity — присвоение параметру Velocity сообщений Note On заданного значения, которое равно числу, введенному в поле Insert Velocity окна Key Editor;
- Reverse — перезапись выделенных нот в обратном порядке. При этом меняется только очередность звучания нот (например, было: до, ре, ми, а станет: ми, ре, до), но не характер звукоизвлечения: каждый звук по-прежнему будет начинаться с фазы атаки и завершаться фазой затухания.

Назначение большинства перечисленных функций достаточно понятно и без дополнительных пояснений. Поэтому остановимся только на двух функциях: Delete Notes... и Velocity....

6.8.1. Delete Notes... — удаление нот, имеющих заданные параметры

Команда MIDI > Functions > Delete Notes... открывает диалоговое окно, Delete Notes (рис. 6.41), предназначенное для выбора критериев удаляемых нот.

Рис. 6.41. Диалоговое окно Delete Notes

Если установлен флажок Minimum Length, то в результате применения функции из выделенной части будут удалены ноты, длительность которых меньше, чем число, введенное в поле Minimum Length (в тиках). Диаграмма, расположенная чуть ниже, служит инструментом быстрого ввода допустимой длительности ноты. Щелчком на черной (правой) части диаграммы выбирается ее масштаб (четверть, такт, два такта, четыре такта). Щелчок на светлой части диаграммы фактически превращает ее в слайдер, которым число в поле Minimum Length можно изменять быстро и в больших пределах. Если установлен флажок Minimum Velocity, то функция будет применена к нотам, Velocity которых меньше, чем число, введенное в поле Minimum Velocity.
От содержания поля Remove when under зависит логика принятия решения об удалении ноты. Для смены содержания поля нужно на нем щелкнуть. Если выбран вариант One Of, то нота будет удалена, если хотя бы один из ее признаков отвечает установленным критериям (или длительность, или Velocity меньше заданных значений). Вариант Both означает, что для удаления ноты должны быть выполнены оба условия (и длительность и Velocity меньше заданных значений).
На практике функцию Delete Notes применяют для удаления так называемых нот-призраков (случайных очень коротких или очень тихих нот). Ноты-призраки могут появляться в результате "грязного" стиля игры на MIDI-клавиатуре, но в первую очередь это характерно для игры на MIDI-гитаре. На слух такие ноты могут быть заметны слабо. Искать их в окне List Editor, просматривая километровые списки сообщений, — занятие неблагодарное. Вместе с тем, пользы от них никакой, один только вред: напрасно занимают полифонию синтезатора, дают случайные призвуки. Поэтому обработать функцией Delete Notes партию, сыгранную вживую, будет нелишним.
В четвертной длительности 480 тиков, в шестнадцатой — 120, в тридцатьвторой — 60, в шестьдесятчетвертой — 30. Вряд ли в реальной музыкальной практике возникает необходимость играть более короткие ноты (да и многие ли музыканты смогли бы их осознанно сыграть?). Поэтому ноты, короче 30 тиков, можно считать аномальными и подлежащими удалению. Точно так же маловероятно неслучайное извлечение очень тихих нот (с Velocity менее 10—15 единиц). А уж если нота и слишком коротка, и слишком тиха — это уж точно результат ошибки исполнителя.

6.8.2. Velocity... — преобразование значений параметра Velocity сообщений Note On

Команда MIDI > Functions > Velocity... открывает диалоговое окно Velocity (рис. 6.42), предназначенное для выбора алгоритма преобразования значений Velocity в сообщениях типа Note.

Рис. 6.42. Диалоговое окно Velocity

Функция действует на выделенную часть (или на несколько выделенных частей).
В окне имеются два поля ввода, назначение которых претерпевает изменение в зависимости от выбранного типа преобразования.
Тип преобразования значений Velocity выбирают в раскрывающемся списке Туре. Возможны три варианта типа преобразования (Add/Subtract, Compress/Expand, Limit), которые мы сейчас и рассмотрим.
Преобразование типа Add/Subtract заключается в том, что к значениям Velocity нот будет прибавлено одно и то же число. Оно должно быть указано в верхнем поле ввода, которое в этом случае будет иметь название Amount. Положительные значения числа увеличивают Velocity нот, отрицательные — уменьшают.
Преобразование типа Compress/Expand заключается в том, что значения Velocity нот будут умножены на постоянный коэффициент. Он в процентах задается в верхнем поле ввода (Ratio). Значения коэффициента, превышающие 100 %, означают увеличение Velocity, не превышающие — уменьшение. Например, если у исходной ноты Velocity = 100, a Ratio = 40 %, то после применения функции получится Velocity = 40. Максимальное значение Ratio не ограничено. Однако это на практике не очень важно, так как если, например, попытаться Velocity = 100 умножить всего лишь на 2 (т. е. установить Ratio = 200 %), то все равно в итоге получится Velocity = 127.
Преобразование типа Limit заключается в том, что значения Velocity нот будут ограничены в пределах диапазона, заданного в верхнем (Upper) и нижнем (Lower) полях ввода. На ноты, Velocity которых попадает в разрешенный диапазон, функция не воздействует никаким образом. Нотам, у которых Velocity > Upper, будет присваиваться Velocity = Upper. Нотам, у которых Velocity < Lower, будет присваиваться Velocity = Lower. Таким образом, в отношении параметра Velocity применяется операция, аналогичная жесткому ограничению звукового сигнала (см. разд. 1.10.2).