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
OnSong 2023 — Ultimo aggiornamento il January 17, 2018