Sei sulla pagina 1di 77

MIDI

Musical Instrument Digital Interface

L’interfaccia MIDI
Il protocollo MIDI
Il sequencer

1
Che cosa è il MIDI?

Protocollo per lo scambio d'informazioni in formato digitale fra


diverse apparecchiature per applicazioni musicali
Implementa una rappresentazione a livello simbolico della musica
Definisce
hardware
regole per la trasmissione e la ricezione
semantica
sintassi
Ossia
che circuito deve avere l'interfaccia
quale deve essere la velocità con la quale viaggiano i bit
quali e quanti byte servono per effettuare istruzioni
riconoscibili

2
Protocollo MIDI, MIDI file e General MIDI

il protocollo MIDI serve per la trasmissione di messaggi MIDI


tra dispositivi differenti

lo Standard MIDI file è un formato che consente la


memorizzazione dei messaggi MIDI su supporti permanenti

il General MIDI precisa il significato di alcuni messaggi MIDI


(ad es. consente di specificare in maniera univoca un timbro
musicale)

3
Come nasce il MIDI

Limitazioni dei primi sintetizzatori (monofonici e con pochi


timbri)
Integrazione di più sintetizzatori per produrre suoni più ricchi
Problema della comunicazione
altezza e ampiezza di una nota
sincronizzazione

MASTER SLAVE

Synth1 Audio out Synth2 Audio out


4
Cronologia

Inizio anni ‘80: necessità di uno standard per la comunicazione


tra i sintetizzatorim di marche diverse
problemi di cavi, differenze di volt, ...
AES - primo tentativo: protocollo USI (Universal Synthesizer
Interface), 1981
modifiche e integrazioni con la partecipazione dei maggiori
produttori di strumenti elettronici
1983: MIDI 1.0
1991: General MIDI, per fornire al mercato di massa un
approccio predefinito alla configurazione MIDI
1999: General MIDI Level 2
1999: Downloadable Sounds (DLS), per standardizzare il formato
dei timbri scaricabili da rete
Si utilizza il formato RIFF
Per il mercato dei videogiochi
5
Due concetti del MIDI

Interfaccia MIDI:
hardware necessario per la comunicazione tra strumenti

Protocollo di comunicazione MIDI:


insieme di regole per interpretare univocamente tutti i messaggi

Il MIDI permette di collegare DISPOSITIVI elettronici al fine di


trasmettere INFORMAZIONI di natura musicale

6
Dispositivi MIDI

Generatori di dati midi:


Master keyboard, computer, workstation, controller, etc.
I generatori di suono:
Expander e sintetizzatori, batterie elettroniche, computer,
etc.
Le interfacce:
Sincronizzatori, midibox, patchbay, etc.

7
Dispositivi MIDI

La workstation all'interno è divisa in due sezioni distinte: una di


controllo, che comprende la tastiera, i comandi e la parte elettronica
per l'elaborazione in entrata ed uscita dei dati midi, ed una di
generazione di suono.
I modelli più evoluti possono svolgere funzioni di sequencer.
La masterkeyboard è in grado di svolgere tutte le funzioni di
controllo MIDI più o meno complesse, la caratteristica che la
distingue dal sintetizzatore è l'assenza della sezione di generatore
di suono.
Il computer si è affiancato alle apparecchiature midi e con i
software ed hardware presenti in commercio è in grado di svolgere le
funzioni MIDI più complesse.
L'expander o modulo sonoro è composto dalla sola sezione di
generazione di suono di un sintetizzatore.
Le interfaccie sono dispositivi di ausilio ad un sistema MIDI:
Sincronizzatori à servono a fare partire e camminare allineate diverse
apparecchiature MIDI.
Midibox à utili per filtrare, miscelare e collegare varie fonti MIDI.
Troviamo tra le più importanti: Merge, Patch Bay, Thru

8
MIDI Box e Patch Bay

Midibox à utili per filtrare, miscelare e collegare varie fonti


MIDI.
Thru Box: lo stesso ingresso su tutte le uscite
Patch Bay: molti ingressi, molte uscite: routing, merging
MIDI processor

9
Interfaccia MIDI 1/2

Interfaccia seriale asincrona


