Le MIDI et General MIDI
LE MIDI est une technologie permettant de piloter des instruments de musique électroniques avec des fichiers contenant des commandes de type «Tempo : 600000µs; Canal 1 : instrument 37; Canal 1 : début de note 57, vélocité 67; délai : croche; fin de note 67, vélocité 76…". Les fichiers MIDI, qui contiennent ces informations, sont ainsi bien plus courts que les fichiers sonores WAV stéréo 16bits/44 100, où chaque seconde est codée en 176400 octets, (la compression .ogg ou mp3 réduisant ce poids d'un facteur 10), mais ils ont besoin d'un instrument MIDI (boîte de sons, expander, clavier avec banque de sons…) capable de produire un son à chaque note déclenchée.
Cette page explique le minimum à connaître sur un système GNU/Linux (ligne de commande, système de fichiers…)
La puissance d'un PC actuel permet de lancer une application telle que Rosegarden, tout en produisant lui-même les sons comme s'il était l'instrument MIDI : c'est ce qu'on appelle l'émulation MIDI.
Le serveur Jack (paquet jackd) est automatiquement installé avec le logiciel rosegarden. Il permet la communication entre les différentes entrées et sorties MIDI et est utilisé par les applications dont il est question ici.
1. Connectique
En général, si jack est présent et bien configuré, un logiciel MIDI comme rosegarden détectera le périphérique lorsqu'il sera correctement raccordé et le proposera dans Studio» Gérer les périphériques MIDI. Il faudra éventuellement cocher le Oui du Midi input system Device et préciser le clavier proposé, éventuellement en duplex si le clavier contient de plus une boîte de son.
Il ne sera pas question ici des raccordements aux vieilles interfaces série 9DB ou 25DB (COM), ni firewire.
1.1 Connexion DIN-5
La sortie MIDI historique des appareils du début des années '80 est du type DIN 180° à 5 broches (de grosses fiches et prises rondes, mâle du côté cable). L'Atari ST en possédait d'origine à sa sortie en 1985, ce qui a contribué à son succès.
Il existait des câbles se connectant par le port joystick sur compatibles IBM/PC (selon la dénomination d'époque), mais ce dernier est de plus en plus rare, les joysticks modernes étant connectés sur un port USB ou par BlueTooth. Actuellement, certaines cartes son ont encore des prises MIDI, micro et sorties Cinch.
- La broche 4 reçoit le signal (MIDI-IN) ou l'émet (MIDI-OUT et THRU), le 5 est le retour
- La broche 2 est mise à la masse pour MIDI-OUT et MIDI-THRU, inutilisée pour MIDI-IN
- Les broches 1 et 3 sont inutilisées
2 5 o 4 o o 3 o o 1
1.2 Claviers USB
Les instruments et ordinateurs actuels utilisent les connecteurs USB, ce qui simplifie les choses : il suffit de brancher le clavier ou la boîte de son (expander) avec un cable USB et laisser le temps au système d'exploitation de reconnaître le matériel.
1.3 Connexion DIN-USB
Pour utiliser des instruments MIDI à connecteur DIN, il existe des boîtiers convertisseurs qui permettent le raccordement de claviers disposant des sorties DIN à un port USB d'ordinateur. Les Midisport sont de ce type, mais requièrent le driver fxload.
- Midisport 1X1 ou 2X2 doivent être raccordés au clavier par un câble avec connecteurs DIN des deux côtés.
- Midisport Uno 1X1 est livré raccordé d'origine au câble DIN pour le clavier.
Certains de ces boîtiers sont parfois tellement réduits qu'ils ressemblent à une grosse clé USB, comme le CME U2MIDI v2, qui ne requiert pas de driver. Attention : la fiche «IN» du câble s'introduit dans la prise «OUT» du clavier, et vice-versa.
1.4 Clavier virtuel
global keymap set keymap { {a 0} {eacute 1} {z 2} {quotedbl 3} {e 4} {r 5} {parenleft 6} {t 7} {section 8} {y 9} {egrave 10} {u 11} {i 12} {ccedilla 13} {o 14} {agrave 15} {p 16} {less 17} {q 18} {w 19} {s 20} {x 21} {d 22} {c 23} {v 24} {g 25} {b 26} {h 27} {n 28} {comma 29} {k 30} {semicolon 31} {l 32} {colon 33} {m 34} {equal 35} }
Il est possible d'utiliser un logiciel d'édition MIDI sans clavier, à condition d'utiliser l'éditeur de partition (score) ou l'éditeur matriciel (roll-paper). Il existe également une méthode, celle du clavier midi virtuel, composé des touches du clavier de l'ordinateur. Pour Debian, c'est
#apt install vkeybdEn mode super-utilisateur : su - [Enter]
Le second menu est intéressant, il permet de décaler les trois octaves vers le haut ou vers le bas, de préciser la vélocité (force), le canal, la profondeur du vibrato, le timbre.
Dans rosegarden, il faudra cocher le Oui du Midi input system Device dans le menu Studio» Gérer les périphériques MIDI et préciser xxx:0 Virtual Keyboard (read).
Pour utiliser directement le serveur de son (par exemple FluidSynth), lancer Jack, bouton Connect» Audio/MIDI/ALSA et établir la connexion en cliquant à gauche sur Virtual Keyboard, à droite sur FluidSynth et enfin sur le bouton Connect.
Il faut que la fenêtre du clavier virtuel soit active pour que les impulsions soient détectées : après le lancement de l'enregistrement du séquenceur, survoler ou cliquer (selon le mode d'activation des fenêtres) la fenêtre vkeybd.
La disposition des touches par défaut est celle du clavier qwerty-us. Pour l'adapter au clavier azerty-be, il faudra éditer le fichier caché .vkeybdmap (pour l'utilisateur toto, c'est /home/toto/.vkeybdmap). Le paramètrage donné en exemple permet de caser les trois octaves qu'offre vkeybd sur un clavier azerty belge de 105 touches (< à gauche du W) :
Si vous avez un autre clavier à adapter, il vous faudra peut-être d'autres codes (si les touches ne représentent pas un caractère ASCII : entre 32 et 127 inclus, ou { et }?). De façon non-exhaustive :
( parenleft ! exclam ` grave (egrave agrave ugrave) ) parenright " quotedbl ´ acute (eacute) < less § section ˆ circumfl { braceleft > greater = equal ¨ diaresis } braceright - minus , comma ç ccedilla …et Return + plus ; semicolon & ampersand BackSpace @ at : colon % percent Delete ' apostrophe . period µ mu Shift_L / slash \ backslash £ sterling Shift_R
La commande xev (du paquet x11-utils) permet de trouver les noms des caractères à employer pour désigner les touches (troisième ligne, deuxième terme de la parenthèse).
2. General MIDI
La norme General Midi assigne un instrument bien défini à chaque "programme" ou "patch", ce qui harmonise les sons associés aux événements MIDI : un quatuor à cordes chez l'un ne devient pas une fanfare chez l'autre.
2.1 Instruments GM
Pianos | Xylophones | Orgues | Guitares | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | x00 | Acoustique | 8 | x08 | Célesta | 16 | x10 | Hammond | 24 | x18 | Cordes en Nylon | |||
1 | x01 | Brillant | 9 | x09 | Glockenspiel | 17 | x11 | Percussive | 25 | x19 | Cordes en acier | |||
2 | x02 | Électrique | 10 | x0A | Boîte à musique | 18 | x12 | Rock | 26 | x1A | Jazz | |||
3 | x03 | Bastringue | 11 | x0B | Vibraphone | 19 | x13 | Église | 27 | x1B | Claire | |||
4 | x04 | Électrique 1 | 12 | x0C | Marimba | 20 | x14 | Harmonium | 28 | x1C | Étouffée | |||
5 | x05 | Électrique 2 | 13 | x0D | xylophone | 21 | x15 | Accordéon | 29 | x1D | Saturée | |||
6 | x06 | Clavecin | 14 | x0E | Tubular bells | 22 | x16 | Harmonica | 30 | x1E | Distortion | |||
7 | x07 | Clavinette | 15 | x0F | Dulcimer | 23 | x17 | Bandonéon | 31 | x1F | Harmoniques | |||
Basses | Cordes | Orchestre | Cuivres | |||||||||||
32 | x20 | Acoustique | 40 | x28 | Violon | 48 | x30 | Cordes 1 | 56 | x38 | Trompette | |||
33 | x21 | Au doigt | 41 | x29 | Alto | 49 | x31 | Cordes 2 | 57 | x39 | Trombone | |||
34 | x22 | Au plectre | 42 | x2A | Cello | 50 | x32 | Synthé 1 | 58 | x3A | Tuba | |||
35 | x23 | Fretless | 43 | x2B | Contrebasse | 51 | x33 | Synthé 2 | 59 | x3B | Trompette bouchée | |||
36 | x24 | Slap 1 | 44 | x2C | Section trémolo | 52 | x34 | Chœur «Aah!» | 60 | x3C | Cor d'harmonie | |||
37 | x25 | Slap 2 | 45 | x2D | Section pizzicato | 53 | x35 | Chœur «Ooh!» | 61 | x3D | Section | |||
38 | x26 | Synthé 1 | 46 | x2E | Section | 54 | x36 | Voix | 62 | x3E | Synthé 1 | |||
39 | x27 | Synthé 2 | 47 | x2F | Timbales | 55 | x37 | Coups | 63 | x3F | Synthé 2 | |||
Anches | Flûtes | Primitives | Synthés | |||||||||||
64 | x40 | Sax soprano | 72 | x48 | Piccolo | 80 | x50 | Ondes carrées | 88 | x58 | New Age | |||
65 | x41 | Sax alto | 73 | x49 | Flûte | 81 | x51 | Dent de scie | 89 | x59 | Chaud | |||
66 | x42 | Sax ténor | 74 | x4A | Plûte à bec | 82 | x52 | Calliope | 90 | x5A | Poly | |||
67 | x43 | Sax baryton | 75 | x4B | Flûte de Pan | 83 | x53 | Chiff | 91 | x5B | Chœur | |||
68 | x44 | Hautbois | 76 | x4C | Bouteille | 84 | x54 | Charang | 92 | x5C | Archet | |||
69 | x45 | Cor anglais | 77 | x4D | Sakuhachi | 85 | x55 | Voix | 93 | x5D | Métallique | |||
70 | x46 | Basson | 78 | x4E | Sifflet | 86 | x56 | Quintes | 94 | x5E | Halo | |||
71 | x47 | Clarinette | 79 | x4F | Ocarina | 87 | x57 | Bass+Lead | 95 | x5F | Sweep | |||
Synthés | Ethniques | Percussions | Effets | |||||||||||
96 | x60 | Pluie | 104 | x68 | Sitar | 112 | x70 | Cloche | 120 | x78 | Bruit de guitare | |||
97 | x61 | Soundtrack | 105 | x69 | Banjo | 113 | x71 | Agogo | 121 | x79 | Respiration | |||
98 | x62 | Cristal | 106 | x6A | Shamisen | 114 | x72 | Steel drum | 122 | x7A | Plage | |||
99 | x63 | Atmosphère | 107 | x6B | Koto | 115 | x73 | Woodblock | 123 | x7B | Cui-cui | |||
100 | x64 | Brillance | 108 | x6C | Kalimba | 116 | x74 | Taiko | 124 | x7C | Téléphone | |||
101 | x65 | Goblins | 109 | x6D | Cornemuse | 117 | x75 | Tom | 125 | x7D | Hélicoptère | |||
102 | x66 | Écho | 110 | x6E | Viole | 118 | x76 | Synthé | 126 | x7E | Applaudissements | |||
103 | x67 | SF | 111 | x6F | Shanai | 119 | x77 | Cymbale inverse | 127 | x7F | Revolver |
2.2 Batterie GM
Il existe un canal (#10) réservé à la batterie, ce qui permet d'en jouer au clavier. Par souci d'adaptation aux claviers restreints, les 58 sons se répartissent du Eb2 au C7.
La traduction des percussions est empruntée à l'article General MIDI de Wikipedia.
40 | x28 | E3 | Caisse claire 2 | 56 | x38 | Cencerro ou Cowbell | 72 | x48 | C6 | Sifflet grave | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
41 | x29 | F3 | Tom basse grave | 57 | x39 | A4 | Crash 2 | 73 | x49 | Guiro court | ||||||||
42 | x2A | Charley frappé | 58 | x3A | Vibraslap | 74 | x4A | D6 | Guiro long | |||||||||
27 | x1B | Balais | 43 | x2B | G3 | Tom basse aigu | 59 | x3B | B4 | Cymbale ride aigue | 75 | x4B | Claves | |||||
28 | x1C | E2 | Roulement de balais | 44 | x2C | Charley au pied | 60 | x3C | C5 | Bongo aigu | 76 | x4C | E6 | Woodblock aigu | ||||
29 | x1D | F2 | Roulement de caisse claire | 45 | x2D | A3 | Tom médium 4 | 61 | x3D | Bongo grave | 77 | x4D | F6 | Woodblock grave | ||||
30 | x1E | Castagnettes | 46 | x2E | Charley ouvert | 62 | x3E | D5 | Congas aigu sourd | 78 | x4E | Cuica assourdie | ||||||
31 | x1F | G2 | Caisse claire 0 | 47 | x2F | B3 | Tom médium 3 | 63 | x3F | Congas aigu ouvert | 79 | x4F | G6 | Cuica ouverte | ||||
32 | x20 | Coup de baguette | 48 | x30 | C4 | Tom médium 2 | 64 | x40 | E5 | Congas grave | 80 | x50 | Triangle tenu | |||||
33 | x21 | A2 | Grosse caisse 0 | 49 | x31 | Cymbale crash | 65 | x41 | F5 | Timbales aigu | 81 | x51 | A6 | Triangle libre | ||||
34 | x22 | Caisse claire avec rimshot | 50 | x32 | D4 | Tom aigu | 66 | x42 | Timbales grave | 82 | x52 | Shaker | ||||||
35 | x23 | B2 | Grosse caisse médium | 51 | x33 | Ride | 67 | x43 | G5 | Cloche agogo aiguë | 83 | x53 | B6 | Grappe de clochettes | ||||
36 | x24 | C3 | Grosse caisse haute | 52 | x34 | E4 | Cymbale china | 68 | x44 | Cloche agogo grave | 84 | x54 | C7 | Arbre à cloches | ||||
37 | x25 | Coup de métronome | 53 | x35 | F4 | Cymbale ride/cup | 69 | x45 | A5 | Cabasa | ||||||||
38 | x26 | D3 | Caisse claire 1 | 54 | x36 | Tambourin | 70 | x46 | Maracas | |||||||||
39 | x27 | Claquement de main | 55 | x37 | G4 | Cymbale splash | 71 | x47 | B5 | Sifflet aigu |
2.3 Extensions
Il existe trois extensions à la norme General-MIDI :
- la norme (compatible) GS de Roland (1991), où une donnée supplémentaire précise une variante de l'instrument General Midi.
- la norme XG de Yamaha (1994), également compatible avec la norme General Midi mais pas avec la GS.
- la norme General Midi 2 (1999), également compatible avec la norme General Midi mais pas avec les deux précédentes.
3. Autres ressources
http://www.linuxmao.org/ (.fr)
http://linux-sound.org/ (.en)