Come parlare MIDI

Dec 04 2022
Originariamente ho scritto questo articolo a maggio 2019, ma l'ho spostato qui dopo aver deprecato il mio vecchio sito web. Divertiti! Sommario Appendice I: Messaggi della modalità canaleAppendice II: Tabella delle tonalità MIDIAppendice III: Assegnazioni CC standardAppendice IV: Messaggi di cambio bancoAppendice V: Risorse aggiuntive Il MIDI è antico, ma utilissimo.

Originariamente ho scritto questo articolo a maggio 2019, ma l'ho spostato qui dopo aver deprecato il mio vecchio sito web. Divertiti!

Contenuti

  1. Cos'è il MIDI
    1.1 Cosa non è il MIDI
  2. Come funziona
    2.1 Separazione dei messaggi
    2.2 Byte di stato e byte di dati
  3. Tipi di messaggio
    3.1 Note Off / Note On (0x8n, 0x9n)
    → 3.1.1 Informazioni sui numeri di pitch MIDI
    3.2 Control Change (0xBn)
    3.3 Pitch Bend (0xEn)
    3.4 Pressione dei tasti polifonici e pressione dei canali (0xAn, 0xDn)
    3.5 Program Change (0xCn) )
    Sistema 3.6 (0xFn)
  4. A proposito di esadecimale
  5. Esempio applicato: la quinta sinfonia di Beethoven
  6. Lezione bonus: stato di corsa

Appendice I: Messaggi modalità canale
Appendice II: Tabella Pitch MIDI
Appendice III: Assegnazioni CC standard
Appendice IV: Messaggi cambio banco
Appendice V: Risorse aggiuntive

Il MIDI è antico, ma hella utile. Guida le tastiere che vedi al Guitar Center, controlla cose come l'illuminazione e gli effetti pirotecnici ai concerti¹ ed è stato utilizzato per la colonna sonora praticamente di tutti i film negli ultimi decenni.

Se sei un musicista moderno, una conoscenza operativa del MIDI è essenziale. Se sei il tipo di persona che legge post di blog come questi, ci sono buone probabilità che tu abbia già una certa esperienza di lavoro con esso; tuttavia, penso che sia utile sapere non solo come usarlo, ma anche come leggerlo, a livello di bit per bit. Tradurre e assemblare i propri messaggi MIDI potrebbe sembrare scoraggiante all'inizio, ma in realtà è davvero facile e penso che sia un'abilità importante per qualsiasi compositore moderno. È come sapere come funzionano i microfoni come ingegnere del suono.

Questo articolo servirà come introduzione completa e guida ai messaggi MIDI in quanto si applicano alla produzione musicale. Ciò che questa guida non è è un tutorial sulla composizione MIDI o su come utilizzare l'editor MIDI nella tua DAW. Tuttavia, questa guida è assolutamente orientata ai compositori, poiché scoprirai che una conoscenza fondamentale del MIDI sarà di grande aiuto quando capirai i tuoi strumenti MIDI più avanzati (e complicati). Iniziamo.

Il Prophet 600 è stato uno dei primi sintetizzatori a supportare il MIDI.

1. Cos'è il MIDI

Mi piace iniziare a insegnare le cose dall'inizio. Tuttavia, se hai già chiaro cos'è il MIDI e cosa fa, sentiti libero di saltare a Come funziona , dove ci immergeremo direttamente nei dettagli. Altrimenti, rivediamo.

MIDI è un acronimo che sta per "Musical Instrument Digital Interface". Essenzialmente, è un modo in cui i computer si descrivono e si trasmettono le performance musicali. In realtà, è il modo. Se sei nato dopo gli anni '80, allora probabilmente ogni tastiera o drum machine che tu abbia mai visto usa il MIDI. Sebbene nel corso degli anni siano stati fatti molti tentativi per revisionare o sostituire il MIDI, i produttori di strumenti e gli sviluppatori non sembrano preoccuparsi di utilizzare nient'altro.

Con il MIDI puoi:

  • Registra performance musicali e modificale con precisione chirurgica
  • "Attacca" un'esecuzione a qualsiasi strumento con poco o nessun lavoro
  • Generare proceduralmente o risequenziare le performance
  • Organizza performance d'insieme con un'unica connessione
  • Eseguire un missaggio rudimentale, completo di "automazione"

