Podręcznik użytkownika

Składnia MIDI

OnSong używa składni tekstowej do wyrażania poleceń MIDI. Chociaż możesz używać Zdarzeń MIDI w Edytorze metadanych, możesz również wyrażać polecenia MIDI w tekście.

Wartości rozdzielane

Przede wszystkim wiele poleceń MIDI można oddzielić różnymi znakami, w tym: znakiem tabulacji, przecinkiem, średnikiem, pionową kreską lub nową linią. Przecinek jest najczęstszym ogranicznikiem. Na przykład:

1.2:0@0, PC1.2:3@0, N67@1, START, SS8

Kanał

Każda pozycja może zawierać symbol @. Wartość numeryczna po symbolu to kanał, na którym ma być wysłane polecenie. Ponieważ kanały w MIDI zaczynają się od zera, kanał pierwszy to zero (0), kanał drugi to jeden (1) itp.

Jeśli nie jest używany symbol @, polecenie jest wysyłane lub odbierane na wszystkich kanałach.

Przedrostki

Każda pozycja na liście zawiera przedrostek. Ten przedrostek określa typ polecenia MIDI do wysłania. Należą do nich:

  • PC lub Brak przedrostka to zdarzenie zmiany programu.
  • N to zdarzenie nuty
  • CC to zdarzenie kontroli zmian.
  • SS to zdarzenie wyboru piosenki.
  • START to polecenie uruchomienia.
  • STOP to polecenie zatrzymania.
  • CONTINUE to polecenie kontynuacji.
  • F0 poprzedza wiadomość SysEx.
  • WAIT implementuje opóźnienie.

Wartości

Wartość polecenia pojawia się tuż przed symbolem @ lub na końcu pozycji, jeśli nie podano @. Jest to wartość zmiany programu, kontroli zmian, nuty lub wyboru piosenki na podstawie przedrostka. W przypadku pozycji SysEx wartość heksadecymalna SysEx jest podana bezpośrednio po przedrostku F0, który jest używany jako nagłówek dla wszystkich poleceń SysEx.

Podwartości

W niektórych przypadkach dodatkowe informacje są przekazywane w poleceniu MIDI jako podwartości. Na przykład MSB i LSB, a także prędkość wartości kontroli można wysłać w ten sposób. Jest to wyrażane poprzez dodanie dwukropka w części wartości. Podwartość ma różny kontekst w zależności od typu wysłanego polecenia MIDI:

  • Zmiana programu ma podwartości wyrównane z MSB/LSB zmiany programu. Te wartości są oddzielone kropką, a MSB znajduje się po lewej stronie, a LSB po prawej.
  • Kontrola zmian ma wartość kontroli ustaloną za pomocą tego. Liczba może być między 0 a 127. Jeśli pominięta, przyjmowana jest wartość 127.
  • Zdarzenie nuty ma podwartość związaną z prędkością, z jaką powinna być grana nuta. Można to ustawić na wartość numeryczną między 0 a 127.

Przykłady

Zacznijmy od prostej zmiany programu. W tym scenariuszu używamy zmiany programu 8, która również wysyła MSB 4 i LSB 2 na kanale 1. Przykład zaczyna się od najbardziej złożonej odmiany tego i usuwa wybór banku i kanał, aby stać się bardziej ogólny:

PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7

Zmiany kontroli są podobne, z wyjątkiem tego, że lewa strona składni to numer zmiany kontroli, a prawa strona to opcjonalna wartość. Jeśli wartość nie jest podana, zamiast tego wysyłany jest 127. Wyślemy zmianę kontroli 106 z wartością 64 na kanale 3.

CC105:63@2, CC105:63. CC105@2, CC105

Teraz spójrzmy na zdarzenia nut. Chcemy zagrać C4 na kanale 8 z prędkością 75%, wpisalibyśmy następujące, ponieważ OnSong zaczyna liczyć MIDI C0 od 0 na skali nut MIDI:

N60:95@7, N60@7, N60:95, N60

Ponownie, ważne jest, aby pamiętać, że w miarę usuwania wartości ze składni MIDI, instrukcja MIDI staje się bardziej ogólna i mniej konkretna. Na przykład ostatnia wersja zdarzenia nuty wyśle C4 z prędkością 100% na wszystkich kanałach.

Aby wdrożyć opóźnienie między innymi zdarzeniami MIDI, użyj polecenia WAIT z liczbą. Liczba może być wartością całkowitą. Możesz zdefiniować sekundy do czekania jako 1–10 lub zdefiniować jako milisekundy. Poniżej pokazano, jak czekać 2 sekundy, 10 sekund i pół sekundy.

WAIT2, WAIT10, WAIT500
OnSong 2026 — Ostatnia aktualizacja January 17, 2018