Руководство пользователя
Синтаксис MIDI
OnSong использует синтаксис на основе текста для выражения команд MIDI. Хотя вы можете использовать MIDI Events в Metadata Editor, вы также можете выражать команды MIDI в тексте.
Разделённые значения
В первую очередь, несколько команд MIDI можно разделить различными символами, включая: символ табуляции, запятую, точку с запятой, вертикальную черту или новую строку. Запятая является наиболее распространённым разделителем. Например:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Канал
Каждая запись может содержать символ @. Числовое значение после символа — это канал, на котором должна быть отправлена команда. Поскольку каналы в MIDI начинаются с нуля, канал один будет нулём (0), канал два — единицей (1) и т. д.
Если символ @ не используется, команда отправляется или принимается на всех каналах.
Префиксы
Каждая запись в списке содержит префикс. Этот префикс определяет тип отправляемой команды MIDI. К ним относятся:
- PC или без префикса — это событие смены программы.
- N — событие ноты
- CC — событие изменения управления.
- SS — событие выбора песни.
- START — команда начала.
- STOP — команда остановки.
- CONTINUE — команда продолжения.
- F0 предваряет SysEx сообщение.
- WAIT реализует задержку.
Значения
Значение команды отображается прямо перед символом @ или в конце записи, если @ не дан. Это значение смены программы, изменения управления, ноты или выбора песни в зависимости от префикса. В случае записей SysEx шестнадцатеричное значение SysEx предоставляется непосредственно после префикса F0, который используется в качестве заголовка для всех команд SysEx.
Подзначения
В некоторых случаях дополнительная информация передаётся в команде MIDI как подзначения. Например, MSB и LSB, а также скорость значений управления могут быть отправлены таким образом. Это выражается добавлением двоеточия в часть значения. Подзначение имеет различный контекст в зависимости от типа отправляемой команды MIDI:
- Смена программы имеет подзначения, соответствующие MSB/LSB смены программы. Эти значения разделены точкой, с MSB слева и LSB справа.
- Изменение управления имеет значение набора управления. Число может быть между 0 и 127. Если опущено, предполагается значение 127.
- Событие ноты имеет подзначение, связанное со скоростью, с которой должна воспроизводиться нота. Это может быть установлено на числовое значение между 0 и 127.
Примеры
Давайте начнём с простой смены программы. В этом сценарии мы используем смену программы 8, которая также отправляет MSB 4 и LSB 2 на канал 1. Пример начинается с наиболее сложной вариации этого и удаляет выбор банка и канал, чтобы стать более широким:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
Изменения управления аналогичны, за исключением того, что левая часть синтаксиса — это номер изменения управления, а правая часть — необязательное значение. Если значение не предоставлено, вместо этого отправляется 127. Мы отправим изменение управления 106 со значением 64 на канал 3.
CC105:63@2, CC105:63. CC105@2, CC105
Теперь давайте посмотрим на события нот. Мы хотим воспроизвести C4 на канале 8 с скоростью 75%, мы бы ввели следующее, потому что OnSong начинает считать MIDI C0 как 0 на шкале MIDI нот:
N60:95@7, N60@7, N60:95, N60
Опять же, важно помнить, что по мере удаления значений из синтаксиса MIDI утверждение MIDI становится более широким и менее конкретным. Например, последняя версия события ноты будет воспроизводить C4 со скоростью 100% на всех каналах.
Для реализации задержки между другими событиями MIDI используйте команду WAIT с числом. Число может быть целым значением. Вы можете определить секунды ожидания как 1-10 или как миллисекунды. Следующее показывает, как ждать 2 секунды, 10 секунд и полсекунды.
WAIT2, WAIT10, WAIT500