Dati come sequenza di bit
Occorrono convertitori parallelo/ seriale (ACIA o UART)
L’invio dei dati dipende dal momento in cui un dispositivo inizia
a trasmettere
Velocità: 31.250 bit/sec
Un byte (10 bit = 8 + bit di start + bit di stop) → 320 msec
Connettori di tipo DIN a 5 pin
L’avvolgimenti è proprio del MIDI
non si possono usare cavi DIN standard
Lunghezza massima: 6.6 m 1 3
oltre intervengono problemi di dispersione) 4 5
2
+5V

schermatura dati MIDI


10
Interfaccia MIDI 2/2

Porte fisiche (connettori)


MIDI In: riceve segnali dall’esterno
MIDI Out: trasmette dati MIDI all’esterno
MIDI Thru: trasmette all’esterno la copia esatta dei dati
ricevuti al MIDI In
Patch bay → consente di effettuare un routing, scegliendo tra
più configurazioni ingresso/uscita
Permette di assegnare un solo ingresso a più uscite e più
uscite ad un ingresso (merging)

IN OUT THRU IN OUT THRU

IN OUT THRU

11
Schema riassuntivo

V cc

Dati Tx 5
ACIA 2
Comandi 4
µP o Rx 5
Opto
Interrupt UART isolatore
4

FIFO
byte
bit

ACIA – Asynchronous Communication Interface Adapter


UART – Universal Asynchronous Receiver/Transmitter

12
Sistema MIDI

Editor (sequencer): programmi per brani musicali come sequenze


di eventi complessi
Expander: generatori di suono (sintetizzatori, campionatori, …)
Controller: generatori di messaggi MIDI (tastiere, MIDI-sax,
MIDI-guitar, drum-pads, …)

13
Schemi di connessione MIDI

MIDI out MIDI in


I)
Synth1 Synth2

MIDI out MIDI thru

II) MIDI out


MIDI in

MIDI in MIDI Expander


Sequencer
Master Keyboard
MIDI in

Drum machine
14
Informazioni MIDI

Comunicazione attraverso messaggi


I messaggi non rappresentano una forma d’onda
solo informazioni di controllo
Note
Note on, Note off, key-number, key-velocity
Canali
Al massimo 16
Patch
Controlli
Informazioni di tempo

15
Il protocollo MIDI: canali

Canali
“Strade per la comunicazione”
Ad ogni canale può essere associato un particolare timbro
Indirizzano i messaggi agli expander
Il MIDI ha 16 canali per la comunicazione
I device possono rispondere a 1 o più canali
Due esempi d’utilizzo di tutti 16 i canali
Manuel De Falla, Quintetto (El Amor Brujo: Danza ritual del
fuego):
3 diverse assegnazioni di timbri ai canali

16
Il protocollo MIDI (cont.)

Tracce
Flusso autonomo di dati MIDI
analogia: partitura per un esecutore
Esempio: in un brano per 2 pianoforti, ogni traccia è uno
strumento, pur mantenendo lo stesso timbro
Può essere associata ad un canale, per poter modificare un
timbro
Riorchestrazione, modificando il timbro associato ad un canale

17
Patch

Patch
controlli che definiscono un particolare timbro
I messaggi MIDI possono indirizzare sino a 128 timbri (patch)
diversi
Si possono utilizzare diversi bank di 128 patch l’uno.
Alcune patch General MIDI:
0 Grand piano; 4 Rhodes piano; 56 Trumpet; 57 Trombone;
6 Harpsichord; 11 Vibraphone; 71 Clarinet; 73 Flute; 79 Ocarina;
12 Marimba; 13 Xylophone; 80 Square Lead; 81 Sawtooth Lead;
21 Accordion; 22 Harmonica; 94 Halo Pad; 104 Sitar; 105 Banjo;
23 Tango accordion; 24 Acoustic 118 Synth drum; 119 Reverse
guitar (nylon); 25 Acoustic guitar cymbal; 120 Guitar fret noise;
(steel); 26 Electric guitar (jazz); 121 Breath noise; 122 Sea shore;
32 Acoustic bass; 33 Electric bass 123 Bird tweet; 124 Telephone ring;
(finger); 40 Violin; 41 Viola; 42 Cello; 125 Helicopter; 126 Applause;
46 Orchestral harp; 47 Timpani; 127 Gunshot
48 String ensemble 1;
18
Tracce, canali e patch

19
Temporizzazione

