Manuale Utente
Sintassi MIDI
OnSong utilizza una sintassi basata su testo per esprimere i comandi MIDI. Mentre puoi utilizzare gli MIDI Events nell'Metadata Editor, puoi anche esprimere i comandi MIDI in testo.
Valori delimitati
Innanzitutto, più comandi MIDI possono essere separati da vari caratteri tra cui: un carattere di tabulazione, virgola, punto e virgola, pipe verticale o nuova riga. La virgola è il delimitatore più comune. Ad esempio:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Canale
Ogni voce può contenere un simbolo @. Il valore numerico dopo il simbolo è il canale su cui il comando deve essere inviato. Poiché i canali in MIDI iniziano da zero, il canale uno sarebbe uno zero (0), il canale due uno (1), ecc.
Se non viene utilizzato il simbolo @, il comando viene inviato o ricevuto su tutti i canali.
Prefissi
Ogni voce nell'elenco contiene un prefisso. Questo prefisso determina il tipo di comando MIDI da inviare. Questi includono:
- PC o Nessun Prefisso è un evento di cambio programma.
- N è un evento di nota
- CC è un evento di cambio controllo.
- SS è un evento di selezione canzone.
- START è un comando di avvio.
- STOP è un comando di arresto.
- CONTINUE è un comando di continuazione.
- F0 antepone un messaggio SysEx.
- WAIT implementa un ritardo.
Valori
Il valore del comando appare subito prima del simbolo @ o alla fine della voce se non è presente @. Questo è il valore del cambio programma, cambio controllo, nota o selezione canzone in base al prefisso. Nel caso di voci SysEx, il valore esadecimale di SysEx viene fornito direttamente dopo il prefisso F0 che viene utilizzato come intestazione per tutti i comandi SysEx.
Sottovalori
In alcuni casi, informazioni aggiuntive vengono trasmesse nel comando MIDI come sottovalori. Ad esempio, MSB e LSB, nonché la velocità dei valori di controllo possono essere inviati in questo modo. Questo è espresso attraverso l'aggiunta di due punti nella porzione di valore. Il sottovalore ha un contesto diverso a seconda del tipo di comando MIDI inviato:
- Program Change ha sottovalori allineati con MSB/LSB del cambio programma. Questi valori sono separati da un punto con MSB a sinistra e LSB a destra.
- Control Change ha il valore del controllo impostato utilizzando questo. Il numero può essere compreso tra 0 e 127. Se omesso, il valore 127 è implicito.
- Note Event ha un sottovalore relativo alla velocità con cui la nota deve essere riprodotta. Questo può essere impostato su un valore numerico compreso tra 0 e 127.
Esempi
Iniziamo con un semplice cambio programma. In questo scenario utilizziamo il cambio programma 8 che invia anche un MSB di 4 e un LSB di 2 sul canale 1. L'esempio inizia con la variazione più complessa e rimuove la selezione banca e il canale per diventare più ampio:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
I cambi controllo sono simili tranne per il fatto che il lato sinistro della sintassi è il numero del cambio controllo e il lato destro è un valore facoltativo. Se il valore non viene fornito, viene inviato 127. Invieremo Control Change 106 con un valore di 64 sul canale 3.
CC105:63@2, CC105:63. CC105@2, CC105
Ora diamo un'occhiata agli eventi di nota. Vogliamo riprodurre C4 sul canale 8 al 75% di velocità, dovremmo inserire quanto segue perché OnSong inizia a contare MIDI C0 come 0 sulla scala delle note MIDI:
N60:95@7, N60@7, N60:95, N60
Ancora una volta, è importante ricordare che man mano che i valori vengono rimossi dalla sintassi MIDI, l'istruzione MIDI diventa più ampia e meno specifica. Ad esempio, l'ultima versione dell'evento di nota invierà C4 al 100% di velocità su tutti i canali.
Per implementare un ritardo tra altri eventi MIDI, utilizzare il comando WAIT con un numero. Il numero può essere un valore intero. Puoi definire i secondi di attesa come 1-10, oppure definire come millisecondi. Il seguente mostra come attendere 2 secondi, 10 secondi e mezzo secondo.
WAIT2, WAIT10, WAIT500