(site sans réclame)
GNU/Linux  –  émulation MIDI  –  norme MIDI  –  Cont@ct  –  S'abonner

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, .ogg, mp3...), mais ils ont besoin d'un instrument MIDI (boîte de sons, expander, clavier avec banque de sons...) capable d'attribuer un son à chaque commande.

La puissance d'un PC actuel permet de lancer une application telle que Rosegarden, tout en produisant les sons lui-même 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 typeDIN 180° à 5 broches (de grosses fiches et prises rondes, mâle du côté cable). Les 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. 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

[su] apt-get 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'identifiant 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. De façon non-exhaustive (la touche [Alt-Gr] ne semble pas fonctionner):

( parenleft      ! exclam      é eacute
) parenright     " quotedbl    è egrave
< less           § section     à agrave
> greater        = equal       ç ccedilla
- minus          , comma       ù ugrave
+ plus           ; semicolon   etc.
@ at             : colon       & ampersand
' apostrophe     . period
/ slash          \ backslash   ` grave

La commande xev permet de trouver les noms des caractères à employer pour désigner les touches (troisième ligne, fin de la parenthèse). Merci à Bruno Duyé pour l'astuce, qui vous offre en prime le .vkeybdmap du clavier français.

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. Il existe deux types d'extension à la norme MIDI:

2.1 Instruments GM

PianosXylophonesOrguesGuitares
x00Acoustiquex08Célestax10Hammondx18Cordes en Nylon
x01Brillantx09Glockenspielx11Percussivex19Cordes en acier
x02Électriquex0ABoîte à musique   x12Rockx1AJazz
x03Bastringuex0BVibraphonex13Églisex1BClaire
x04Électrique 1x0CMarimbax14Harmoniumx1CÉtouffée
x05Électrique 2x0DXylophonex15Accordéonx1DSaturée
x06Clavecinx0ETubular bellsx16Harmonicax1EDistortion
x07Clavinettex0FDulcimerx17Bandonéonx1FHarmoniques
BassesCordesOrchestreCuivres
x20Acoustiquex28Violonx30Cordes 1x38Trompette
x21Au doigtx29Altox31Cordes 2x39Trombone
x22Au plectrex2ACellox32Synthé 1x3ATuba
x23Fretlessx2BContrebassex33Synthé 2x3BTrompette bouchée
x24Slap 1x2CSection trémolox34Choeur Ahx3CCor d'harmonie
x25Slap 2x2DSection pizzicatox35Choeur Ohx3DSection
x26Synthé 1x2ESectionx36Voixx3ESynthé 1
x27Synthé 2x2FTimbalesx37Coupsx3FSynthé 2
AnchesFlûtesPrimitivesSynthés
x40Sax soprano   x48Piccolox50Ondes carréesx58New Age
x41Sax altox49Flûtex51Dent de sciex59Chaud
x42Sax ténorx4APlûte à becx52Calliopex5APoly
x43Sax barytonx4BFlûte de Panx53Chiffx5BChoeur
x44Hautboisx4CBouteillex54Charangx5CArchet
x45Cor anglaisx4DSakuhachix55Voixx5DMétallique
x46Bassonx4ESiffletx56Quintesx5EHalo
x47Clarinettex4FOcarinax57Bass+Leadx5FSweep
SynthésEthniquesPercussionsEffets
x60Pluiex68Sitarx70Clochex78Bruit de guitare
x61Soundtrackx69Banjox71Agogox79Respiration
x62Cristalx6AShamisenx72Steel drumx7APlage
x63Atmosphèrex6BKotox73Woodblockx7BCui-cui
x64Brillancex6CKalimbax74Taikox7CTéléphone
x65Goblinsx6DCornemusex75Tomx7DHélicoptère
x66Échox6EViolex76Synthéx7EApplaudissements
x67SFx6FShanaix77Cymbale inverse   x7FRevolver

2.2 Batterie GM

Il existe un canal (#10) réservé à la batterie. Par souci d'adaptation aux claviers moyens, les 58 sons se répartissent du Eb2 au C7: il est possible de jouer de la batterie au clavier.

La traduction des percussions est empruntée à l'article General MIDI de Wikipedia.

x28E3Caisse claire 2x38Cencerro ou Cowbell   x48C6Sifflet grave
x29F3Tom basse gravex39A4Crash 2x49Guiro court
x2ACharley frappéx3AVibraslapx4AD6Guiro long
x1BBalaisx2BG3Tom basse aigux3BB4Cymbale ride aiguex4BClaves
x1CE2Roulement de balaisx2CCharley au piedx3CC5Bongo aigux4CE6Woodblock aigu
x1DF2Roulement de caisse claire   x2DA3Tom médium 4x3DBongo gravex4DF6Woodblock grave
x1ECastagnettesx2ECharley ouvertx3ED5Congas aigu sourdx4ECuica assourdie
x1FG2Caisse claire 0x2FB3Tom médium 3x3FCongas aigu ouvertx4FG6Cuica ouverte
x20Coup de baguettex30C4Tom médium 2x40E5Congas gravex50Triangle tenu
x21A2Grosse caisse 0x31Cymbale crashx41F5Timbales aigux51A6Triangle libre
x22Caisse claire avec rimshotx32D4Tom aigux42Timbales gravex52Shaker
x23B2Grosse caisse médiumx33Ridex43G5Cloche agogo aiguëx53B6Grappe de clochettes
x24C3Grosse caisse hautex34E4Cymbale chinax44Cloche agogo gravex54C7Arbre à cloches
x25Coup de métronomex35F4Cymbale ride/cup   x45A5Cabasa
x26D3Caisse claire 1x36Tambourinx46Maracas
x27Claquement de mainx37G4Cymbale splashx47B5Sifflet aigu

3. Autres ressources

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