I messaggi MIDI includono l’informazione temporale (timestamp)


Ogni dispositivo MIDI è dotato di un clock con unità di misura
(timebase) particolare:
PPQ (parti per quarto) o ticks
Relativa: dipende dalla durata di un quarto
Il numero di quarti (semiminime) al minuto è indicato con BPM
(beats per minute): tra 40 e 240
Valori tipici: 24, 96, 480 (tutti multipli di 24), sino a 4096

20
Esempio

120 BPM, Timebase = 24 ticks

120 BPM = 2 beat/sec, cioè 0,5 sec per 1 beat

24 ticks in un beat, cioè in 0,5 sec


0,5 / 24 = 0,020833 sec = circa 21 msec

Quindi 1 tick dura circa 21 msec

21
Sincronizzazione MIDI

MIDI Clock:
Il device master “tiene il tempo” con il suo clock (internal
sync): produce un clock message ogni 24 PPQ
Devices slave con external sync: usano il clock message che
arriva dal master

22
MIDI Timecode Quarter Frame

MIDI Time Code


Per coordinare dispositivi MIDI con produzioni audio/video
Traduzione in tempo assoluto
Fondamentale in ambiente multimediale
Il timecode (SMPTE) hh:mm:ss:ff
Si usa in televisione e video produzione
è un codice speciale inviato (o registrato) insieme con i segnali
video e audio
risoluzione di circa 1–2 ms, sufficiente per sincronizzare
audio con video, ma non per sincronizzare audio multitraccia.

23
Struttura generale di un messaggio MIDI

Parole di 10 bit (8 + start + stop)


Status Byte – primo bit =1, identifica:
il tipo di messaggio (di canale o di sistema)
il canale interessato (nei channel message)
Il messaggio di sistema
ne esistono solo 11, quindi bastano i 4 bit meno
significativi dello Status Byte
1 o 2 Data byte: il messaggio

La velocità di trasmissione è 31250 bit/sec.

24
Messaggi MIDI: livello logico

Il flusso di dati MIDI può essere diviso in


byte che contengono dati (data bytes)
byte che specificano il significato di tali dati (status byte).
I diversi tipi di messaggi (status byte) si possono dividere in
system message sono indirizzati a tutti i canali e vengono quindi
recepiti da tutti i dispositivi collegati
channel message sono messaggi indirizzati ad un particolare canale,
che vengono recepiti solo dai dispositivi che hanno quel particolare
canale d’ascolto attivato.

Status byte: 1xxxyyyy


xxx indica il tipo di messaggio
yyyy indica il canale di destinazione (24=16)
Data byte: 0xxxxxxx
xxxxxxx contiene il valore del parametro (27=127)

25
La tassonomia dei messaggi

Messaggi che Message Type


riguardano un
solo canale
Messaggi che
Channel Message System Message non riguardano
un canale

Channel Channel System System System


Voice Mode Common Real Time Exclusive
Message Message Message Message Message

Che cosa deve Come si comporta Indirizzati a Codice di Indirizzati a


suonare uno uno strumento tutti i device sincronizzazione uno specifico
strumento all’arrivo del nel sistema tra i device device
voice message nel sistema
26
Channel Message: Status byte

primi 4 bit: codice di identificazione del messaggio


(tra 1000 e 1110)
secondi 4 bit: identificazione del canale

Sempre 1
negli status
byte

Message
MSB 6 5 4 3 2 1 hex
type
1 0 0 0 Note off 8c
Uno dei sedici
1 0 0 1 Note on 9c
canali: 4 bit (0..15)
1 0 1 0 Aftertouch Ac

27
Channel Message: Data Bytes

1 o più byte
Iniziano con 0: 0xxx xxxx
128 valori a disposizione

28
Channel Voice Messages

Message Type

Channel Message System Message

Channel Channel System System System


Voice Mode Common Real Time Exclusive
Message Message Message Message Message

descrivono che cosa deve suonare uno strumento (eventi musicali)

29
Note On - Note Off

Si invia per attivare una nota 0x9c


tasto di una tastiera
pad di una batteria elettronica
2 data bytes
numero nota (Do centrale = 60) 0NNN NNNN
velocity: forza con cui si pigia un tasto (ampiezza dell’output,
eventualmente timbro) 0VVV VVVV

