Viaggio nel pianeta MIDI – puntata 9

Negli anni ’80, quando i sequencer MIDI avevano comunque un numero limitato di tracce, per risparmiare era abitudine avere sulla stessa traccia MIDI più parti eseguite anche con suoni diversi. Questa modalità era possibile a patto che fosse automatizzabile il cambio di suono sullo stesso sintetizzatore collegato a quella traccia tramite un messaggio specifico: il Program Change. Questo messaggio quindi viene utilizzato sia per cambiare il timbro da utilizzare per la sequenza MIDI ma anche per impostarlo all’inizio della sequenza stessa in modo tale da evitare di farlo manualmente ogni volta che si accendevano sia il sequencer che il sintetizzatore. Non ha il secondo data byte.

Ad ogni suono presente in un banco (una lista interna al sintetizzatore con la quale sono organizzati e richiamabili i suoi suoni) veniva quindi associato uno tra i numeri compresi nell’intervallo 0-127 oppure 1-128 (dato che il program change ha un solo data byte). I sintetizzatori quindi organizzavano i loro suoni in modo tale da essere facilmente richiamabili tramite il messaggio di program change; ad esempio lo Yamaha DX7 aveva due banchi (A, B) di 64 suoni ciascuno, il Kaway K5 era invece organizzato con quattro banchi (A, B, C, D) di 32 suoni ciascuno. Con l’arrivo poi del General MIDI venne creato un banco universale (condiviso da tutte le aziende che producevano sintetizzatori, tastiere workstation) che poneva uno strumento specifico allo stesso numero di program change a prescindere se il banco apparteneva ad un modulo sonoro della Roland o della Korg. Ecco cosi che ad esempio al numero 0 (primo numero disponibile) era sempre collocato il pianoforte acustico. In questo modo l’utenza aveva la possibilità, acquistando delle basi musicali MIDI, di mandarle in riproduzione ascoltando sempre i suoni correttamente perchè all’inizio delle varie sequenze MIDI dedicate ai vari strumenti (pianoforte, basso, chitarra, batteria, ecc. ecc.) era presente un messaggio di program change che richiamava il numero di posizione dello strumento all’interno del banco general MIDI.

Con l’evoluzione della tecnologia e la comparsa dei virtual instrument il messaggio di program change ha trovato un utilizzo sempre più raro in quanto oggi l’utente non ha più problemi nel gestire tracce MIDI molto numerose e spesso si preferisce aprire più istanze dello stesso virtual instrument piuttosto che cambiare i suoni al suo interno. Tuttavia diversi virtual offrono ancora banchi suoni general MIDI (per continuare ad utilizzare la varie basi MIDI senza dover riprogrammare tutta l’assegnazione di strumenti e canali) mentre diversi campionatori virtuali, tra cui Kontakt, consente all’utente di programmare i campioni dei propri suoni in banchi di 128 suoni organizzati per essere gestiti dal program change. Nel caso il nostro sistema di produzione avesse anche dei sintetizzatori o dei campionatori hardware collegati al sequencer, il program change, combinato assieme a messaggi di bank select (trattasi di un messaggio di Control Change, argomento del prossimo articolo), rimane di fondamentale importanza per impostare i suoni da utilizzare nelle varie parti MIDI assegnate a loro.

Vediamo come manipolare i messaggi di Program Change facendo un esempio pratico.

Supponiamo di avere un sistema di produzione costituito da due sintetizzatori hardware (ipotizziamo un Kaway k5 e uno Yamaha DX7), il sequencer Cubase all’interno del quale utilizziamo il banco general MIDI del synth virtuale Halion Sonic SE ed un banco personalizzato in Kontakt 5. Durante la programmazione musicale abbiamo necessita di cambiare suoni su tutti gli strumenti (virtuali ed hardware).

La prima cosa che si realizza è quella di creare delle traccie MIDI ed assegnarle ai vari strumenti. Supponiamo che il K5 e il DX7 sono collegati tra loro in cascata attraverso la porta MIDI Thru e che il primo risponde a messaggi che hanno il canale MIDI 1 mentre il secondo a messaggi di canale MIDI 2. Peranto le due tracce MIDI associate ai due strumenti devono utilizzare la porta MIDI OUT di uscita ed essere assegnate ai canali MIDI 1 (per il Kaway) e 2 (per la Yamaha).

