MIDI - Musical Instrument Digital Interface.! L interfaccia MIDI! Il protocollo MIDI! Il sequencer

Documenti analoghi
Il MIDI: Musical Instrument Digital Interface. MIDI - Vincenzo Lombardo

Il MIDI: Musical Instrument Digital Interface. MIDI - Vincenzo Lombardo

Musical Instrument Digital Interface (MIDI)

Formati Audio Parte 2

Musica e MIDI. Musical Instrument Digital Interface

Audio e musica. Livelli di rappresentazione. La rappresentazione della musica. Dove si posiziona il MIDI. MIDI - Musical Instrument Digital Interface

Il MIDI: Musical Instrument Digital Interface

Lo Standard MIDI. Corso di Informatica Applicata alla Musica. Prof. Goffredo Haus Relatore: Maurizio Longari

MIDI Musical Instrument Digital Interface. L interfaccia MIDI Il protocollo MIDI Il sequencer

Il MIDI Musical Instrument Digital Interface

MIDI FILES & MIDI TIME CODE

Rev Gabriele Cappellani

MIDI Musical Instrument Digital Interface

PROTOCOLLI DI COMUNICAZIONE MIDI OSC

M.I.D.I: Musical Instrument Digital Interface. Capitolo 6. il MIDI. Si intende x MIDI:

DAE Digital Audio Experience

DTX402K DTX432K DTX452K

Manuale delle impostazioni MIDI CN27 Impostazioni MIDI

Manuale delle impostazioni MIDI CN29 Impostazioni MIDI

Manuale delle impostazioni MIDI KDP110 Impostazioni MIDI

Manuale delle impostazioni MIDI CA17 Impostazioni MIDI

Struttura dell interfaccia MIDI

Prova d'esame del 30/11/2018

Il protocollo MIDI. C era una volta un sequencer MIDI di nome Cubase

Il protocollo MIDI. Il protocollo MIDI

PROGRAMMA CORSO TECNICO DEL SUONO / MUSIC PRODUCER

STANDARD MIDI FILE (SMF)

Modulo 1: Le I.C.T. UD 1.3c: La Codifica Digitale dei Suoni

La codifica dei suoni

Manuale delle impostazioni MIDI CA58 MIDI Settings (Impostazioni MIDI)

Programma per il corso di produzione di Musica Elettronica Skenè Accademy

Laboratorio di Tecnologie Informatiche per il Suono e la Musica. Esercitazione 5. Dott. Patrizio Barbini

Evolution MK-261 MANUALE TASTIERA MIDI

1.3c: La Codifica Digitale dei Suoni

1.3d: La Codifica Digitale dei Suoni

Manuale delle impostazioni MIDI CN35 MIDI Settings (Impostazioni MIDI)

KeyWorld LAB. Struttura tecnica di una workstation digitale a campionamento tipo Motif/Fantom/Triton e relativo utilizzo delle funzioni.

DTX400K DTX430K DTX450K

I SUONI. I suoni Il campionamento File Wave e Midi

Bus RS-232. Ing. Gianfranco Miele April 28, 2011

La codifica dei suoni

1.3d: La Codifica Digitale dei Suoni

Manuale delle impostazioni MIDI CS11/CS8 MIDI Settings (Impostazioni MIDI)

DIGITALIZING (sampling) acoustic analogic digital

Protocolli di Comunicazione

Tecnologie Multimediali a.a. 2017/2018. Docente: DOTT.SSA VALERIA FIONDA

Raffaele Scalamandrè

Tecnologie Multimediali a.a. 2018/2019. Docente: DOTT.SSA VALERIA FIONDA

INTO THE MUSIC by GAGGERO

Audio pr p of o. Ro R b o e b r e to o Ca C r a lo o Giuse u p se p p e p e T i T rel e il

PROGRAMMA CORSO PRODUZIONE MUSICA ELETTRONICA