Note Off
Si invia per disattivare una nota 0x8c
2 data bytes
numero della nota 0NNN NNNN
velocity: applicata al rilascio 0VVV VVVV

30
Le note (key) (128)

C C# D D# E F F# G G# A A# B Ottava

0 1 2 3 4 5 6 7 8 9 10 11 -1

12 13 14 15 16 17 18 19 20 21 22 23 0

24 25 26 27 28 29 30 31 32 33 34 35 1

36 37 38 39 40 41 42 43 44 45 46 47 2

48 49 50 51 52 53 54 55 56 57 58 59 3

60 61 62 63 64 65 66 67 68 69 70 71 4

72 73 74 75 76 77 78 79 80 81 82 83 5

84 85 86 87 88 89 90 91 92 93 94 95 6

96 97 98 99 100 101 102 103 104 105 106 107 7

108 109 110 111 112 113 114 115 116 117 118 119 8

120 121 122 123 124 125 126 127 9

31
Codifica abbreviata

Poiché la velocity è poco significativa per il NoteOff →


NoteOff = “NoteOn con velocity = 0”
non si ripete lo status byte del NotaOn:
144 47 50 144 47 0 → 144 47 50 47 0
144 = 1001 - 0000 (NoteOn – Canale 1)
Si risparmia una media di 33% di traffico sulla rete

32
Aftertouch (Polyphonic Key Pressure)

Solo per device che rilevano cambi di pressione


Simula strumenti con afflusso continuo di energia
Status Byte → 1010nnnn 0xAc
2 data Bytes:
numero della nota 0NNN NNNN
valore di pressione 0VVV VVVV
Riguarda una sola nota!

33
Aftertouch (Channel Pressure)

Solo per device che rilevano cambi di pressione


Non si specifica il numero di nota: modifiche timbriche su tutto il
canale
Status Byte: 1101nnnn 0xDc
1 data byte: valore di pressione 0VVV VVVV
Effetti diversi a seconda del device usato

34
Pitch Bend

Sulla tastiera: Pitch Wheel


variazione frequenziale intorno alla frequenza del tasto
premuto
corrisponde al vibrato
Status Byte: 1110nnnn 0xEc
2 data byte: variazione (14 bit)

35
Program Change

Per sintetizzatori multi-timbrici


Status byte: 1100nnnn 0xCc
1 data byte: Program Number 0PPP PPPP
Si seleziona il timbro associato al canale nnnn
In una unità di effetti può indicare un particolare effetto
(ad esempio, un chorus) da attivare sul canale nnnn

36
Control Change

Controller: pedale, ruota, leva, bocchino


Status Byte: 1011nnnn 0xBc
2 data byte:
Il primo specifica il controller
Il secondo il valore che deve assumere
Controller continui: funzione di controllo
controller 7: volume generale dello strumento
controller 10: panning stereofonico di un suono
Controller a switch (valore ON/OFF)
64 (DAMPER PEDAL): pedale sostegno (ON/OFF)
123 (ALL NOTES OFF): spegne tutti i NoteOn attivi

37
Riassunto Voice Messages

38
MIDI Message Formats

Key Up 8 ch key# vel


Key Down 9 ch key# vel
Polyphonic Aftertouch A ch key# press
Control Change B ch ctrl# value
Program Change C ch index#
Channel Aftertouch D ch press
Pitch Bend E ch lo 7 hi 7
System Exclusive F 0 … DATA …
F E 39
Channel Mode Messages

Message Type

Channel Message System Message

Channel Channel System System System


Voice Mode Common Real Time Exclusive
Message Message Message Message Message

•  descrivono il modo in cui un generatore di suoni


interpreta i comandi NoteOn/NoteOff che riceve
monofonia/polifonia, singolo canale/tutti i canali
40
I modi

Configurazioni sulla base delle quali i dispositivi MIDI


interpretano le informazioni relative ai canali
“Modalità” con cui trattare il messaggio
Un expander può generare più suoni in contemporanea (voci) e con
più timbri

numero di voci possibili = grado di polifonia


voci di strumenti diversi = grado di politimbrica

caso speciale di Control change


Channel mode status byte 0xBn

41
OMNI ON/OFF

OFF: il device risponde ai messaggi appartenenti al singolo canale


prescelto
ON: il device risponde ai messaggi appartenenti a tutti i canali

42
POLY/MONO