Supponiamo ancora di utilizzare inizialmente il suono 25 del banco C del Kaway (ricordiamo che ognuno dei 4 banchi possiede 32 suoni numerati da 1 a 32) e il suono 16 del banco B dello Yamaha. Per conoscere quale n° di program change corrisponde al suono dei Kaway devo fare un piccolo calcolo: banco A+ banco B+ posizione suono nel banco C, ovvero 32+32+25 che è pari a 89. Poichè il program change è organizzato da 0 a 127 mentre i suoni dei vari banchi da 1 a 128 il suono 89 in realtà è assegnato al numero di program change 88 (dato che il suono 1 è assegnato al numero 0).

Sulla traccia del Kaway si realizza una piccola parte MIDI della lunghezza di una misura, collocata sulla prima misura, al cui interno si scrive un messaggio di program change (utilizzando ad esempio l’editor MIDI List) con il valore pari a 88. Questa parte MIDI quindi serve semplicemente ad impostare il suono del Kaway ogni volta che la riproduzione del brano deve iniziare da capo.

La stessa cosa va fatta per il DX7. Il suono 16 del banco B corrisponde al numero 64+16=80 (dato che è contenuto nel banco B) che è assegnato al numero 79 (per lo stesso discorso fatto per il Kaway).

Ovviamente tutto il brano musicale potrà iniziare dalla misura 2. E’ sempre bene lasciare uno spazio vuoto tra il program change e le note successive in quanto il cambio o l’impostazione del suono può richiedere alcuni istanti prima che sia operativo sulla macchina. Purtroppo quando ciò non è possibile bisogna attuare altre strategie quali ad esempio utilizzare timbri analoghi presenti su altri synth (virtuali o hardware).

Il fatto di scrivere i program change all’inizio dei brani, su piccolissime parti MIDI dedicate pone anche un altro vantaggio: se non lo facessimo, ogni volta che spengiamo i synth e il computer e poi li riaccendiamo per riutilizzare lo stesso progetto, saremmo costretti ad impostare manualmente il suono iniziale su entrambi i synth prima di iniziare a lavorare mentre avendo scritto i program change basterà mandare in playback la prima misura per impostare automaticamente i suoni sui due synth.

Nello scrivere la parte del K5, supponiamo che a misura 20 si debba cambiare suono passando al numero 3 del banco B (corrispondente al numero di program change 32+3-1 = 34). Tra la fine delle note assegnate al precedente suono e l’inizio di quelle dedicate al nuovo suono si inserisce il messaggio. Occorre fare molta attenzione: se il suono precedente ha un release piuttosto rapido (un suono di tipo bass o percussivo) si può collocare il messaggio di program change praticamente subito dopo il messaggio di nota off dell’ultima nota suonata, ma se il release è invece lungo (ad esempio un suono di tipo pad) bisogna tenere conto della fine effettiva del suono perchè il messaggio di program change collocato all’interno del release può interrompere di brusco l’emissione sonora per passare al suono successivo.

Per quanto riguarda i virtual instrument, la procedura è identica, quello che cambia è il ritardo tra il messaggio e l’effettivo cambio. Notoriamente i virtual reagiscono più velocemente ma se sono installati su HD esterni, in caso di inattività da parte dell’HD stesso, potrebbe trascorrere tempo nel momento in cui si attiva il controller e il disco si mette in moto per cui bisogna prestare attenzione perchè il virtual potrebbe essere inattivo per qualche tempo (anche qualche secondo).

Nel caso avessi una parte lunga dove è settato un suono e una alttrettanto consecutiva dove è settato un altro suono, se volessi ascoltare una parte da una posizione intermedia, come potrei dire al software che quelle note devono essere eseguite dal suono giusto? Agli arbori del MIDI avrei dovuto riportare tutto indietro e far leggere di nuovo il program change per poi spostarsi nel punto desiderato. Questo problema è stato risolto con la funzione MIDI chase che tiene memoria dell’applicazione e durata di alcuni messaggi MIDI consentendo quindi di poter ascoltare il playback da qualunque posizione senza dover tornare nei punti iniziali per leggere tali messaggi.

Nelle immagini seguenti possiamo vedere come spostando il cursore manualmente in aree sulle quali sono presenti valori diversi di program change il virtual instrument cambia automaticamente il valore grazie alla funzione chase.

Puntata 10

L’inizio di questo viaggio

Annunci

Informazioni su silviorelandini

sound designer, docente di tecnologie musicali, direttore iitm
Questa voce è stata pubblicata in MIDI processing & editing, protocollo MIDI e contrassegnata con . Contrassegna il permalink.

Una risposta a Viaggio nel pianeta MIDI – puntata 9

  1. Pingback: Viaggio nel pianeta MIDI – puntata 8 | tecnologiamusicale

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...