title: Astuces MIDI
date: 2013-08-24
tags: Musique MAO,Asrall,Geekeries,wine,東方 project,MIDI
url: astuces-midi
slug: astuces-midi

Quelques astuces en vrac pour le MIDI (Musical Instrument Digital Interface)
sous GNU/Linux, plus particulièrement avec ALSA (Jack Audio permet de mieux
gérer cela, mais ici, je veux de l'alsa "pur", sans surcouche).
Ça tient plus de l'aide mémoire que de tutoriels, vu que je cherche souvent
ces infos.

**Lister les interfaces (qui est connecté à quoi)**


   alex@yue ~> aconnect -lio
   client 0: 'System' [type=noyau]
       0 'Timer           '
       1 'Announce        '
       Connexion À: 15:0
   client 14: 'Midi Through' [type=noyau]
       0 'Midi Through Port-0'
       Connecté Depuis: 128:0
   client 24: 'USB Uno MIDI Interface' [type=noyau]
       0 'USB Uno MIDI Interface MIDI 1'


Ici, une appli (th08[1]) envoie des données midi vers "Midi Through Port-0" [2].



**Changer la sortie MIDI sous Wine.**

Je reprend l'exemple de th08. L'application fonctionne via Wine, et envoie ses
données vers "Client 14". Or, comme aucun expandeur midi n'est raccordé
dessus, aucune musique n'est jouée. Je veux que l'appli envoie les données
vers "Client 24"[3]. Pour cela, il faut ajouter (ou modifier) une entrée dans
la base de registre, pour indiquer qu'il ne faut pas prendre le premier
périphérique midi, mais le second. (attention, on compte à partir de zéro et
non de 1, donc le 1er a le n°0, le second, 1, le troisième 2, etc).

Le plus simple est de créer un fichier texte et d'y coller :



   REGEDIT4
   [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Multimedia\MIDIMap]
   "CurrentInstrument"="#1"


Puis d'ouvrir regedit (wine regedit), et d'ouvrir le fichier pour que la clé
soit modifiée. On peut aussi le faire à la main, en créant les branches et la
clef.

Plus de détails dans la doc wine : <http://www.winehq.org/docs/winedev-guide/mm-conf>



Le résultat est donc :



   alex@yue ~> aconnect -lio
   client 0: 'System' [type=noyau]
       0 'Timer           '
       1 'Announce        '
       Connexion À: 15:0
   client 14: 'Midi Through' [type=noyau]
       0 'Midi Through Port-0'
   client 24: 'USB Uno MIDI Interface' [type=noyau]
       0 'USB Uno MIDI Interface MIDI 1'
       Connecté Depuis: 128:0


**Mapper une sortie MIDI vers une entrée MIDI.**

Par exemple, Utiliser un clavier maître pour piloter
[Bristol](http://bristol.sourceforge.net/) :



   aconnect 24 128

L'appui sur une touche sur le clavier maître provoquera alors le son (ou
l'effet) désiré.




* * *

1 : th08, Imperishable Night (forcément).
2 : Ce qui est le comportement attendu, Cf. article [touhou-08-imperishable-night-sous-gnu-linux](https://blog.chibi-nah.fr/article11)
3 : Expandeur midi matériel (Roland SC-55), branché via une interface midi-usb(M-Audio USB UNO, reconnu et fonctionnel sous GNU/Linux.