Il device risponde monofonicamente o polifonicamente ai singoli


canali MIDI
MONO: suona una nota singola per canale
POLY: suona più note per canale (numero limitato dalle
limitazioni HW)

43
Combinazioni di modi

OMNI ON + POLY (usato in fase di test del sistema)


OMNI ON + MONO (non usato)
OMNI OFF + POLY (un canale con il massimo grado di polifonia
permesso dall’HW)
OMNI OFF + MONO
Modo “multi”: pensato per gli strumenti multitimbrici
Ogni patch riceve i dati di un singolo canale (da cui il nome
omni off)
In origine la risposta delle patch era monofonica (da cui
mono), ora il modo “multi” è polifonico

44
System Messages

Message Type

Channel Message System Message

Channel Channel System System System


Voice Mode Common Real Time Exclusive
Message Message Message Message Message

•  si riferiscono a tutti i device


•  non includono quindi un numero di canale
•  sono utili per la sincronizzazione di più device

45
Esempio di messaggi di sistema

Status byte: 1111 xxxx 0xFx


Poiché sono diretti a tutti i sistemi su tutti i canali, il secondo
nibble non specifica il canale, ma i diversi messaggi di sistema
Esempio:
Più device con sequencer interno (pad + tastiera) memorizzano
sequenze di dati MIDI →
MIDI song memorizzata a pezzi su due device
batteria memorizza la parte di batteria della song
tastiera memorizza la parte armonica e melodica →
Si definiscono master & slave device
es. master batteria; slave tastiera
START sulla batteria, anche tastiera parte

46
System Common Messages

Message Type

Channel Message System Message

Channel Channel System System System


Voice Mode Common Real Time Exclusive
Message Message Message Message Message

•  messaggi comuni a tutto il sistema

47
Song Position Pointer

status byte: 1111 0010 0xF2


2 data byte: 0LLL LLLL 0MMM MMMM
14 bit per indicare i beats dall’inizio della song → 214 posizioni
diverse
Indica il punto interno alla Song dove posizionare il puntatore
Registrazione o riproduzione iniziano da qual punto

Song Select
status: 1111 0011
data: 0SSS SSSS
seleziona una di 128 song possibili che un device può avere
memorizzate
il messaggio cambia la song corrente

48
System Real Time Messages

Message Type

Channel Message System Message

Channel Channel System System System


Voice Mode Common Real Time Exclusive
Message Message Message Message Message

•  messaggi di sincronizzazione tra i device

49
Sincronismo tra i moduli

MIDI Clock è sincronizza l’intero sistema


Viene generato dal master 24 volte per beat
Controlla l’avanzamento degli slave
Status Byte: 11110000 0xF0
Nessun Data Byte
Start/Continue/Stop dal master
Start (11111010) tutti i dispositivi si alla locazione iniziale
della song corrente
Stop (11111100) blocca l’operazione in corso (play o rec)
Continue (11111011) riprende l’operazione sospesa con stop
Active Sensing
(11111111) mantiene attiva la connessione tra master e slave
Inviato ogni 300 ms
Se non viene ricevuto nessun byte (neppure l’Active Sensing)
la comunicazione viene interrotta
System Reset
Riporta tutti i dispositivi ai valori predefiniti
50
System Exclusive Messages

Message Type

Channel Message System Message

Channel Channel System System System


Voice Mode Common Real Time Exclusive
Message Message Message Message Message

•  messaggi esclusivi per device speciali

51
Messaggi esclusivi dei costruttori

Espedienti per comunicare qualsiasi cosa


Di solito rivolti ai device di qualche particolare costruttore
Struttura
Status byte: 1111 0000
ID byte: 0DDD DDDD (codice del costruttore)
data bytes: quanti ne occorrono
EOX byte: 1111 0111 (status byte finale)

52
General MIDI

General MIDI mode:


regola a priori la corrispondenza canali, patch timbri (preset)
es. canale 4: melodia, canale 10: percussioni
Presets per Program change
es. 2 per piano elettrico

53
Altri standard

Limitazione di GM: max 128 strumenti e controller


Roland GS (General Standard)
messaggio Bank Select (aumenta i preset)
controllo di effetti audio e parametri del suono
Yamaha XG
strumenti, effetti, drum kit estesi
scalabilità: approssimazione di messaggi non interpretati
correttamente

