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 — це подія зміни керування.
- 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