Lezione 11 General MIDI Programmazione MIDI (Prof. Luca A. Ludovico) Prospettiva storica • Nei primi anni ‘80 nasce lo standard MIDI 1.0 • Carenze: – – Non esiste set di patch standard Non vi sono specifiche per gli strumenti multitimbrici • Nel 1991 MMA (Midi Manufacturers Association) e JMSC (Japan MIDI Standard Committee) emanano le specifiche chiamate General MIDI System Level 1, o GM • GM è stato integrato nelle specifiche MIDI 2.0 Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Esempio • Collegamento di 2 sintetizzatori: – – tastiera Yamaha DX-7 modulo sonoro EMU Proteus XR • Invio di un messaggio di Program Change, di valore 32 • Sul DX-7 corrisponde a timbro di basso, ma sul Proteus? MIDI Out Yamaha DX-7 MIDI In EMU Proteus XR • In assenza di uno standard, due moduli sonori MIDI non hanno lo stesso elenco di timbri, come numero, tipologia e ordine. Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI General MIDI • Un dispositivo GM compatibile deve aderire ai requisiti General MIDI System Level 1 • General MIDI è una prassi consigliata per i costruttori, ma non vincolante • Contesti d’uso: – – – Hobby, applicazioni semi-professionali Distribuzione e scambio di brani NON produzione di suoni, perché non potrebbero essere salvati al di fuori dei 128 program predefiniti GM Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Le patch General MIDI • GM definisce un elenco di timbri (detti program o patch) • GM non definisce con precisione le forme d’onda, che restano a discrezione del costruttore. Piuttosto, si cerca di creare un bank di suoni di buona qualità e aderenti allo standard GM • Conseguenza: due diversi moduli sonori, entrambi GM, possono avere nette discrepanze nelle prestazioni e nella qualità della performance di uno stesso brano Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Organizzazione dei timbri GM • Standard comune a tutti i dispositivi GM compatibili • 128 preset timbrici, numerati da 0 a 127 • 16 famiglie, ciascuna fatta di 8 preset • Lo standard prevede timbri acustici, elettronici, percussivi ed effetti sonori • Sono inclusi i timbri e gli effetti più comuni, ma l’elenco non è esaustivo Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella delle famiglie dei timbri GM PC# Famiglia (eng) Famiglia (ita) 1÷8 Piano Pianoforti 9 ÷ 16 Chromatic Percussion Strumenti cromatici a percussione 17 ÷ 24 Organ Organi 25 ÷ 32 Guitar Chitarre 33 ÷ 40 Bass Bassi 41 ÷ 48 Strings Strumenti ad arco 49 ÷ 56 Ensemble Ensemble 57 ÷ 64 Brass Ottoni 65 ÷ 72 Reed Strumenti ad ancia 73 ÷ 80 Pipe Strumenti a fiato 81 ÷ 88 Synth Lead Sintetizzatori (suoni guida) 89 ÷ 96 Synth Pad Sintetizzatori (suoni d'accompagnamento) 97 ÷ 104 Synth Effects Effetti sintetizzati 105 ÷ 112 Ethnic Strumenti etnici 113 ÷ 120 Percussive Percussioni 121 ÷ 128 Sound Effects Effetti sonori Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella dei timbri GM (pianoforti e percussioni) PC# Strumento (eng) Strumento (ita) 1 Acoustic Grand Piano Gran piano Acustico 2 Bright Acoustic Piano Piano acustico brillante 3 Electric Grand Piano Gran Piano Elettrico 4 Honky-tonk Piano Piano honty-tonk 5 Electric Piano 1 Piano elettrico 1 6 Electric Piano 2 Piano elettrico 2 7 Harpsichord Clavicembalo 8 Clavinet Clavicordo 9 Celesta Celesta 10 Glockenspiel Campanelli 11 Music Box Music Box 12 Vibraphone Vibrafono 13 Marimba Marimba 14 Xylophone Xylofono 15 Tubular Bells Campane tubolari 16 Dulcimer Dulcimer Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella dei timbri GM (organi e chitarre) PC# Strumento (eng) Strumento (ita) 17 Drawbar Organ Organetto 18 Percussive Organ Organo a percussione 19 Rock Organ Organo rock 20 Church Organ Organo da chiesa 21 Reed Organ Organo ad ancia 22 Accordion Fisarmonica 23 Harmonica Armonica 24 Tango Accordion Fisarmonica da tango 25 Acoustic Guitar (nylon) Chitarra acustica (corde in nylon) 26 Acoustic Guitar (steel) Chitarra acustica (corde in acciaio) 27 Electric Guitar (jazz) Chitarra jazz 28 Electric Guitar (clean) Chitarra elettrica (suono neutro) 29 Electric Guitar (muted) Chitarra elettrica (stoppata) 30 Overdriven Guitar Chitarra con overdrive 31 Distortion Guitar Chitarra distorta 32 Guitar harmonics Chitarra armonnica Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella dei timbri GM (bassi e archi) PC# Strumento (eng) Strumento (ita) 33 Acoustic Bass Basso acustico 34 Electric Bass (finger) Basso elettrico (pizzicato) 35 Electric Bass (pick) Basso elettrico (a plettro) 36 Fretless Bass Basso senza tasti 37 Slap Bass 1 Basso slappato 1 38 Slap Bass 2 Basso slappato 2 39 Synth Bass 1 Basso sintetizzato 1 40 Synth Bass 2 Basso sintetizzato 2 41 Violin Violino 42 Viola Viola 43 Cello Violoncello 44 Contrabass Contrabbasso 45 Tremolo Strings Tremolo d’archi 46 Pizzicato Strings Pizzicato d’archi 47 Orchestral Harp Arpa 48 Timpani Timpani Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella dei timbri GM (ensemble e ottoni) PC# Strumento (eng) Strumento (ita) 49 String Ensemble 1 Ensemble di archi 1 50 String Ensemble 2 Ensemble di archi 2 51 SynthStrings 1 Archi sintetizzati 1 52 SynthStrings 2 Archi sintetizzati 2 53 Choir Aahs Coro "Aahs" 54 Voice Oohs Voci "Oohs" 55 Synth Voice Voce sintetizzata 56 Orchestra Hit Colpo d'orchestra 57 Trumpet Trombe 58 Trombone Trombone 59 Tuba Tuba 60 Muted Trumpet Tromba con sordina 61 French Horn Corno 62 Brass Section Ensemble di ottoni 63 SynthBrass 1 Tromba sintetizzata 1 64 SynthBrass 2 Tromba sintetizzata 2 Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella dei timbri GM (strumenti ad ancia e fiati) PC# Strumento (eng) Strumento (ita) 65 Soprano Sax Sassofono soprano 66 Alto Sax Sassofono alto 67 Tenor Sax Sassofono tenore 68 Baritone Sax Sassofono baritono 69 Oboe Oboe 70 English Horn Corno inglese 71 Bassoon Fagotto 72 Clarinet Clarinetto 73 Piccolo Ottavino 74 Flute Flauto 75 Recorder Recorder 76 Pan Flute Flauto di Pan 77 Blown Bottle Soffio nella bottiglia 78 Shakuhachi Shakuhachi 79 Whistle Fischio 80 Ocarina Ocarina Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella dei timbri GM (synth principali e d’accompagnamento) PC# Strumento (eng) Strumento (ita) 81 Lead 1 (square) Suoni guida 1 (square) 82 Lead 2 (sawtooth) Suoni guida 2 (sawtooth) 83 Lead 3 (calliope) Suoni guida 3 (calliope) 84 Lead 4 (chiff) Suoni guida 4 (chiff) 85 Lead 5 (charang) Suoni guida 5 (charang) 86 Lead 6 (voice) Suoni guida 6 (voice) 87 Lead 7 (fifths) Suoni guida 7 (fifths) 88 Lead 8 (bass + lead) Suoni guida 8 (bass + lead) 89 Pad 1 (new age) Pad 1 (new age) 90 Pad 2 (warm) Pad 2 (warm) 91 Pad 3 (polysynth) Pad 3 (polysynth) 92 Pad 4 (choir) Pad 4 (choir) 93 Pad 5 (bowed) Pad 5 (bowed) 94 Pad 6 (metallic) Pad 6 (metallic) 95 Pad 7 (halo) Pad 7 (halo) 96 Pad 8 (sweep) Pad 8 (sweep) Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella dei timbri GM (effetti sintetizzati e suoni etnici) PC# Strumento (eng) Strumento (ita) 97 FX 1 (rain) FX 1 (pioggia) 98 FX 2 (soundtrack) FX 2 (colonna sonora) 99 FX 3 (crystal) FX 3 (cristallino) 100 FX 4 (atmosphere) FX 4 (atmosfera) 101 FX 5 (brightness) FX 5 (luminoso) 102 FX 6 (goblins) FX 6 (goblin) 103 FX 7 (echoes) FX 7 (eco) 104 FX 8 (sci-fi) FX 8 (sci-fi) 105 Sitar Sitar 106 Banjo Banjo 107 Shamisen Shamisen 108 Koto Koto 109 Kalimba Kalimba 110 Bag pipe Cornamusa 111 Fiddle Fiddle 112 Shanai Shanai Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Tabella dei timbri GM (percussioni ed effetti sonori) PC# Strumento (eng) Strumento (ita) 113 Tinkle Bell Campana suonata 114 Agogo Agogo 115 Steel Drums Batteria con suono metallico 116 Woodblock Percussioni con legni 117 Taiko Drum Percussioni Taiko 118 Melodic Tom Tom da batteria 119 Synth Drum Percussione sintetizzata 120 Reverse Cymbal Cimbalo rovescio 121 Guitar Fret Noise Rumore di chitarra 122 Breath Noise Rumore del respiro 123 Seashore Onde del mare 124 Bird Tweet Canto di uccelli 125 Telephone Ring Trillo del telefono 126 Helicopter Elicottero 127 Applause Applauso 128 Gunshot Sparo Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Proprietà multitimbriche • Standard minimi per moduli sonori multitimbrici • Dispositivi GM consentono di suonare e registrare contemporaneamente fino a 16 canali MIDI • Ciascun canale supporta un numero variabile di voci (polifonia) e strumenti differenti (timbri) – Numero variabile di voci polifoniche a seconda del modello, ma esiste un numero minimo (vedi slide successiva) • Canale MIDI 10 riservato alle parti ritmiche e percussive Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Polifonia GM • Per assicurarsi che tutte le note registrate siano eseguite, standard minimi sul numero di voci di polifonia • Polifonia minima a 16 voci, assegnabili tutte a un solo canale così come una a ciascuno dei 16 canali – Rispettare la polifonia massima a 16 voci garantisce compatibilità con tutte le applicazioni e i dispositivi GM compatibili • Non esiste valore massimo, dipende dal modello – Esempi: Roland JV-1080 e Yamaha MU80 sono GM compatibili, ma supportano 64 voci di polifonia Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Numeri di nota e set di suoni percussivi (batteria GM) • Convenzione sui numeri di nota: 60 corrisponde al Do centrale (261,6 Hz), 69 al La centrale (440 Hz) • Per i suoni percussivi, GM riserva il canale MIDI 10 e assegna 48 numeri di nota MIDI ad altrettanti timbri • I suoni di batteria GM non fanno parte dei 128 program definiti nel bank GM, ma sono un set aggiuntivo presente su tutti i moduli sonori GM compatibili Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Mappa della batteria GM 1/3 Pitch Suono (eng) Suono (ita) 35 Acoustic Bass Drum Batteria acustica 36 Bass Drum 1 Cassa 37 Side Stick Bacchette 38 Acoustic Snare Acoustic Snare 39 Hand Clap Battito di mani 40 Electric Snare Electric Snare 41 Low Floor Tom Tom molto basso 42 Closed Hi Hat Hit Hat chiuso 43 High Floor Tom Tom molto alto 44 Pedal Hi Hat Hit Hat a pedale 45 Low Tom Tom basso 46 Open Hi Hat Hit Hat aperto 47 Low-Mid Tom Tom medio basso 48 Hi-Mid Tom Tom medio alto 49 Crash Cymbal 1 Crash 1 50 High Tom Tom alto Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Mappa della batteria GM 2/3 Pitch Suono (eng) Suono (ita) 51 Ride Cymbal 1 Ride Cymbal 1 52 Chinese Cymbal Chinese Cymbal 53 Ride Bell Campana 54 Tambourine Tamburello 55 Splash Cymbal Splash Cymbal 56 Cowbell Campanaccio 57 Crash Cymbal 2 Crash 2 58 Vibraslap Vibraslap 59 Ride Cymbal 2 Ride Cymbal 2 60 Hi Bongo Bongo alto 61 Low Bongo Bongo basso 62 Mute Hi Conga Conga stoppata alta 63 Open Hi Conga Conga aperta alta 64 Low Conga Conga bassa 65 High Timbale Timbalo alto 66 Low Timbale Timbalo basso Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Mappa della batteria GM 3/3 Pitch Suono (eng) Suono (ita) 67 High Agogo Agogo alto 68 Low Agogo Agogo basso 69 Cabasa Cabasa 70 Maracas Maracas 71 Short Whistle Fischio corto 72 Long Whistle Fischio lungo 73 Short Guiro Guiro corto 74 Long Guiro Guiro lungo 75 Claves Claves 76 Hi Wood Block Legni alti 77 Low Wood Blook Legni bassi 78 Mute Cuica Cuica stoppata 79 Open Cuica Cuica aperta 80 Mute triangle Triangolo stoppato 81 Open triangle Triangolo aperto Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Messaggi MIDI supportati • Per garantire la riproduzione corretta di un brano MIDI, ogni dispositivo GM deve essere in grado di rispondere ai seguenti messaggi MIDI – – – – – – – – Control Change 1 (Modulation Wheel) Control Change 7 (Channel Volume) Control Change 10 (Pan) Control Change 11 (Expression) Control Change 64 (Sustain) Control Change 121 (Reset All Controllers) Control Change 123 (All Notes Off) … Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI LABORATORIO 2 • Dimostrazione dei timbri GM con Program Change su Canale 1 • Modulazione tramite pitch dei timbri a suono non determinato • Esempio: telefono (125), applauso (127) • Significato dei pitch sul Canale 10 • Potenzialità XG dello Yamaha MU-80 Programmazione MIDI (Prof. Luca A. Ludovico) 7. Laboratorio 1 Altre caratteristiche standardizzate • Tutti i moduli GM devono rispondere alla velocity • L’intervallo della rotella di pitch bend di default è compreso nell’intervallo [-2..+2] semitoni • I moduli devono rispondere alla pressione del canale • Almeno un connettore MIDI In, un MIDI Out, un MIDI Thru • Accesso al controllo di volume master, 2 uscite audio (canale sx e dx) e un connettore per cuffie • All’accensione, tutti i livelli di volume del canale impostati a 99, controller ed effetti off, intonazione sul La a 440 Hz Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Ampliamento dello standard GM • Osservazioni sul GM da parte di alcuni produttori: bank di timbri troppo limitato • Versioni custom del GM – – Roland > GS Standard Yamaha > XG Standard • Sono superinsiemi dello standard GM, quindi: – – – Compatibilità totale Maggior numero di timbri Maggior numero di controlli sui parametri dei suoni • Come vengono veicolati i messaggi non supportati dallo standard MIDI? Tramite messaggi SysEx Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Roland GS • Aggiunge suoni e controller supplementari – Ad esempio, rapporto di inviluppo di attacco e di rilascio per i sintetizzatori • Bank di suoni aggiuntivi, tra cui variazioni del GM e simulazione del modulo sonoro Roland MT-32 • In ciascun bank, i suoni sono mappati come in GM: 128 timbri, però suddivisi in 8 famiglie • Se in un modulo GS giunge una richiesta per un bank di suoni o per un program che non esiste, il modulo lo riassegna automaticamente allo strumento principale della famiglia Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Esempi di aggiunte in Roland GS • 9 Drum kit aggiuntivi, accessibili da ogni canale tramite messaggi di Bank Select MSB [0] e LSB [32] [1] Standard Kit, [9] Room Kit, [17] Power Kit, [25] Electronic Kit, [26] TR808 Kit, [33] Jazz Kit, [41] Brush Kit, [49] Orchestra Kit, [57] Sound FX Kit, [128] CM-64/CM-32L • 14 note percussive aggiuntive [27] High Q, [28] Slap, [29] Scratch Push, [30] Scratch Pull, [31] Sticks, [32] Square Click, [33] Metronome Click, [34] Metronome Bell [35..81] valori predefiniti nel set di batteria GM [82] Shaker, [83] Jingle Bell, [84] Belltree, [85] Castanets, [86] Mute Surdo, [87] Open Surdo Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Yamaha XG • Aggiunge suoni e controller supplementari – Minimo 480 timbri a fronte dei 128 del GM • Bank di suoni aggiuntivi accessibili tramite messaggi di Bank Select MSB [0] e LSB [32] • Set di suoni predefinito in XG è diviso in 4 bank – – – – • Melody Voices SFX Voices (set di effetti sonori) SFX Kits (due set di effetti sonori aggiuntivi) Rhythm Kits (selezione di 9 kit di batteria e percussioni) Reinterpretazione dei numeri di control change già assegnati per ottenere maggior controllo sui timbri e maggior realismo – Esempio: parametro brightness (control change 74) e risposta alla velocity tramite uso di filtri Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Yamaha XG • Effetti applicabili ai suoni MIDI, sulla voce, sul canale o sul mixaggio generale: – – – – – Riverbero con differenti tipi di ambiente Chorus Effetti di spazializzazione Tremolo … • Presenza di ingressi audio, che permettono di utilizzare il dispositivo anche come processore di effetti sonori esterni. • I dispositivi XG hanno mixer digitale integrato. Programmazione MIDI (Prof. Luca A. Ludovico) 11. General MIDI Esercizi sul General MIDI • Domanda 1: Creare un messaggio di Program Change sul canale 2 per selezionare il timbro di xylofono (program 14 in GM) Soluzione: 1100nnnn 0ppppppp > 11000001 00001101 • Domanda 2: A cosa corrisponde il seguente comando MIDI in ambito GM? 10011001 00111100 01000000 Soluzione: in ambito non GM si tratterebbe di un Note On sul canale 10, con Pitch 60 (Do centrale) e Velocity 64; ma in GM il canale 10 è riservato ai suoni percussivi, quindi si tratta di un suono di Bongo alto con altezza non determinata e Velocity 64. Piè di pagina: spazio libero per eventuale nome struttura o altro