E questo se la partitura viene eseguita. Mentre le orchestre virtuali degli anni '80 suonavano ridicolmente false, gli strumenti moderni suonano così bene che gli ascoltatori occasionali non possono nemmeno notare la differenza. E questo ha cambiato tutto. Nei film e negli spettacoli televisivi a basso budget, la colonna sonora utilizzerà spesso orchestre MIDI nella versione finale e il pubblico non ne è più saggio. E sorprendentemente, tali strumenti sono disponibili per i musicisti a quasi tutti i livelli di reddito.

1.1 Cosa non è il MIDI

Prima di continuare, voglio dissipare un paio di idee sbagliate che a volte hanno i nuovi arrivati. Non ci vorrà molto.

Innanzitutto, il MIDI non fa musica: dice semplicemente ad altri dispositivi come fare musica. Ma può fare anche altre cose. Ad esempio, nel software video professionale, i messaggi MIDI vengono utilizzati per controllare cose come i parametri di animazione. Molte superfici di controllo da studio usano il MIDI per controllare il software di mixaggio, e questo stravagante pianoforte lo usa per attivare attuatori robotici. Il punto che sto cercando di chiarire è che mentre i dati MIDI sono prevalentemente usati per controllare strumenti virtuali, possono davvero essere usati per qualsiasi cosa, e da soli non “suonano” come niente.

Gli strumenti che un compositore MIDI usa in astratto trasforma il codice del computer in qualcosa di più facile da visualizzare. (Screenshot di Nuendo 8)

In secondo luogo, i dati MIDI non sono solo "spartiti per computer", per quanto utile possa essere l'analogia. Sebbene gli spartiti occidentali siano il mezzo che ha codificato tutta la musica più espressiva della storia, la verità è che lascia un notevole spazio all'interpretazione e i computer non gestiscono molto bene l'ambiguità.

Invece, il MIDI è probabilmente meglio pensato come un linguaggio di programmazione e il tuo editor MIDI come un ambiente di programmazione visiva. Gli editor MIDI rappresentano i comandi MIDI come forme sui rulli del pianoforte, invece di quello che sono in realtà: istruzioni digitali glorificate. E come tutti i linguaggi di programmazione, il MIDI è soggetto a tutti i tipi di bug e glitch. Ad esempio, se un messaggio "nota su" non è correttamente abbinato a un messaggio "nota fuori", la nota continua a suonare all'infinito, perché i computer non hanno il buon senso per fermarsi.

Comunque, sono stanco di scrivere questa introduzione. Sbucciamo tutti quegli strati di astrazione e impariamo, a un livello fondamentale, How To Speak MIDI.

2. Come funziona

Come praticamente tutto nei computer, il MIDI si riduce a un mucchio di uno e zero. Ogni cifra è chiamata bit (abbreviazione di "binary digit") e otto di esse formano un byte . Quando suoni un pianoforte digitale, i messaggi MIDI vengono generati internamente e inviati al generatore di suoni dello strumento, dove vengono interpretati e convertiti in suoni udibili. Se hai dato un'occhiata al segnale, i messaggi generati potrebbero assomigliare a questo:

Questa è la forma binaria di una semplice esecuzione MIDI: le prime quattro note della Quinta di Beethoven. Se dovessi registrare questa sequenza e ripeterla su un altro strumento MIDI esattamente come è stata consegnata, il risultato sarebbe una copia identica della performance. Se hai incasinato i tempi, cambieresti il ​​ritmo della performance. Tutto il resto della performance è codificato nei dati stessi.

È piuttosto interessante rendersi conto che i compositori al giorno d'oggi fondamentalmente passano il loro tempo a creare, modificare e modificare ciò che si riduce a una consegna a tempo di numeri. Ad ogni modo, analizziamo il compito di interpretare questo pasticcio, un passo alla volta.

2.1 Separare i messaggi

La prima cosa da sapere sui messaggi MIDI è che si estendono quasi sempre su più di un byte. Questo ha senso se consideri che ci sono solo 256 numeri univoci a 8 bit, e probabilmente abbiamo bisogno di codificare molte più informazioni di quelle per descrivere qualcosa di così espressivo come un evento musicale.

