Quando ci proponiamo di costruire un linguaggio di rappresentazione per la musica dobbiamo chiederci quali informazioni rappresentare. Passaggio che si basa su un'operazione di selezione: la scelta del tipo di informazione rappresentare nel linguaggio implica anche la scelta di ciò che non deve essere rappresentato.
Determinato un codice di rappresentazione per l'informazione musicale è possibile la sua trasmissione e la sua trasformazione: questa è un'operazione può essere svolta da applicazioni informatiche.
La rappresentazione della musica poiché dipende dalle necessità di trasmissione e riproduzione può avvenire a livelli diversi.
La rappresentazione in termini fisici del segnale è inefficace come notazione operativa per l'uso strumentale. Ogni rappresentazione della musica deve situarsi al livello adatto allo scopo prefisso.
Livelli di rappresentazione:
- livello fisico: parametri per la rappresentazione sono quelli della descrizione fisica del segnale(ampiezza, frequenza, forma d'onda).
- livello percettivo: descrizione psicoacustiche(volume, altezza, timbro).
- livello operativo: musica rappresentata nei termini di istruzioni esecutive(gesti esecutore, strumenti musicali).
- livello simbolico: esempio tipico è la notazione occidentale strandard.
- livello strutturale: rappresentazione che rende conto delle relazioni logiche che presiedono alla produzione/comprensione della musica(insieme di regole di una grammatica).
Possiamo descrivere le relazioni tra i diversi livelli attraverso uno schema che ha come due estremi la conoscenza fisica e la conoscenza musicale.
Ognuno dei 5 elementi : (Ambiente, ascoltatore, compositore, esecutore, strumento) si situano in relazione a due livelli.
Ascoltatore muove dal campo sonoro(livello percettivo) per costruire un modello musicale cognitivo di quanto ascoltato(livello strutturale).
Le competenze strutturali del compositore necessitano della mediazione della notazione(livello simbolico) per essere trasmesse all'esecutore.
Esecutore traduce la notazione in un insieme di controlli gestuali che governano l'esecuzione strumentale(livello operativo).
Attraverso lo strumento , le operazioni gestuali si trasformano in pressione sonora(livello fisico), che costituisce il correlato acustico del campo fenomenico dell'ascoltatore(livello percettivo).
Rappresentazione audio: situa tra il livello operativo e quello fisico.
Rapprentazione musica: interessa il rapporto tra compositore, esecutore e strumento.(livelli: simbolico, operativo).
Midi
Midi è il protocollo standard che permette a un sequencer di comunicare con gli altri dispositivi che controlla.
Con protocollo midi si intende il modo di rappresentazione della musica che ha raggiunto una diffusione commerciale universale.
Con Midi si indica , oltre al protocollo anche l'interfaccia, l'hardware necessario per la comunicazione tra dispositivi.
Un protocollo è un sistema di regole che stabilisce attraverso quali modalità deve avvenire la comunicazione tra i dispositivi hardware o processi software differenti.
Alla base del protocollo ce la necessità di far comunicare sintetizzatori musicali di case produttrici diverse: i problemi che deve risolvere il protocollo sono quelli della rappresentazione dei dati musicali e della sincronizzazione tra i dispositivi durante la comunicazione.
Il midi si situa tra il livello simbolico e quello operativo: attraverso il protocollo è possibile rappresentare come dati elettronici una performance musicale.
L'informazione codificata dal protocollo consiste in un'insieme di istruzioni per un sintetizzatore, il quale, sulla base dei dati ricevuti, si occupa della sintesi audio.
Il dispositivo di input dei dati musicali e quello di output del segnale possono comunicare attraverso la codifica MIDI.
Se i dati midi vengono memorizzati possono poi essere modificati in un secondo momento attraverso procedure di editing più o meno complesse, per poi essere inviati al modulo di sintesi.
Sequencer: sistema di registrazione - esecuzione ,dotato di una memoria programmabile dove vengono memorizzati i dati di controllo operativi necessari alla (ri-)generazione di eventi musicali.
Sequencer memorizza i dati provenienti da un dispositivo di input , ne consente l'editing, infine ricrea la performance inviando i dati al dispositivo che si occupa della sintesi.
Midi è un protocollo strandard tramite il quale i sequencer in commercio memorizzano i dati.
Il controllo su suono è soltanto indiretto, la qualità timbrica dipende interamente dal modulo di sintesi.
Nascita del midi
Anni 80 la necessità di uno standard per la comunicazione tra diversi sintetizzatori, i primi erano monofonici e avevano una povera tavolazza timbrica.
La connessione di più sintetizzatori in sistema costituiva un modo per arricchire le possibilità di sintesi.
Standard che avrebbe dovuto risolvere tre tipi di problema:
- la rappresentazione dei dati musicali(la definizione univoca di altezza e volume delle note);
- la sincronizzazione tra i dispositivi e la modalità di trasmissione dati;
- la progettazione e la costruzione di dispositivi fisici.
Successo:
Basso costo, esigenza di avere uno standard, possibilità di comunicare tra marche, comunicazione tra strumenti e altri dispositivi elettronici (computer, sequencer, controllo luci, mixer).
Lo standard MIDI stabilisce anche quali connessioni fisiche debbono essere impiegate nel collegamento.
Il trasferimento dei dati avviene alla velocità di 31.250 bit/sec;
attraverso un'interfaccia seriale asincrona, seriale perché i dati sono trasferiti come sequenza di bit successivi e asincrona perché l'invio dei dati dipende dal momento in cui il dispositivo inizia a trasmettere.
IL trasferimento è seriale quindi bisogna impiegare convertitori da parallelo a seriale.
Connettori impiegati sono di tipo DIN a 5 pin, tipici degli impianti audio, di cui solo 3 vengono impiegati per le informazioni numeriche del MIDI.
Porte fisiche del MIDI(connettori):
MIDI in: riceve segnali dall'esterno;
MIDI out: trasmette info MIDI all'esterno;
MIDI Thru: trasmette copia esatta di MIDI in;
Lunghezza max dei cavi: 15 metri(50 piedi)
Per trasmettere un byte(8+2 bit): ogni pacchetto impiega 0,32 millisecondi.
Editor(sequenze): brani musicali come sequenze di eventi complessi.
Expander: generatori di suono(sintetizzatori, campionatori…).
Controller: generatori di messaggi MIDI (tastiere, Midi-sax, drum-pads..).
Numero dei dispositivi deve limitarsi a tre.
Si può usare una Trhu box(scatola di derivazione): moltiplica il segnalein entrata e lo trasmette attraverso più porte MIDI trhu.
Patch Bay svolge le stesse funzioni di una thru box ma consente di effettuarela selezione tra più configurazioni ingresso/uscita.
Midi processor puà svolgere tutte le funzioni.
Due configurazioni tipiche --> pag. 250.
Protocollo di comunicazione
La comunicazione avviene attraverso messaggi MIDI, messaggi che non rappresentano la forma d'onda ma solo informazioni di controllo.
Canali
Strade per la comunicazione per veicolare i messaggi agli espander. Sono indirizzi dove ricevere e inviare dati musicali. Distribuire i messaggi per canale è un metodo per differenziare i timbri, a ogni canale è possibile associare uno strumento. Il MIDI prevede 16 canali.
Tracce
E un flusso strutturato e autonomo di messaggi MIDI, distinto da altre tracce. 2 pianoforti: 2 tracce; 1 Pianoforte: 1 traccia melodia, 2 traccia accompagnamento.
Traccia è solo un contenitore di messaggi MIDI in sequenza, da un punto di vista pratico possiamo assegnare a ogni traccia un canale.
L'informazione è strutturata logicamente in tracce, alle quali vengono assegnati dei canali. + tracce a un canale. Ai canali si assegna poi la patch.
Patch
Il termini usuale per indicare il timbro prodotto da un generatore è patch. Messaggi midi possono veicolare informazioni relative a un massimo di 128 patch: 128 timbri selezionabili.
Un banco contiene 128 patch, n banchi --> n 128 patch. Definito il banco scegliamo tra 128 patch che lo compongono.
L'impiego di 2 canali ci permette di modificare l'assegnazione di una patch di un canale senza modificare l'altro.
Cosa succede quando suoniamo una nota?
L'esecuzione della nota viene codificata attraverso una serie di messaggi MIDI.
La pressione sul tasto è rappresentata da due distinti messaggi: Note ON e OFF. Indicano che il tasto è stato premuto o rilasciato.
Sono caratterizzati da una velocity che che fa riferimento alla velocità con cui il tasto di una tastiera si abbassa o si rialza.
Temporizzione
I messaggi MIDI non devono soltanto essere posti in sequenza è necessario anche fornire l'informazione temporale(timestamp) che consenta a un sequencer di conoscere il momento esatto in cui deve reagire.
Ogni dispositivo Midi è dotato di un clock, un dispositivo interno di sincronizzazione, sulla base del quale ordina nel tempo i messaggi.
Le unità di misura(timebase) impiegate dal clock sono i tiks o PPQ(parti per quarto), unità di misura relativa poiché dipende dal valore assunto dal quarto(semiminima).
Il numero dei quarti in un minuto è indicato come BPM(pulsazioni per minuto), tipicamente compreso tra 40 e 240.
Numero di tick in un quarto può essere variabile, multiplo e potenza di 2: da 24 a 4096.
Valori tipici: 24,96, 480.
Per calcolare il numero dei tick dobbiamo sapere il tempo del metronomo e il numero di tick per quarto.
Esempio:
1 tick - BPM = 120 - PPQ = 24
120 beat in un minute: 1 beat = 0,5 (60/120)
24 PPQ in un secondo(beat): 1 tick = 0,5/24 = 0,020833(1 tick dura 21 millisecondi)
Sincronizzazione
quando si impiegano più dispositivi collegati insieme è necessario prevedere una sincronizzazione tra di essi.
La sincronizzazione è gestita nei dispositivi MIDI in due modi: MIDI clock e MIDI time code(TMC).
MIDI clock
supponiamo di avere un collegamento tra 2 sintetizzatori.
Il master controlla quello slave. Master tiene il tempo con il suo clock(internal sync) inviando allo slave un messaggio di sincronizzazione ogni 24 di quarto. Lo slave farà riferimento al messaggio di clock del master(external sync).
Il master timing (sincronizzazione via Midi Clock) fa riferimento a un tempo relativo: il numero dei quarti è variabile.(tasso fisso di 24 per quarto).
BPM = 40 il master invierà allo slave 16 messaggi di sincronizzazione al secondo.
ogni beat 60s/40 beat = 1,5 secondi = 24 messaggi
1 secondo = 16 messaggi (24:1 = x : 1,5 --> x = 24/1,5)
BPM = 240 --> 96 messggi
1 beat : 60/240 = 0,25 secondi(24:1 = x:0,25--> x = 24/0,25)
IL MIDI time code(MTC)
è invece il metodo di sincronizzazione per coordinare i dispositivi con le produzioni di film e video.
Metodo standard di codifica del tempo nell'audio e video è SMPTE, tempo codificato in forma assoluta(ore, minuti, secondi).
Il codice SMTPE viene inviato insieme con i segnali audio e video.
MTC è la traduzione in forma di messaggi MIDI dello SMPTE: sono necessari 8 messaggi di 2 byte per realizzare la codifica completa di una locazione temporale SMPTE in MIDI.
Si specifica anche lo standard SMPTE che si sta impiegando, il numero dei frame per secondo è variabile(24,25,30).
Durante l'esecuzione di un prodotto video, si estrae la locazione temporale codificata in SMPTE e un MTC gererator provvede alla generazione dei messaggi MIDI equivalenti, quattro volte per ogni frame: i messaggi attivano gli effetti audio e le sequenze musicali.
I Modi
I dispositivi MIDI interpretano le informazioni relative ai canali sulla base di specifiche configurazioni, dette modi.(criteri con cui un device decide di accettare un messaggio).
Son 4 più uno:
I primi quattro si ottengono dalla combinazione delle categorie Omni On/Off - Poly/Mono; a essi si puà aggiungere Il General MIDI Mode.
Omni: riguarda la risposta del dispositivo alle info di canale;
On: dispositivo Midi riceve e reagisce alle info provenienti da tutti i canali.
Off: dispositivo Midi riceve e reagisce ai messaggi provenienti dall'unico canale prescelto.
Poly/Mono: la possibilità di ricevere o meno più messaggi di Note On su un singolo canale.
Mono: Suona una nota singola;
Poly: Suona più note(accordi);
4 Modi:
"Omni" = Omni On + Poly
Slave risponde in polifonia ai messaggi provenienti da tutti i canali.(può essere usato in fase di test).
Omni On + Mono
Slave risponde a tutti i canali in monofonia(scarsa utilità).
"Poly" = Omni Off + Poly
Slave risponde alle info indirizzate a uno specifico canale con il massimo grado di polifonia.
"Multi" = Omni Off + Mono
pensato per strumenti multitimbrici, gestiscono più timbri o patch in contemporanea.
Ogni patch riceve i dati da un singolo canale a cui risponde: slave risponde ai messaggi indirizzati a tutti i canali , ma separando l'info canale per canale.
Messaggi di canale/sistema
Messaggi Midi di distinguono in due tipi: Channel e System Message.
Messaggi di canale: contengono dati relativi a uno specifico canale. Oltre all'info relativa all'evento anche quella relativa al canale a cui questa è indirizzata(il numero del canale). Se nel device ricevente il canale selezionato non è disponibile , non viene generato nessun evento.
Messaggi di sistema: sono indirizzati al sistema nel suo complesso, veicolando info relative al timing, alla sincronizzazione, non contengono info sul canale.
Struttura generale dei messaggi
Messaggi MIDI sono costituiti da sequenze di parole di 10 bit. Il primo è l'ultimo hanno la funzione di delimitare l'inizio e la fine, ogni parola è composta da 8 bit(1 byte).
Un messaggio è composto da una o più parole di 1 byte.
Primo Byte: identifica il tipo di messaggio --> status byte
I byte successivi contengono il messaggio vero e proprio --> data byte
La distinzione tra status e data è effettuata in base al bit più significativo(MSB): il bit più a sinistra di ogni byte.
1 status - 0 data (uno o due).
Classificazione dei messaggi
Lo status byte è suddivisibile in due segmenti di 4 bit (nibble).
Il primo a sinistra specifica il tipo di messaggio. Sono disponibili 3 bit rimanenti, 8 combinazioni possibili: di queste, sette identificano i messaggi di canale, mentre la combinazione 111 indicai messaggi di sistema.
Il Secondo nibble ha una funzione diversa a seconda se si tratti di messaggi di canale o sistema.
Nei messaggi di canale: indica il numero del canale(possiamo mappare 16 canali).
Nei messaggi di sistema: distinguere 16 possibili messaggi di sistema.
Tipologia dei messaggi
Channel Message
la struttura è 1xxx nnnn(status byte) a cui seguono uno o due data byte 0xxxxxxx(128 valori a disposizione).Primo nibble varia tra 1000 e 1110.(codice di identificazione del messaggio).
Secondi 4 bit: identificazione del canale.
Channel Voice Message
Descrivono gli eventi musicali: quale nota deve essere mandata in esecuzione , quale deve essere terminata, con quale volume, con quali modificazioni espressive.Note On
indica al dispositivo di suonare una nota: tasto di una tastiera o pad di una batteria.
Status Byte è 1001 nnnn, cui seguono 2 data bytes
- specifica l'altezza della nota(pitch);
- la velocità: forza con cui si pigia un tasto(ampiezza dell'output, eventualmente timbro).
Sono rappresentabili 128 altezze e 128 valori per la velocity.
Note Off
indica quando disattivare una nota
Status byte è 1000 nnnn, i 2 data byte rappresentano pitch e velocity.
Non è significativo il valore della velocità si può sfruttare una codifica abbreviata che equipara al Note Off un messaggio di Note On con velocità 0. Si risparmia un 33% di traffico sulla rete.
Channel Pressure
Messaggio che trasmette informazioni relative ai cambiamenti di pressione dopo che è stato inviato un Note On (mentre un tasto è premuto).
Il valore di pressione nel data byte è applicato a tutte le note attive. Usualmente si indica con aftertouch.
Modifiche timbriche su tutto il canale, effetti diversi a seconda del dispositivo usato.
Se Sono premuti più tasti contemporaneamente si un unico valore per tutti.
Polyphonic Key Pressure.
E sensibile ai cambiamenti di pressione relativi a ogni singolo tasto della tastiera.
I 2 data bytes indicano: il pitch a cui applicare il valore di pressione e il valore di pressione stesso.
Pitch Bend Change
Messaggio che indica la variazione frequenziale intorno alla frequenza corrispondente al numero di tasto premuto(alla nota attiva). Corrsisponde a un cambiamento di intonazione: vibrato o glissando.
I 2 data byte: velocity e variazione.
Program change
I messaggi inviano al dispositivo ricevente attraverso il data byte successivo un numero intero compreso tra 0 e 126. In un sintetizzatore le patch sono numerate, e attraverso il messaggio si può selezionare il timbro che viene associato al canale.
( di per sé il numero è semplicemente un indice: può indicare un particolare effetto, es. chourus).
Control Change
Controller sono dispositivi che consentono di aumentare l'espressività di un dispositivo MIDI (dai pedali al soffio), può essere un pedale, una ruota, una leva. Ogni qualvolta che questo si muove viene inviato un messaggio costituito da 3 byte.
Allo status seguono 2 data byte:
- identificatore del controller;
- valore del controller;
Due categorie di controllori: controllori che possono assumere valori continui o discreti.
Channel Mode Message
Specificano una delle 4 opzioni possibili in cui può rispondere il dispositivo MIDI, la cui combinazione produce i modi.Questa info è codificata attraverso gli ultimi 4 valori disponibili nel primo data byte.
Dal punto di vista strutturale sono un sottotipo dei Control Change.
System Message
Non sono indirizzati specificatamente a un canale, ma sono rivolti a tutto il sistema: questo può comprendere più unità collegate che ricevono su diversi canali.Ogni singolo dispositivo reagisce ai Channel Message per i quali è abilitato a rispondere, ma a tutti i System Message.
Status Byte è 1111 xxxx. Il secondo nibble può venire utilizzato per distinguere 16 messaggi di sistema.
Attualmente sono definiti 11 messaggi distinti in 3 categorie.
System Common Message
Svolgono funzioni generali relative a tutto il sistema.
MIDI Time Code Quarter Frame
categoria di messaggi impiegata dai dispositivi in grado di trasmettere /ricevere il MIDI time code che codifica il tempo in termini assoluti. Sono necessari 8 messaggi trasmessi ogni quarto di frame per definire univocamente una locazione temporale SMPTE.
Song Position Pointer
Una song è una sequenza di messaggi MIDI memorizzata da un dispositivo MIDI o un Midi File.
Il messaggio indica il punto all'interno della song caricata dove si deve posizionare il puntatore.
La riproduzione o la registrazione successive inizieranno da quel punto.
Status byte: 1111 0001
2 data byte che specificano la posizione contando a partire dall'inizio della song(2alla14 posizioni diverse).
Song Select
Seleziona una di 128 song possibili che un device può avere memorizzate.
Il messaggio cambia la song corrente.
System Real Time Message
Si occupano del funzionamento sincronizzato dei diversi moduli di un sistema in tempo reale. Sono gli unici messaggi che possono bloccare il funzionamento di un altro messaggio e sono gli unici a essere costituiti esclusivamente dallo status byte.
MIDI clock
messaggi che garantiscono la sincronizzazione di più dispositivi in tempo relativo.
E la frequenza dei messaggi, inviati 24 volte ogni quarto, che opera come pulsazione di riferimento.
Il numero dei messaggi è relativo perché dipende dal valore del quarto.
Start/Continue/Stop
Tre messaggi che coordinano il funzionamento di tutti i dispositivi che compongono il sistema midi.
Start: i puntatori di tutti i dispositivi si spostano alla locazione iniziale della song corrente.
Stop: impone a tutti i dispositivi di bloccare l'operazione in corso.
Continue: determina la ripresa dell'operazione interrotta con un messaggio di Stop.
Active Sensing
viene inviato ogni 300 millisecondi, con la funzione di mantenere attiva la connessione tra master e slave. Se allo slave non arriva il messaggio considera il collegamento con il master interrotto e non attende altri messaggi.
System Reset
Messaggio che riporta tutti i dispositivi ai valori predefiniti(quelli impostati dalla casa produttrice per il momento dell'accensione del dispositivo).
System Exclusive Message
Messaggi attraverso i quali i costruttori sono in grado di specificare info relative ai lori prodotti.
Unici messaggi ad essere composti da 2 status byte , posti all'inizio e alla fine della sequenza di byte.
- Lo status byte indica l'inizio di un messaggio SysEx;
- una data byte che indica il codice standard proprio di ogni costruttore(ID byte);
Se il dispositivo riconosce il codice procede nella decodifica dei data byte successivi, significativi per quel particolare costruttore, altrimenti ignora il messaggio.
Chiude la sequenza lo status byte.
Il General MIDI
E uno standard che specifica ulteriormente il protocollo MIDI 1.0. La codifica di ulteriori informazioni consente di aumentare la trasportabilità dei messaggi tra i diversi dispositivi.
Definisce un quinto MODO : General MIDI Mode(GMM), che regola a priori l'associazione canali, patch e timbri. Il GMM definisce dei preset, indipendenti dall'hardware impiegato.
Canale 4: Melodia, 8: Armonia, 10: persuasioni; così un dispositivo che supporta il GM assegna automaticamente ai Channel Voice MEssage provenienti sul canale 10 le patch che producono timbri percussivi.
Il GM assegna a ogni valore di Program Change una patch prestabilita, assicurando un risultato timbricamente più o meno simile su ogni dispositivo.
La classificazione delle patch stabilisce una tipologia timbrica che deve essere più o meno simile a tutti i dispositivi che si adeguano al GM: l'effettivo risultato audio dipende dall'hardware ricevente.
Lo standard GM richiede per i device che lo supportano:
- 24 voci di polifonia;
- 16 canali polifonici e multitimbrici;
- la possibilità di utilizzare 16 timbri diversi contemporaneamente ;
- l'utilizzo come accordatura del la4 a 440 hz --> equivale al picth(nota) 69.
- il 10 riservato alla batteria.
LIMITI GM: numero degli strumenti(128)
Altri Standard
Roland GS
codifica anche l'impiego del Bank Select(aumenta i preset) e altri controlli di effetti audio e parametri timbrici.
Yamaha XG
aumenta i preset e drumkit disponibili e prevede la scalabilità: se il device non è dotato delle possibilità dello standard approssima il più possibile il risultato.
XMidi(eXtended MIDI)
proposta di estensione del protocollo MIDI di Lukac -Kuruc.
Incrementa i canali indirizzabili da 16 a 324;
risoluzione dei valori lineari(volume, velocità) da 128 a 528;
valori non lineari(n. controllori, Program Change) da 128 a 4374.
Tutto ciò utilizzando un logica a livello hardware non binaria ma ternaria, incrementando il numero dei valori assegnabili.
Pensato per essere compatibile all'indietro.
Attuale perplessità delle case costruttrici.
Il Formato dei File in Protocollo MIDI: Standard MIDI FIle (SMF)
Come avviene l'archiviazione dei messaggi su file. I messaggi MIDI vengono memorizzati in un formato il cui standard è stato definito dalla MMA: permette di scambiare dati MIDI marcati temporalmente tra differenti programmi sullo stesso o su più elaboratori diversi.
Prende il nome di Standard MIDI File Format: attraverso di esso una sequenza di messaggi può essere eseguita su tutti i dispositivi MIDI. La rappresentazione dei dati è particolarmente compatta , pochi Kbyte, i MIDI-file sono agevolmente integrabili in altre applicazioni online.
Dal Protocollo al formato SMF
Il protocollo stabilisce quale deve essere la struttura dei messaggi e quali info i messaggi devono trasmettere . Il protocollo non definisce in che modo i messaggi debbano essere memorizzati in un file. E assente il concetto di tempo che è affidata all'esecutore o al sequencer.
Quello che interessava era la possibilità di trasmettere un flusso di dati tra più dispositivi MIDI durante una performance.
L'esecuzione in tempo differito non è definita dal protocollo. La memorizzazione dei dati richiede che di ogni evento si ricordi l'esatta collocazione temporale.
Prima specifica il formato di memorizzazione con l'info temporale era lasciata al costruttore.
Nel 1988 la definizione del SMF.
Non si propone di sostituire i formati proprietari: il suo obbiettivo è l'interscambio dei dati MIDI in un formato compatto adatto alla memorizzazione su disco.
Un Midi-File contiene un flusso di eventi MIDI, a ognuno dei quali associa una info temporale, o timestamp.
Consente di memorizzare le info della song e delle tracce che la compongono, tempo di metronomo(BPM) e il metro(4/4,3/4).
Permette di definire info descrittive: nomi tracce, strumenti, copyright e testi canzoni.
Dal punto di vista strutturale il Midi-FIle è un file composto da sequenze di parole binarie di un byte : una successione di messaggi MIDI intercalati da info sul ritardo di emissione.
Definizione del tempo
Ogni evento MIDI è preceduto da un numero (timestamp) e che rappresenta l'intervallo di tempo che separa un evento dal precedente. L'intervallo: delta-time, può avere due significati, a seconda se il tempo è calcolato in termini relativi o assoluti.
- intervallo calcolato "metricamente" in tick: timestamp indica quanti impulsi di clock il dispositivo deve attendere per rendere attivo il messaggio successivo.
- Il delta-time può indicare la suddivisione di un secondo(frame SMPTE).
Eventi e Meta-Eventi
Un SMF può essere pensato come una sequenza alternata di timestamp e di successivi messaggi MIDI.
Tra le info veicolate dai messaggi è possibile distinguere tra eventi(Channel e System Message) e i meta eventi, info aggiuntive non definite dal protocollo 1.0: cambi di tempo, nomi tracce e strumenti, porzioni di testo , armatura di chiave.
Tracce, chunk e formati
Anche i MIdi-File sono formati da chunk: blocchi di informazione separata, ognuno costituito da un numero variabile di byte.
Due tipi di chunk: un header e uno o più track.
Header, dimensione fissa di 14 byte, posto all'inizio e dichiara tre proprietà generali: formato, numero tracce e divisione in PPQ.
Il formato può essere di tre tipi.
Formato 0: info conservate in un'unica traccia. In una song con più tracce e la memorizziamo con il formato 0 , tutti i dati Midi vengono riversati in un'unica traccia. Formato base per garantire maggiore compatibilità tra i dispositivi.
Tempo e time signature definiti per l'unica traccia.
Formato 1: consente di definire più tracce autonome che debbono essere eseguite in simultaneità: formato più usuale, permette di sfruttare tutte le risorse messe a disposizione dall'impiego delle tracce.
Per ogni traccia possono essere definiti simultaneamente tempo e time signature(un cambio di tempo in quel momento si riferirà a tutte le tracce).
Formato 2: memorizza l'informazione in più tracce separate, ma sequenziali, (pattern); può essere pensato come una collezione di sequenze del formato 0. Non è supportato da tutti i sequencer.
Per ogni traccia possono essere definiti tempo e time signature. Tracce in sequenza, se ne può eseguire una sola per volta, ma ognuna è dotata di tempo e time signature indipendente.
Altre info nell'header riguardano il numero di tracce(1 nel formato 0) e la suddivisione che può essere indicata in tempo relativo o assoluto.
Track Chunk: la dimensione e il numero è variabile. Hanno la stessa struttura in tutti e tre i formati.
Ognuno è costituto dalla sequenza di eventi e meta-eventi relativi a una traccia, separati dall'indicazione del delta-time .
Possono avere dimensioni molto diverse l'uno dall'altro.
Formati 1 e 2 le info sui cambiamenti di tempo e di time signature vengono memorizzati nel primo track chunk.
Se salviamo una song di 3 tracce nel formato 1 o 2, analizzando file rileveremo non3 ma 4 tracce, poiché la traccia 0 viene aggiunta per contenere le info relative al tempo.
Vantaggi Midi
- Non è necessario memorizzare i segnali sonori, soltanto i dati MIDI(molto più ridotti).
- Musicista può cambiare alcuni aspetti dell'esecuzione dopo la registrazione.
- La registrazione non ha distorsione, fruscio.
Audio digitale VS MIDI
Registratori digitali VS sequencer MIDI
- sistemi digitali
- tracce multiple
Differiscono nel tipo e nella quantità di informazione gestita
Confronto
Musicista suona 4 semiminime a un tempo di 60 beat/min (4 sec)
Sintetizzatore MIDI
- 16 porzioni di informazione
- 4 noteOn, 4 noteOff, 8 altezze, 8 velocity
- 1 bye per info, 24 byte
Registratore digitale con microfono(stereo)
- sr = 44.100 hz
44.100 x 2 canali x 4 secondi= 352.800 campioni
campioni a 16 bit, 2 byte= 705.600 byte
24 byte per il MIDI
705 kbyte per l'audio digiate qualità cd
Vantaggio MIDI: basso costo
Vantaggio della registrazione digitale: qualsiasi suono catturato da un microfono, descrizione sfumature del segnale(pochi controlli MIDI),portabilità della registrazione(Dipendenz MIDI da sintetizzatore).
Limiti MIDI
baud rate 31250 bit/sec, 500 note/sec
Numero limitato canali, no indirizzamento dei device difficoltà a configurare grandi reti MIDI.
Arbitrarietà delle patch.
Autore: Fabrizio Garis
Formati e Supporti by http://lucciolaonline.blogspot.com/2012/03/6-musica-e-midi.html is licensed under a Creative Commons Attribuzione - Non commerciale 3.0 Italia License.
Nessun commento:
Posta un commento