General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

30
General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Transcript of General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Page 1: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

General MIDI

Lezione 11

Programmazione MIDI (Prof. Luca A. Ludovico)

Page 2: General MIDI Lezione 11 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

Page 3: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Esempio

• Collegamento di 2 sintetizzatori:– tastiera Yamaha DX-7– modulo sonoro EMU Proteus XR

• Invio di un messaggio di ProgramChange, di valore 32

• Sul DX-7 corrisponde a timbro di basso, ma sul Proteus?

• 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

Yamaha DX-7

MIDI In

EMU Proteus XR

MIDI Out

Page 4: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 5: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 6: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 7: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella delle famiglie dei timbri GM

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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 PadSintetizzatori (suoni d'accompagnamento)

97 ÷ 104 Synth Effects Effetti sintetizzati

105 ÷ 112 Ethnic Strumenti etnici

113 ÷ 120 Percussive Percussioni

121 ÷ 128 Sound Effects Effetti sonori

Page 8: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella dei timbri GM (pianoforti e percussioni)

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 9: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella dei timbri GM (organi e chitarre)

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 10: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella dei timbri GM (bassi e archi)

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 11: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella dei timbri GM (ensemble e ottoni)

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 12: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella dei timbri GM (strumenti ad ancia e fiati)

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 13: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella dei timbri GM (synth principali e d ’accompagnamento)

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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)

Page 14: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella dei timbri GM (effetti sintetizzati e suoni etnici)

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 15: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Tabella dei timbri GM (percussioni ed effetti sonori)

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 16: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 17: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 18: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 19: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Mappa della batteria GM 1/3

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 20: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Mappa della batteria GM 2/3

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 21: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

Mappa della batteria GM 3/3

Programmazione MIDI (Prof. Luca A. Ludovico)11. General MIDI

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

Page 22: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 23: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 24: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 25: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 26: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 27: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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] TR-808 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

Page 28: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 29: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 30: General MIDI Lezione 11 Programmazione MIDI (Prof. Luca A. Ludovico)

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