Quindi, se ricevi un messaggio in diversi piccoli pacchetti, possibilmente tutti in una volta, come fai a sapere dove finisce un messaggio e inizia il successivo? Realisticamente, se sai quanti byte aspettarti per messaggio e inizi dall'alto, dovresti essere in grado di distinguerli, purché nessuno di essi venga perso durante la trasmissione. Tuttavia, il MIDI ci offre un modo infallibile per analizzare ogni messaggio: dedicando il primo bit di ogni byte alla causa.

REGOLA 1: Se il primo bit di un byte MIDI è un 1 , allora il byte è un byte di stato , che contrassegna la prima parte di un messaggio MIDI. Se il primo bit è uno 0 , allora è un byte di dati , la cui forma è il corpo del messaggio.

Facile. Ogni volta che un byte inizia con un 1 , sappiamo che stiamo leggendo l'inizio di un nuovo messaggio e possiamo interpretare i byte seguenti insieme al primo. Usiamo questa regola per suddividere la performance MIDI di cui sopra in messaggi discreti.

Ora che stiamo osservando qualcosa di un po' più ordinato, potresti notare alcuni schemi che saltano fuori. Per prima cosa, ci sono solo due versioni univoche di ogni byte. Sapendo che questi messaggi rappresentano le prime quattro note della Quinta Sinfonia di Beethoven, riesci a indovinare cosa significano?

2.2 Byte di stato e byte di dati

Il byte di stato di un messaggio MIDI funge da intestazione, quindi è la parte più importante. Ci dice cosa fa il messaggio e come interpretare i seguenti byte di dati. Ciò che codificano i byte di dati dipende dal messaggio, ma in genere forniscono informazioni importanti per l'esecuzione del messaggio. Se il byte di stato dice "salta", i byte di dati potrebbero dirti quanto in alto.

Poiché il primo bit di ogni byte è riservato per distinguere i due tipi di byte, ci sono solo sette bit utilizzabili da entrambi. Ecco come vengono utilizzati:

REGOLA 2: i bit 2, 3 e 4 di un byte di stato ne identificano il tipo di messaggio . I bit 5–8 identificano il canale MIDI che sta indirizzando. I byte di dati svolgono funzioni diverse a seconda del tipo di messaggio.

Tre bit per determinare il tipo di messaggio e quattro per il numero di canale indicano che esistono otto tipi di messaggio distinti e 16 canali possibili. I byte di dati possono contenere qualsiasi valore compreso tra 0 e 127 . Sebbene la stragrande maggioranza dei messaggi utilizzi due byte di dati, tale numero può effettivamente variare a seconda delle esigenze del messaggio. Ad esempio, i messaggi di "cambio programma" richiedono solo un byte di dati e i messaggi "esclusivi di sistema" possono avere un numero arbitrario.

Se hai già lavorato con il MIDI, probabilmente hai già familiarità con i canali MIDI. Ma in caso contrario, ogni connessione MIDI può comandare fino a 16 voci. Il byte di stato specifica nei suoi quattro bit meno significativi a quale di questi canali è indirizzato il messaggio.³

3. Tipi di messaggio

La tabella seguente identifica i diversi tipi di messaggi MIDI e il modo in cui utilizzano i byte di dati. Esploreremo ciascuno nelle seguenti sottosezioni.

3.1 Nota disattivata / Nota attivata (0x8n, 0x9n)

Questi sono i messaggi MIDI più elementari e sono i più facili da capire. Quando vuoi suonare una nota, invia un messaggio "note on" e quando vuoi terminarla, invia un messaggio "note off". Questi messaggi utilizzano due byte di dati: il primo identifica quale intonazione si desidera controllare e il secondo identifica una velocità. ⁴ Un "note on" con velocità 0 non produce alcun suono ed è equivalente a un messaggio "note off".

Considerazioni:

  • L'esistenza di messaggi "note on" a velocità zero significa che i messaggi "note off" sono totalmente inutili. Lo standard MIDI afferma specificamente che i messaggi "note off" e "note on" a velocità zero sono equivalenti e devono essere trattati allo stesso modo. Di conseguenza, un dispositivo potrebbe annullare l'attivazione delle note in modo diverso rispetto a un altro.
  • Mentre i trasmettitori devono utilizzare solo un metodo per annullare l'attivazione delle note, i ricevitori devono essere in grado di gestirli entrambi.
  • Anche se un valore di velocità non ha molto senso in un messaggio "note off", fa comunque parte del messaggio e dovrebbe essere inviato. Il valore non è utilizzato e viene scartato.