1 Descrizione del sistema

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino. Gruppo H: Sistemi Elettronici Lezione n H - 5: Collegamenti seriali Conclusione

COS'E' IL MIDI. Il termine MIDI è l'acronimo di Musical Instruments Digital Interface, cioè 'Interfaccia Digitale per Strumenti Musicali'.

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Manuale delle impostazioni MIDI CN37 MIDI Settings (Impostazioni MIDI)

La codifica dei Suoni. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Caratteristiche di un PC

La codifica dei suoni

Labyrinth Advanced Switchboard

verso espandibili eterogenei tempo di accesso tempo di risposta throughput

Storicamente, ogni tipo di macchina usava un suo formato per i dati audio. Alcuni formati applicabili in modo più generale

MANUALE D USO REV. 01

Ing. Emiliano Capuzzo Remote Contro NEC 11/11/2003. Remote Control NEC

QUINTA LEZIONE: LO STANDARD IEEE-488

SM mkeyb 49C CONTROLLER MIDI Manuale Utente

Kontrol 49. MIDI studio controller

AXO Architettura dei Calcolatori e Sistemi Operativi. reti sequenziali

Detail. EMB-8oMB1. Scheda SLAVE di espansione con 8 uscite e protocollo di comunicazione Modbus RTU. Modello: EMB-8oMB1 Codice d ordine:

Il MIDI. Massimiliano Salfi.

Deep Time. Manuale Utente v.1.3

Febbraio XFC extreme Fast Control Technology Come migliorare l efficienza delle macchine

4.3: La Codifica dei Suoni e dei Video

MOOD Mood = emotional state, umore, animo. any type of music thought to induce a particular state of mind (dictionary.com)

22/09/2010. Rossato Alessio

La codifica dei suoni

Lo strato di Trasporto

COMUNICAZIONE SERIALE a cura dell' Ing. Buttolo Marco

Tecnologie Multimediali a.a. 2016/2017. Docente: DOTT.SSA VALERIA FIONDA

Detail. EMB-4oaMB1. Scheda SLAVE di espansione con 4 uscite analogiche regolabili 0-10V e protocollo di comunicazione Modbus RTU

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Lab. Sistemi - Classe 5Bn A. S. 2000/2001 ITIS Primo Levi - Torino AA.AA. STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di

CONVERSIONE ANALOGICO/DIGITALE

Rappresentazione digitale del suono

Tecnologie Multimediali a.a. 2017/2018. Docente: DOTT.SSA VALERIA FIONDA

CASIO XW-P1 Tastiera Sintetizzatore 61 tasti

Componenti e connessioni. Capitolo 3

Guida rapida di SoftStep

Manuale d uso e manutenzione

EEPROM SERIALI IN I2C BUS.

All'avvio il programma presenta la schermata principale di Edit. In essa è facilmente individuabili le varie sezioni operative:

Storicamente, ogni tipo di macchina usava un suo formato per i dati audio. Alcuni formati applicabili in modo più generale

Pag. 1/10. Rev Formato FTP R00.doc. Nome File: formato ftp R00.doc Scritto da: M. Bertero

I suoni! (digitali) V2.1 Ott

ISO OSI. International Standard Organization Open System Interconnection

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Transcript:

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. Un sincronizzatore molto utile è quello che si usa per far andare a tempo un registratore analogico a nastro con varie 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! oltre intervengono problemi di dispersione) + 5 V 1 4 5 2 3 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 µp Dati Comandi Interrupt ACIA o UART Tx Rx Opto isolatore 5 2 4 5 4 byte FIFO 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 I) Synth1 MIDI out MIDI in Synth2 II) MIDI out MIDI thru MIDI out MIDI in MIDI in MIDI Expander Master Keyboard Sequencer 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

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! 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; 6 Harpsichord; 11 Vibraphone; 12 Marimba; 13 Xylophone; 21 Accordion; 22 Harmonica; 23 Tango accordion; 24 Acoustic guitar (nylon); 25 Acoustic guitar (steel); 26 Electric guitar (jazz); 32 Acoustic bass; 33 Electric bass (finger); 40 Violin; 41 Viola; 42 Cello; 46 Orchestral harp; 47 Timpani; 48 String ensemble 1; 56 Trumpet; 57 Trombone; 71 Clarinet; 73 Flute; 79 Ocarina; 80 Square Lead; 81 Sawtooth Lead; 94 Halo Pad; 104 Sitar; 105 Banjo; 118 Synth drum; 119 Reverse cymbal; 120 Guitar fret noise; 121 Breath noise; 122 Sea shore; 123 Bird tweet; 124 Telephone ring; 125 Helicopter; 126 Applause; 127 Gunshot 18

