ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE
Користувацький посібник
Синтаксис MIDI
OnSong використовує синтаксис на основі тексту для вираження команд MIDI. Хоча ви можете використовувати Події MIDI в Редакторі метаданих, ви також можете виражати команди MIDI в тексті.
Розділені значення
Перш за все, кілька команд MIDI можуть бути розділені різними символами, включаючи: символ табуляції, кому, крапку з комою, вертикальну лінію або новий рядок. Кома є найпоширенішим розділювачем. Наприклад:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Канал
Кожен запис може містити символ @. Числове значення після символу — це канал, на якому буде надіслана команда. Оскільки канали в MIDI починаються з нуля, перший канал буде нулем (0), другий канал буде одиницею (1) тощо.
Якщо символ @ не використовується, команда надсилається або приймається на всіх каналах.
Префікси
Кожен запис у списку містить префікс. Цей префікс визначає тип команди MIDI, яку потрібно надіслати. До них входять:
- PC або без префікса — це подія зміни програми.
- N — це подія ноти
- CC — це подія зміни керування.
- NRPN — це номер незареєстрованого параметра.
- SS — це подія вибору пісні.
- START — це команда запуску.
- STOP — це команда зупинки.
- CONTINUE — це команда продовження.
- WAIT чекає певну кількість часу перед надісланням додаткових подій.
- F0 передує повідомленню SysEx.
- @ передує глобальному тегу MIDI.
Значення
Значення команди з'являється прямо перед символом @ або в кінці запису, якщо @ не вказаний. Це значення зміни програми, керування змін, ноти або вибору пісні на основі префікса. У випадку записів SysEx шістнадцяткове значення SysEx надається безпосередньо після префікса F0, який використовується як заголовок для всіх команд SysEx.
Підзначення
У деяких випадках додаткова інформація передається в команді MIDI як підзначення. Наприклад, MSB та LSB, а також швидкість керування значень можуть бути надіслані таким чином. Це виражається додаванням двокрапки у частину значення. Підзначення має різний контекст залежно від типу надісланої команди MIDI:
- Зміна програми має підзначення, узгоджені з MSB/LSB зміни програми. Ці значення розділені крапкою з MSB ліворуч та LSB праворуч.
- Зміна керування має значення керування, встановлене за допомогою цього. Число може бути від 0 до 127. Якщо опущено, передбачається значення 127. Ви також можете розділити кілька значень дефісом, щоб перейти через значення. Наприклад, 127-0 буде утримувати значення 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. Наступне затримає MIDI на 2 секунди, а також на 500 мс (половина секунди). Ви можете вказати секунди як 1-10 секунд або в мілісекундах.
WAIT2, WAIT500
Нарешті, ми можемо посилатися на глобальні MIDI, які є попередньо налаштованими списками подій MIDI, на які можна посилатися. Якщо у вас є глобальне MIDI з тегом «on» (без лапок), ви можете посилатися на цей глобальний за допомогою наступного:
@on