I numeri di tono sono mappati sui tasti del pianoforte essenzialmente uno a uno. Tuttavia, poiché ci sono 128 valori possibili e solo 88 tasti del pianoforte, il MIDI supporta effettivamente 40 semitoni non presenti sul pianoforte. 19 di essi si trovano sopra la nota più alta, C7, e gli altri 21 sono sotto la nota più bassa, A-1. La gamma di intonazione MIDI è più o meno centrata sul Do centrale, che è la nota numero 60.

Tieni presente che i produttori non sono tutti d'accordo sui numeri di ottava. La notazione scientifica dell'altezza, usata dai musicisti analogici, identifica il Do più basso del pianoforte come C1 , che rende Middle C C4 . I programmatori, d'altra parte, spesso iniziano a contare da 0, quindi per loro il Do più basso è C0 e il Do centrale è C3 . Questa è la notazione che uso di solito, perché è quella che usano tutti i miei strumenti MIDI. Tuttavia, indipendentemente dal sistema utilizzato, il Do centrale è sempre la nota numero 60.

Nell'Appendice II , fornisco una tabella per la conversione da e verso i numeri di altezza MIDI.

3.2 Cambio di controllo (0xBn)

I messaggi “Control change” vengono utilizzati per modificare i controller continui di un canale . Un controller continuo è analogo a una corsia di automazione; consente il controllo continuo su diversi aspetti delle prestazioni di un canale.

Il primo byte di dati identifica il numero CC (0–119) e il secondo gli assegna un valore (0–127) .

Considerazioni:

  • A differenza del nome, i dati continui del controller non sono continui. Invece di interpolare uniformemente tra i valori come fa l'automazione, il valore corrente di una corsia CC può cambiare solo in passi discreti. Per passare agevolmente a un altro valore, è necessario inviare un gran numero di messaggi di "control change", incrementando o decrementando il valore a una velocità controllata.
  • La specifica MIDI definisce per cosa è destinata la maggior parte dei 120 CC, sebbene pochissimi dispositivi osservino più di una manciata. Fornisco una tabella di tutti i CC nell'Appendice III .
  • Gli ultimi otto numeri CC (120–127) in realtà non rappresentano affatto i CC. Rappresentano invece una categoria speciale di messaggi chiamati messaggi in modalità canale . I messaggi in modalità canale sono comandi specializzati che interessano l'intero dispositivo che li riceve. In pratica, non dovrai preoccuparti troppo di loro, ma fornisco maggiori informazioni su di loro nell'Appendice I .
  • I numeri CC 0 e 32 sono utilizzati da molti dispositivi per la selezione delle patch. Maggiori informazioni in merito nell'Appendice IV .

Alza o abbassa il tono. Ah.

Il pitch bend si comporta un po' come un CC. In effetti, la maggior parte degli editor MIDI tratta Pitch Bend come se fosse solo un altro CC. Tuttavia, un valore CC a 7 bit, con 128 valori possibili, non offre una risoluzione sufficiente per vendere un effetto di pitch bend. Le nostre orecchie sono straordinarie nel risolvere l'altezza del tono, quindi anche quando ci avviciniamo a un nuovo tono di 1/128 alla volta, non suona fluido e organico.

Per ottenere una risoluzione più precisa, i messaggi "pitch bend" utilizzano due byte di dati per trasmettere un unico valore di grandi dimensioni. Fondamentalmente, se metti insieme sette bit di un messaggio e sette bit di un altro, puoi assemblare un singolo valore di 14 bit, aumentando la tua risoluzione di un fattore di 2⁷, o 128.

Ora, invece di 128 valori possibili per il nostro pitch bend, abbiamo un enorme 16.384 - passaggi più che sufficienti per creare un effetto di pitch bend uniforme. La metà destra è fornita dal primo byte di dati (il byte meno significativo o LSB) e la metà sinistra è fornita dal secondo (il byte più significativo o MSB).