Tracce, canali e patch - MIDI -

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 (2 4 =16)! Data byte: 0xxxxxxx! xxxxxxx contiente il valore del parametro (2 7 =127) 25

La tassonomia dei messaggi Messaggi che riguardano un solo canale Channel Message Message Type System Message Messaggi che non riguardano un canale Channel Channel System System System Voice Mode Common Real Time Exclusive Message Message Message Message Message Che cosa deve suonare uno strumento Come si comporta uno strumento all arrivo del voice message Indirizzati a tutti i device nel sistema Codice di sincronizzazione tra i device Indirizzati a uno specifico device 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 MSB 6 5 4 3 2 1 0 Message type 1 0 0 0 Uno dei Note off 1 0 0 1 sedici canali: 4 bit Note on 1 0 1 0 (0..15) Aftertouch 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 Voice Message Channel Mode Message System Common Message System Real Time Message System Exclusive Message descrivono che cosa deve suonare uno strumento (eventi musicali) 29

Note On - Note Off! Si invia per attivare una nota! 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! 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! 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! 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! 2 data byte: variazione (14 bit) 35

Program Change! Per sintetizzatori multi-timbrici! Status byte: 1110nnnn! 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! 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 Key Down Polyphonic Aftertouch Control Change Program Change Channel Aftertouch Pitch Bend System Exclusive 8 ch key# vel 9 ch key# vel A ch key# press B ch ctrl# value C ch index# D ch press E ch lo 7 hi 7 F 0 F E DATA 39

Channel Mode Messages Message Type Channel Message System Message Channel Voice Message Channel Mode Message System Common Message System Real Time Message System Exclusive 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 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 Voice Message Channel Mode Message System Common Message System Real Time Message System Exclusive 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! 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 Voice Message Channel Mode Message System Common Message System Real Time Message messaggi comuni a tutto il sistema System Exclusive Message 47

Song Position Pointer! status byte: 1111 0010! 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 Voice Message Channel Mode Message System Common Message System Real Time Message messaggi di sincronizzazione tra i device System Exclusive Message 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! 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 Voice Message Channel Mode Message System Common Message System Real Time Message messaggi esclusivi per device speciali System Exclusive Message 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

Esempio Assunzione: una semiminima vale 1 sec (cioè 100 centesimi) L informazione tempo non è del protocollo MIDI Informazione aggiuntiva dell intervallo tra un messaggio e il successivo: il MIDI file Messaggio Bytes Tempo 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 NoteOn0 90 47 30 200 NoteOn1 91 43 30 200 NoteOff1 91 43 00 225 NoteOff0 90 47 00 250 NoteOn1 91 41 30 250 NoteOff1 91 41 00 275 NoteOn0 90 47 30 300 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! ID = tipo di chunk tipo lunghezza dati! 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! Recording! Soloing! Modifiche esecuzione! Key+ Vel+ Time+! 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 message System message Channel voice Channel mode System common System Real Time System Exclusive Note-on Note-off Key aftertouch Channel aftertouch Control change Pitch bend Local/remote keyboard control All notes off Reset all controllers Mode select Song position pointer Song select Tune request End system exclusive Quarter frame Midi clock Start Stop Continue Active sensing System reset Program change Bank select

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