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

1.1 Connexion DIN-5
1.2 Connexion USB
1.3 Connexion DIN-USB
1.4 Clavier virtuel

2. General MIDI

2.1 Instruments GM
2.2 Batterie GM
2.3 Extensions

3. Ressources externes

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.

        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.

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

#En mode super-utilisateur : su - [Enter] apt install vkeybd

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) :

clavier belge pour vkeybd

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

PianosXylophonesOrguesGuitares
0x00Acoustique8x08Célesta16x10Hammond24x18Cordes en Nylon
1x01Brillant9x09Glockenspiel17x11Percussive25x19Cordes en acier
2x02Électrique10x0ABoîte à musique18x12Rock26x1AJazz
3x03Bastringue11x0BVibraphone19x13Église27x1BClaire
4x04Électrique 112x0CMarimba20x14Harmonium28x1CÉtouffée
5x05Électrique 213x0Dxylophone21x15Accordéon29x1DSaturée
6x06Clavecin14x0ETubular bells22x16Harmonica30x1EDistortion
7x07Clavinette15x0FDulcimer23x17Bandonéon31x1FHarmoniques
BassesCordesOrchestreCuivres
32x20Acoustique40x28Violon48x30Cordes 156x38Trompette
33x21Au doigt41x29Alto49x31Cordes 257x39Trombone
34x22Au plectre42x2ACello50x32Synthé 158x3ATuba
35x23Fretless43x2BContrebasse51x33Synthé 259x3BTrompette bouchée
36x24Slap 144x2CSection trémolo52x34Chœur «Aah!»60x3CCor d'harmonie
37x25Slap 245x2DSection pizzicato53x35Chœur «Ooh!»61x3DSection
38x26Synthé 146x2ESection54x36Voix62x3ESynthé 1
39x27Synthé 247x2FTimbales55x37Coups63x3FSynthé 2
AnchesFlûtesPrimitivesSynthés
64x40Sax soprano72x48Piccolo80x50Ondes carrées88x58New Age
65x41Sax alto73x49Flûte81x51Dent de scie89x59Chaud
66x42Sax ténor74x4APlûte à bec82x52Calliope90x5APoly
67x43Sax baryton75x4BFlûte de Pan83x53Chiff91x5BChœur
68x44Hautbois76x4CBouteille84x54Charang92x5CArchet
69x45Cor anglais77x4DSakuhachi85x55Voix93x5DMétallique
70x46Basson78x4ESifflet86x56Quintes94x5EHalo
71x47Clarinette79x4FOcarina87x57Bass+Lead95x5FSweep
SynthésEthniquesPercussionsEffets
96x60Pluie104x68Sitar112x70Cloche120x78Bruit de guitare
97x61Soundtrack105x69Banjo113x71Agogo121x79Respiration
98x62Cristal106x6AShamisen114x72Steel drum122x7APlage
99x63Atmosphère107x6BKoto115x73Woodblock123x7BCui-cui
100x64Brillance108x6CKalimba116x74Taiko124x7CTéléphone
101x65Goblins109x6DCornemuse117x75Tom125x7DHélicoptère
102x66Écho110x6EViole118x76Synthé126x7EApplaudissements
103x67SF111x6FShanai119x77Cymbale inverse127x7FRevolver

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.

40x28E3Caisse claire 256x38Cencerro ou Cowbell72x48C6Sifflet grave
41x29F3Tom basse grave57x39A4Crash 273x49Guiro court
42x2ACharley frappé58x3AVibraslap74x4AD6Guiro long
27x1BBalais43x2BG3Tom basse aigu59x3BB4Cymbale ride aigue75x4BClaves
28x1CE2Roulement de balais44x2CCharley au pied60x3CC5Bongo aigu76x4CE6Woodblock aigu
29x1DF2Roulement de caisse claire45x2DA3Tom médium 461x3DBongo grave77x4DF6Woodblock grave
30x1ECastagnettes46x2ECharley ouvert62x3ED5Congas aigu sourd78x4ECuica assourdie
31x1FG2Caisse claire 047x2FB3Tom médium 363x3FCongas aigu ouvert79x4FG6Cuica ouverte
32x20Coup de baguette48x30C4Tom médium 264x40E5Congas grave80x50Triangle tenu
33x21A2Grosse caisse 049x31Cymbale crash65x41F5Timbales aigu81x51A6Triangle libre
34x22Caisse claire avec rimshot50x32D4Tom aigu66x42Timbales grave82x52Shaker
35x23B2Grosse caisse médium51x33Ride67x43G5Cloche agogo aiguë83x53B6Grappe de clochettes
36x24C3Grosse caisse haute52x34E4Cymbale china68x44Cloche agogo grave84x54C7Arbre à cloches
37x25Coup de métronome53x35F4Cymbale ride/cup69x45A5Cabasa
38x26D3Caisse claire 154x36Tambourin70x46Maracas
39x27Claquement de main55x37G4Cymbale splash71x47B5Sifflet aigu

2.3 Extensions

Il existe trois extensions à la norme General-MIDI :

3. Autres ressources

http://www.linuxmao.org/ (.fr)
http://linux-sound.org/ (.en)