Considerazioni:

  • La forza del pitch bend (quanti semitoni verso l'alto o verso il basso rappresenta un pitch bend al massimo) varia da strumento a strumento. Spesso è configurabile.
  • Il pitch bend è "centrato" su 8192 (dove non c'è cambio di tono).
  • I pitch bend influenzano tutte le note suonate su un canale, proprio come fanno i CC.
  • La programmazione con MSB e LSB viene eseguita al meglio con operatori bit a bit. Non li esaminerò qui, ma ho fornito alcune risorse nell'Appendice V se vuoi saperne di più.

Alcuni controller MIDI, come l' Akai MPK225 , dispongono di qualcosa chiamato aftertouch . I controller aftertouch sono sensibili non solo alla velocità di ogni tasto premuto, ma anche continuamente sensibili alla pressione con cui vengono premuti i tasti.

Aftertouch è disponibile in due varietà: aftertouch di canale e aftertouch polifonico . L'aftertouch del canale, noto anche come pressione mono , misura la pressione su tutta la tastiera, mentre l'aftertouch polifonico misura la pressione in modo indipendente per ogni tasto. A causa del minor costo dell'hardware, l'aftertouch di canale è il più comune dei due. I messaggi di pressione del canale utilizzano solo un byte di dati, che rappresenta il livello di pressione complessivo. I messaggi di pressione dei tasti polifonici ne usano due: il primo riporta l'altezza (utilizzando i numeri di altezza standard) e il secondo riporta la sua pressione.

Considerazioni:

  • L'aftertouch polifonico è l'unico controllo che può essere impostato indipendentemente per ogni intonazione. Ogni altro controllo (a parte note on o off) influenza l'intero canale.
  • Un'estensione del MIDI, chiamata "MIDI Polyphonic Expression" (MPE), è progettata per consentire l'applicazione polifonica anche di CC e pitch bend. MPE non è molto comune, ma è stato reso popolare da dispositivi come ROLI Seaboard . Ho fornito collegamenti a risorse che lo trattano nell'Appendice V .

Se non utilizzi molto hardware MIDI esterno, probabilmente non utilizzerai questo tipo di messaggio troppo spesso. Un messaggio di "cambio programma" ordina a un dispositivo di caricare un nuovo programma (una nuova patch o preset). Utilizza solo un byte di dati, che specifica l'indice della patch.

Questo tipo di messaggio è molto utile quando si compone con dispositivi MIDI esterni. Finché il tuo hardware supporta i preset, il tuo progetto o sessione può gestirli selezionandoli e caricandoli: basta mettere in sequenza i messaggi appropriati di "cambio programma" all'inizio.

Considerazioni:

  • Gli strumenti con più di 128 preset generalmente memorizzano le proprie patch su più banchi . Per richiamare i programmi memorizzati in altri banchi, i CC 0 e 32 vengono riproposti in messaggi di "selezione banco". Nell'Appendice IV , spiego come funziona.
  • Con una programmazione intelligente dei messaggi di cambio programma, è possibile che un singolo dispositivo utilizzi più di 16 patch diverse in un unico pezzo, purché non vengano riprodotte contemporaneamente. Anche se per essere reali, dovresti probabilmente suddividere le cose in acquisizioni separate se hai bisogno di mungere così tante voci da un singolo dispositivo.
  • Cubase e Nuendo offrono supporto nativo per i messaggi di cambio programma nell'ispettore traccia MIDI. Non sono sicuro di quante altre DAW lo supportino.

I messaggi di sistema sono un argomento avanzato che non tratterò qui. Meritano davvero un articolo tutto loro. Sono usati per ogni genere di cose; giganteschi trasferimenti di dati (chiamati " dump "), sincronizzazione di clock, trasmissione di timecode e altro ancora.

In futuro potrei scrivere una guida ai messaggi di sistema, ma per ora non preoccuparti. Basta essere consapevoli del fatto che esistono e non sono generalmente utilizzati nella composizione MIDI.

4. Informazioni sull'esadecimale

Prima di andare avanti, dovremmo parlare di tutti quegli 0x che ho usato nella sezione precedente. Il prefisso 0x ti dice che un numero è in formato esadecimale.⁵ Mentre ti immergi nei tuoi strumenti MIDI avanzati e nei manuali dei dispositivi, noterai che i messaggi MIDI sono quasi sempre rappresentati in esadecimale invece che in binario o in base dieci. All'inizio potrebbe sembrare controintuitivo - voglio dire, se hai intenzione di convertire un numero binario, perché non convertirlo semplicemente in base dieci leggibile dall'uomo?

La risposta è che è solo più pratico. Anche se penso che il binario sia il modo migliore per iniziare a imparare il MIDI, è piuttosto ingombrante con cui lavorare. Distribuire ogni byte su otto cifre rende la lettura e la scrittura un lavoro ingrato, e poiché tutto in binario è solo uno e zero, è facile perdere il posto durante la lettura di lunghe sequenze.

Capovolgere un bit in un numero binario può influire solo su una cifra della sua rappresentazione esadecimale.

Quindi, i programmatori bit per bit di solito lavorano in esadecimale. Riduce ogni byte a sole due cifre e poiché 16 è una potenza di 2, ogni bit modificato influisce solo su una cifra in esadecimale. Ciò consente di pensare a ciascuna cifra esadecimale come al proprio numero a quattro bit. Se volessi lavorare bit per bit su una rappresentazione decimale, dovresti convertire l'intero byte in binario e viceversa.

Ci sono solo alcune cose da tenere a mente quando si lavora con il MIDI in esadecimale.

  • A causa del modo in cui i bit sono raggruppati in esadecimale, è possibile stabilire a quale canale MIDI è indirizzato un byte di stato osservando nient'altro che la cifra esadecimale di destra.
  • Se la cifra a sinistra di un byte è 0x7o meno, sai che è un byte di dati e, allo stesso modo, sai che un byte che inizia con 0x8o maggiore è un byte di stato.
  • Il valore massimo del byte di dati, 127, è 0x7F in formato esadecimale.

5. Esempio applicato: la quinta sinfonia di Beethoven

L'ultima volta che abbiamo interrotto questo esempio, avevamo appena scomposto il binario grezzo in messaggi discreti. Sembrava così:

Per semplificare la discussione, convertiamolo in esadecimale. Lascerò i byte di stato in rosso e i byte di dati in blu.

Sapendo ciò che sappiamo ora, riconosciamo che gli 0x9 e gli 0x8 che precedono i byte di stato identificano i messaggi rispettivamente come "note on" e "note off". La cifra destra del byte ci dice che stanno prendendo di mira il canale MIDI 1.⁶

Ecco come appare la performance con i byte di stato tradotti.

Nei tipi di messaggio "note on" e "note off", il primo byte di dati codifica un tono e il secondo codifica una velocità. Il valore della velocità è solo un numero. Per capire l'intonazione, dobbiamo fare riferimento a una tabella di note MIDI . E ricorda, le velocità "note off" non sono utilizzate.

Finiamo la traduzione:

Questo è tutto! Quelle sono le istruzioni MIDI tradotte che codificano le prime quattro note della Quinta di Beethoven. Dum dum dum dum!

Sapendo ciò che sai ora, puoi creare e decodificare manualmente i messaggi MIDI comuni. Strumenti più avanzati, come i trasformatori MIDI e gli editor logici, sono ora a tua disposizione. Tuttavia, c'è sempre altro da imparare. Se sei un ghiottone di conoscenza, ho fornito alcune risorse che puoi utilizzare per studiare ulteriormente il MIDI nell'Appendice V .

6. Lezione bonus: stato di corsa

C'è una comoda scorciatoia offerta dal MIDI che non ho menzionato fino ad ora per mantenere le cose semplici. Ecco come funziona: una volta inviato un byte di stato, non è necessario inviarne un altro finché non sarà diverso dall'ultimo. L'ultimo byte di stato ricevuto rimane in qualche modo "attivo" e viene utilizzato per interpretare tutti i byte di dati successivi. Questo è indicato come Running Status .

Considera la seguente stringa di byte:

Quello che stai guardando è la stessa identica esecuzione della Quinta di Beethoven che abbiamo tradotto nell'esempio applicato, ma con quasi tutti i byte di stato mancanti. Tuttavia, a causa dello stato di esecuzione, questa prestazione è valida quanto la prima. Una volta che inviamo il byte di stato 0x90, diventa Running Status, e ogni coppia di byte che segue può essere trattata come se fosse preceduta dal proprio “ 0x90”.

Questo ci consente di eliminare molti byte di stato ripetuti, che possono accorciare drasticamente i nostri flussi MIDI. Ai tempi in cui i computer erano più lenti e le velocità di trasmissione erano più restrittive, questo era incredibilmente utile. Oggi, tuttavia, i computer sono così veloci che l'utilizzo di Running Status non apporta un notevole miglioramento delle prestazioni. Ne parlo ancora, tuttavia, perché se ti ritrovi a fare qualsiasi programmazione MIDI, dovresti essere pronto a vedere i byte di stato omessi qua e là.

Si noti che poiché i "note on" a velocità zero contano come "note off", possiamo iniziare e terminare le note senza interrompere lo stato di esecuzione; almeno fino a quando non avremo bisogno di inviare un control change o un messaggio a un canale diverso.

  1. Questo viene fatto con un'estensione al MIDI chiamata MIDI Show Control.
  2. "Quello che vedi è quello che ottieni".
  3. I numeri di canale MIDI iniziano con 1, mentre la loro rappresentazione qui inizia con 0. Un valore di 0 significa Canale 1, e un valore di 15 significa Canale 16.
  4. La velocità può essere pensata come quanto "forte" viene suonata una nota.
  5. Un'altra notazione comune è seguire il numero con una lettera maiuscola "H", come in "78H".
  6. Ricorda, anche se il numero nel messaggio è uno zero, corrisponde al canale 1 perché iniziamo a contare i numeri da 0 e i canali da 1.

Appendice I: messaggi in modalità canale

I messaggi “Channel mode” sono comandi speciali che alterano il comportamento di un intero dispositivo modificandone la modalità MIDI . Beh, più o meno.

In pratica, i messaggi di "modalità canale" vengono utilizzati solo per attivare o disattivare determinate funzionalità e inviare determinati comandi. Ciò che il MIDI enumera come "modalità" sono essenzialmente solo diverse configurazioni dei commutatori Omni e Poly. Ad essere onesti, non credo che le "modalità" siano un modo molto appropriato per pensare a questi comandi; ma spiegherò almeno cosa fanno i comandi.

I messaggi in modalità canale non hanno un proprio tipo di messaggio. Invece, quelli che sarebbero stati gli ultimi otto numeri di controller continui (CC 120–127) vengono riproposti. I messaggi della modalità canale sono i seguenti:

Affinché un dispositivo risponda ai messaggi in modalità canale, deve riceverli sul suo canale di base . Il canale di base di un dispositivo è l'unico canale MIDI su cui i messaggi in modalità canale sono considerati validi. Per molti dispositivi, questo canale è configurabile. In questo modo, i messaggi in modalità canale possono indirizzare dispositivi specifici all'interno di un collegamento a margherita.

Quello che segue è un breve riassunto di ciascun messaggio di modalità canale. L'Appendice V contiene risorse per ulteriori studi.

  • All Sound Off ("CC" 120): interrompe tutti i suoni che lo strumento sta attualmente producendo, incluso il decadimento delle note e gli effetti di riverbero.
  • Reset All Controllers (“CC” 121): imposta tutti i CC, gli switch controller, gli effetti pitch bend e aftertouch sui valori predefiniti. Il valore a cui ogni controller ritorna dipende dal controller ed è definito nelle specifiche MIDI.
  • Local Control (“CC” 122): scollega la tastiera su un sintetizzatore dal suo generatore di suoni. Ciò ti consente di utilizzare un sintetizzatore come controller MIDI mentre allo stesso tempo esegui il sequencing per esso. Impostare su 0x00per disattivare il controllo locale e 0x7Friattivarlo.
  • All Notes Off ("CC" 123): il "pulsante antipanico". All Notes Off equivale all'invio di messaggi "note off" per ogni tono su ogni canale. È utile per risolvere le note bloccate. Le note attivate localmente non sono interessate.
  • Omni Mode Off/On (“CC's” 124, 125): quando la modalità Omni è attiva, ogni canale risponderà a ogni messaggio in entrata, indipendentemente dal canale indicato nel byte di stato.
  • Mono Mode / Poly Mode (“CC's” 126, 127): forza una o più voci a un comportamento monofonico o polifonico. Se il valore "mono mode on" è impostato su 0x00, il canale di base e tutti i canali sopra di esso verranno impostati sulla modalità mono. Per qualsiasi altro valore n , i canali da n a n+m-1 verranno impostati in modalità mono (dove m è il valore del secondo byte di dati). Un messaggio "poly mode on" ripristinerà tutti i canali in modalità poly.

Appendice III: Incarichi CC standard

La specifica MIDI definisce gli usi standardizzati dei CC, che ho copiato qui. Tutti i numeri CC sono definiti, ad eccezione di: 3, 9, 14, 15, 20–31, 85–90 e 102–119 . I CC più ampiamente supportati sono Modulation ( 0x01), Foot Controller ( 0x04), Channel Volume ( 0x07), Pan ( 0x0A), Expression ( 0x0B) e Sustain ( 0x40).

Controlla le risorse nell'Appendice V se vuoi saperne di più su questi CC.

Appendice IV: Messaggi di cambio banco

I sintetizzatori moderni possono memorizzare e richiamare molti, molti più preset di quelli che possono essere indirizzati da un singolo messaggio di cambio programma. Per aggirare questo problema, i produttori spesso ordinano i loro programmi in banche . Ogni banco ha un massimo di 128 preset e un indirizzo univoco a 7 o 14 bit.

Per richiamare una patch da un banco diverso, devi prima inviare un messaggio "bank select" con il suo indirizzo. Successivamente, inviate un messaggio di cambio programma come al solito e la patch caricata proverrà dal nuovo banco.

Come avrai notato, questi sono in realtà messaggi di "cambio di controllo" per CC 0 e 32 . Per gli indirizzi a 7 bit viene utilizzato solo CC 0 . Per gli indirizzi a 14 bit, CC 0 rappresenta un MSB e 32 un LSB. Se hai bisogno di un primer su MSB e LSB, ce n'è uno nella sezione Pitch Bend dell'articolo principale.

Il fatto che un dispositivo utilizzi indirizzi a 7 o 14 bit è in qualche modo arbitrario e dovrai controllare il manuale per sapere quale utilizzare quando comunichi con il tuo dispositivo.

Appendice V: risorse aggiuntive

  • L'Associazione MIDI : L'Associazione MIDI è il principale archivio di informazioni su o relative alla tecnologia MIDI. La registrazione è gratuita e, una volta eseguita, puoi scaricare The Complete MIDI 1.0 Detailed Specification qui .
  • Bitwise Operation (Wikipedia) : lo so, lo so, Wikipedia non è una buona risorsa primaria, ma mi piace questo articolo perché è indipendente dalla lingua e non ha pubblicità. Studia gli spostamenti di bit aritmetici e l'OR bit per bit, che sono utili quando si lavora con MSB e LSB.
  • Che cos'è MPE? : Un articolo nel database di supporto di ROLI che esamina l'espressione polifonica MIDI, utilizzata nei controller multidimensionali come i prodotti Seaboard. MPE è stato formalmente adottato dalla MIDI Manufacturer's Association nel gennaio 2018 e un link per il download delle specifiche è disponibile qui .
  • Modalità MIDI (Electronic Music Interactive v2, University of Oregon): questa pagina offre una buona e concisa panoramica delle quattro modalità MIDI standard. Fa parte di un corso online più lungo sulla musica elettronica.
  • MIDI CC List (Nick Fever) : un elenco di CC standard con spiegazioni più elaborate. Se hai ancora bisogno di ulteriori informazioni dopo aver esaminato l'elenco di Nick, fai riferimento a The Complete MIDI 1.0 Detailed Specification, che puoi scaricare qui .
  • Messaggi comuni del sistema MIDI , messaggi in tempo reale del sistema MIDI e messaggio esclusivo del sistema MIDI (RecordingBlogs Wiki): eccellenti introduzioni a ogni tipo di messaggio di sistema.
  • Numero di parametro registrato MIDI (RecordingBlogs Wiki): una panoramica dei numeri di parametro registrati, che può essere considerata un'estensione dei CC. Una volta compresi gli RPN, saranno accessibili anche gli NRPN (numeri di parametro non registrati).