54
Standard MIDI File (SMF)

Nasce nel 1988


Formato per memorizzare sequenze MIDI (song)
Riconosciuto da tutti i programmi musicali
sequencer
programmi per la stampa di partiture
Contiene informazioni necessarie per l’esecuzione

55
Lo Standard MIDI File (SMF)

Motivazioni
Assente nel protocollo MIDI il concetto di tempo
La gestione del tempo è affidata all’esecutore o al sequencer,
i quali → Generano i messaggi in ben precisi istanti

Lo Standard MIDI File (SMF)


Formato di memorizzazione e di scambio di brani musicali
Sequenza di messaggi MIDI intercalati da informazioni sul
ritardo di emissione
Contiene informazioni necessarie per l’esecuzione
Riconosciuto da tutti i programmi musicali
sequencer
programmi per la stampa di partiture

56
Messaggio Bytes Tempo
Esempio NoteOn0 90 4A 30 0
NoteOn1 91 40 30 0
| |
| |
NoteOff1 91 40 00 50
| |
NoteOff0 90 4A 00 75
| |
NoteOn1 91 41 30 100
| |
| |
NoteOff1 91 41 00 150
NoteOn0 90 48 30 150
| |
NoteOff0 90 48 00 175
Assunzione: | |
una semiminima vale 1 sec NoteOn0 90 47 30 200
NoteOn1 91 43 30 200
(cioè 100 centesimi) | |
NoteOff1 91 43 00 225
| |
L’informazione “tempo” non NoteOff0 90 47 00 250
NoteOn1 91 41 30 250
è del protocollo MIDI | |
Informazione aggiuntiva dell’ NoteOff1 91 41 00 275
| |
intervallo tra un messaggio e NoteOn0 90 47 30 300
il successivo: il MIDI file NoteOn1 91 43 30 |

57
Il tempo

Ogni evento MIDI è preceduto da un numero (timestamp) che


rappresenta l’intervallo di tempo (d-time) che separa un evento
dal precedente. Può essere espresso in:
Tick: nel file viene anche specificata la durata DUR (in µs) di
un quarto
tempo: DUR = 60.000.000 / BPM
divisione: numero di tick in un quarto,
es. 96 con BPM=120: è 500.000/96 ≅ 5208 µs
Secondo SMPTE: nel file viene anche specificato il numero di
frame/secondo

58
Struttura di un MIDI file

Organizzazione in chunk
due campi iniziali di 4 byte tipo lunghezza dati
ID = tipo di chunk
dimensioni del chunk 4 bytes 4 bytes N bytes

data byte
Due tipi di chunk
header chunk: 14 byte – posto all’inizio del file
contiene le informazioni del formato, del numero di tracce
e della temporizzazione.
track chunk:
contiene gli eventi Midi relative ad una singola traccia,
riferimento temporale (δ-time), che esprime il tempo
trascorso tra ogni singolo evento, seguito da relativo
messaggio

59
Tre tipi di SMF:

Tipo 0 - una sola traccia


General Header: identificazione del file, divisione, tempo
metronomico, tempo musicale, chiave, ...
Grande compatibilità
Tipo 1 - più tracce simultanee (<= 256)
Il tempo solo sulla prima condiziona tutte le tracce
Intestazione generale (General Header) + intestazioni di
traccia
Tipo 2 - più tracce in cascata (<=256)
Scarsa compatibilità – utilizzato nelle drum machine
Il tempo su tutte le tracce
Intestazione generale (General Header) + intestazioni di
traccia

60
Il Sequencer

61
Interfaccia: Mixer

Muting Modifiche esecuzione


Recording Key+ Vel+ Time+
Soloing Porta
Panning (stereo)

62
Interfaccia: Event List

Tick
Tempo
MeasureBeatTick

63
Interfaccia: Piano Roll

64
Editing

Editing di base
Registrazione
Real time
Step by step

Tempo e quantizzazione

65
Confronto Audio vs. MIDI

Un musicista suona 4 semiminime a un tempo di 60 beat/min (4


sec):
Sintetizzatore MIDI
16 porzioni di informazione:
4 inizi, 4 fini, 4 altezze, 4 ampiezze
3 byte per informazione = 48 byte
Registratore digitale con microfono (stereo)
Fc = 44.1 kHz
44100 x 2 canali x 4 secondi = 352.800 camp.
campioni a 16 bit: 705.600 byte

66
Vantaggio della registrazione MIDI

Sequencer multitraccia MIDI a 48 tracce


costa poche decine di dollari
gestisce 4000 byte/sec
Registratore multitraccia digitale a 48 tracce
costa (decine di) migliaia di dollari
gestisce 4,6 Mb/sec
Rapporto 1 / 1000 sia per costo che per capacità

67
Vantaggio della registrazione digitale

Può registrare qualsiasi suono che un microfono può catturare


(inclusa la voce)
Descrive il segnale in tutte le sue sfumature (modulazioni, forma
d’onda, …), mentre il MIDI è limitato a poche informazioni di
controllo
Portabilità della registrazione: cambiando il sintetizzatore, il
suono di una registrazione MIDI può cambiare totalmente

68
Schema riassuntivo dei messaggi MIDI

Messaggi MIDI

Status byte Data byte(s)

Channel System
message message

Channel Channel System System Real System


voice mode common Time Exclusive

⇒ Note-on ⇒ Local/remote ⇒ Song position ⇒ Midi clock


⇒ Note-off keyboard control pointer ⇒ Start
⇒ Key aftertouch ⇒ All notes off ⇒ Song select ⇒ Stop
⇒ Channel ⇒ Reset all ⇒ Tune request ⇒ Continue
aftertouch controllers ⇒ End system ⇒ Active sensing
⇒ Control change ⇒ Mode select exclusive
⇒ System reset
⇒ Pitch bend ⇒ Quarter frame
⇒ Program change
⇒ Bank select

69
Vantaggi del MIDI

Non è necessario memorizzare i segnali sonori, soltanto i dati


gestuali
(I dati MIDI NON sono campioni audio)
Il musicista può cambiare alcuni aspetti dell’esecuzione dopo la
registrazione
La registrazione non ha distorsione, fruscio, …, nonostante tutte
le possibili manipolazioni

70
Limiti del MIDI

Baud rate 31250 bit/sec, in 1 sec 500 note: pezzi complessi con
molti strumenti richiedono velocità più elevate
Numero limitato di canali, nessun indirizzamento dei device,
difficoltà a configurare grandi reti MIDI
Ridotto range dei valori (0 -- 127)
Dipendenza dai dati MIDI: arbitrarietà delle patch (ora General
MIDI)

Rappresentazione della musica focalizzata per musica pop per


tastiera

71
General MIDI

MIDI + Instrument Patch Map + Percussion Key Map --> a piece


of MIDI music sounds the same anywhere it is played
Instrument patch map is a standard program list consisting of
128 patch types.
Percussion map specifies 47 percussion sounds.
Key-based percussion is always transmitted on MIDI channel
10.
Requirements for General MIDI Compatibility:
Support all 16 channels.
Each channel can play a different instrument/program
(multitimbral).
Each channel can play many voices (polyphony).
Minimum of 24 fully dynamically allocated voices.

72
General MIDI Instrument Patch Map
Prog# Instrument Prog# Instrument
----- ---------- ----- ----------

(1-8 PIANO) (9-16 CHROM PERCUSSION)


1 Acoustic Grand 9 Celesta
2 Bright Acoustic 10 Glockenspiel
3 Electric Grand 11 Music Box
4 Honky-Tonk 12 Vibraphone
5 Electric Piano 1 13 Marimba
6 Electric Piano 2 14 Xylophone
7 Harpsichord 15 Tubular Bells
8 Clav 16 Dulcimer

(17-24 ORGAN) (25-32 GUITAR)


17 Drawbar Organ 25 Acoustic Guitar(nylon)
18 Percussive Organ 26 Acoustic Guitar(steel)
19 Rock Organ 27 Electric Guitar(jazz)
20 Church Organ 28 Electric Guitar(clean)
21 Reed Organ 29 Electric Guitar(muted)
22 Accoridan 30 Overdriven Guitar
23 Harmonica 31 Distortion Guitar
24 Tango Accordian 32 Guitar Harmonics

73
General MIDI Instrument Patch Map
Prog# Instrument Prog# Instrument
----- ---------- ----- ----------

(33-40 BASS) (41-48 STRINGS)


33 Acoustic Bass 41 Violin
34 Electric Bass(finger) 42 Viola
35 Electric Bass(pick) 43 Cello
36 Fretless Bass 44 Contrabass
37 Slap Bass 1 45 Tremolo Strings
38 Slap Bass 2 46 Pizzicato Strings
39 Synth Bass 1 47 Orchestral Strings
40 Synth Bass 2 48 Timpani

(49-56 ENSEMBLE) (57-64 BRASS)


49 String Ensemble 1 57 Trumpet
50 String Ensemble 2 58 Trombone
51 SynthStrings 1 59 Tuba
52 SynthStrings 2 60 Muted Trumpet
53 Choir Aahs 61 French Horn
54 Voice Oohs 62 Brass Section
55 Synth Voice 63 SynthBrass 1
56 Orchestra Hit 64 SynthBrass 2

74
General MIDI Instrument Patch Map
Prog# Instrument Prog# Instrument
----- ---------- ----- ----------

(65-72 REED) (73-80 PIPE)


65 Soprano Sax 73 Piccolo
66 Alto Sax 74 Flute
67 Tenor Sax 75 Recorder
68 Baritone Sax 76 Pan Flute
69 Oboe 77 Blown Bottle
70 English Horn 78 Skakuhachi
71 Bassoon 79 Whistle
72 Clarinet 80 Ocarina

(81-88 SYNTH LEAD) (89-96 SYNTH PAD)


81 Lead 1 (square) 89 Pad 1 (new age)
82 Lead 2 (sawtooth) 90 Pad 2 (warm)
83 Lead 3 (calliope) 91 Pad 3 (polysynth)
84 Lead 4 (chiff) 92 Pad 4 (choir)
85 Lead 5 (charang) 93 Pad 5 (bowed)
86 Lead 6 (voice) 94 Pad 6 (metallic)
87 Lead 7 (fifths) 95 Pad 7 (halo)
88 Lead 8 (bass+lead) 96 Pad 8 (sweep)

75
General MIDI Instrument Patch Map
Prog# Instrument Prog# Instrument
----- ---------- ----- ----------

(97-104 SYNTH EFFECTS) (105-112 ETHNIC)


97 FX 1 (rain) 105 Sitar
98 FX 2 (soundtrack) 106 Banjo
99 FX 3 (crystal) 107 Shamisen
100 FX 4 (atmosphere) 108 Koto
101 FX 5 (brightness) 109 Kalimba
102 FX 6 (goblins) 110 Bagpipe
103 FX 7 (echoes) 111 Fiddle
104 FX 8 (sci-fi) 112 Shanai

(113-120 PERCUSSIVE) (121-128 SOUND EFFECTS)


113 Tinkle Bell 121 Guitar Fret Noise
114 Agogo 122 Breath Noise
115 Steel Drums 123 Seashore
116 Woodblock 124 Bird Tweet
117 Taiko Drum 125 Telephone Ring
118 Melodic Tom 126 Helicopter
119 Synth Drum 127 Applause
120 Reverse Cymbal 128 Gunshot

76
General MIDI Percussion Key Map
MIDI Key Drum Sound MIDI Key Drum Sound
-------- ---------- ---------- ----------

35 Acoustic Bass Drum 59 Ride Cymbal 2


36 Bass Drum 1 60 Hi Bongo
37 Side Stick 61 Low Bongo
38 Acoustic Snare 62 Mute Hi Conga
39 Hand Clap 63 Open Hi Conga
40 Electric Snare 64 Low Conga
41 Low Floor Tom 65 High Timbale
42 Closed Hi-Hat 66 Low Timbale
43 High Floor Tom 67 High Agogo
44 Pedal Hi-Hat 68 Low Agogo
45 Low Tom 69 Cabasa
46 Open Hi-Hat 70 Maracas
47 Low-Mid Tom 71 Short Whistle
48 Hi-Mid Tom 72 Long Whistle
49 Crash Cymbal 1 73 Short Guiro
50 High Tom 74 Long Guiro
51 Ride Cymbal 1 75 Claves
52 Chinese Cymbal 76 Hi Wood Block
53 Ride Bell 77 Low Wood Block
54 Tambourine 78 Mute Cuica
55 Splash Cymbal 79 Open Cuica
56 Cowbell 80 Mute Triangle
57 Crash Cymbal 2 81 Open Triangle
58 Vibraslap

77