les périphériques se trouve dans le répertoire /dev/.
La commande pour créer un périphérique midi, c’est :
julien@CrashTooT:/dev$ sudo mknod /dev/midi c 35 1
-
Quelques explication pour cette commande mknod :
- /dev/midi : le nom du périphérique (bien indiquer le chemin absolu)
- c : est le type du périphérique (c pour caratère, b pour bloc). Faite mknod –help pour plus d’info
- 35 : est le majeur qui identifie le pilote et par conséquence le contrôleur de périphérique
- 1 : est le mineur qui identifie généralement le périphérique mais il peut aussi désigner une particularité du périphérique, comme la partition d’un disque, un emplacement précis, le numéro de carte (en cas de présence de plusieurs cartes contrôleurs identiques, de plusieurs cartes son, etc), …
Il faut ensuite attribué les bons droits au périphérique :
julien@CrashTooT:/dev$ sudo chown root:audio midi
julien@CrashTooT:/dev$ sudo chmod 660 midi
julien@CrashTooT:/dev$ ll /dev/*midi*
crw-rw---- 1 root audio 35, 1 2007-02-03 11:42 /dev/midi
Le son MIDI est fabriqué par la carte son à partir d’une simple description du son (ex : un Fa du piano). Il faut donc que la carte ait des fonctions de synthèse sonore. En dehors de SB Live, les autres cartes son ne sont pas MIDI. Il faut donc faire appel à une émulation, nommé timidity.
On installe donc timidity et timidity++ (les échantillons sonores) :
julien@CrashTooT:/dev$ sudo apt-get install timidity timidity-interfaces-extra
pour tester :
timidity aint_no_sunshine.mid
si pas de son il faut charger les modules qui vont bien avec la commande sudo modpobe nomdumodule:
julien@CrashTooT:/dev$ sudo modprobe snd_emu10k1
julien@CrashTooT:/dev$ sudo modprobe snd_emu10k1_synth
julien@CrashTooT:/dev$ sudo modprobe snd_seq_midi
julien@CrashTooT:/dev$ sudo modprobe snd_pcm_oss
julien@CrashTooT:/dev$ sudo modprobe snd_mixer_oss
julien@CrashTooT:/dev$ sudo modprobe snd_seq_oss
Voici ma liste de modules (sonores) chargés :
julien@CrashTooT:/dev$ lsmod | grep snd
snd_seq_midi 9088 0
snd_emu10k1_synth 7808 0
snd_emux_synth 37120 1 snd_emu10k1_synth
snd_seq_virmidi 7296 1 snd_emux_synth
snd_seq_midi_emul 7296 1 snd_emux_synth
snd_emu10k1 124576 1 snd_emu10k1_synth
snd_ac97_codec 96672 1 snd_emu10k1
snd_ac97_bus 2432 1 snd_ac97_codec
snd_util_mem 5120 2 snd_emux_synth,snd_emu10k1
snd_rtctimer 3468 1
snd_seq_dummy 4100 0
snd_seq_oss 34304 0
snd_seq_midi_event 7808 3 snd_seq_midi,snd_seq_virmidi,snd_seq_oss
snd_seq 53360 10 snd_seq_midi,snd_emux_synth,snd_seq_virmidi,snd_seq_midi_emul,snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_usb_audio 78880 1
snd_usb_lib 17536 1 snd_usb_audio
snd_rawmidi 25600 4 snd_seq_midi,snd_seq_virmidi,snd_emu10k1,snd_usb_lib
snd_seq_device 8972 8 snd_seq_midi,snd_emu10k1_synth,snd_emux_synth,snd_emu10k1,snd_seq_dummy,snd_seq_oss,snd_seq,snd_rawmidi
snd_hwdep 9860 3 snd_emux_synth,snd_emu10k1,snd_usb_audio
snd_hda_intel 18580 1
snd_hda_codec 163712 1 snd_hda_intel
snd_pcm_oss 46080 0
snd_mixer_oss 18560 1 snd_pcm_oss
snd_pcm 80520 6 snd_emu10k1,snd_ac97_codec,snd_usb_audio,snd_hda_intel,snd_hda_codec,snd_pcm_oss
snd_timer 23172 4 snd_emu10k1,snd_rtctimer,snd_seq,snd_pcm
rtc 12596 1 snd_rtctimer
snd 55428 21 snd_emux_synth,snd_seq_virmidi,snd_emu10k1,snd_ac97_codec,snd_seq_oss,snd_seq,snd_usb_audio,snd_rawmidi,snd_seq_device,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore 9952 1 snd
snd_page_alloc 10504 3 snd_emu10k1,snd_hda_intel,snd_pcm
usbcore 130304 7 snd_usb_audio,snd_usb_lib,usblp,usbhid,ehci_hcd,ohci_hcd
julien@CrashTooT:/dev$
On ajoute ces ligne dans /etc/modules :
snd-seq-device
snd-seq-midi
et on redémarre timidity sudo /etc/init.d/timidity restart.
Pour allez plus loin :
lspci -vPour connaître les chipset de sa carte mère
http://www.slyunix.org/documentation/cours_unix.php?cours=admin&chap=10
Pour plus de détail sur les périphériques du système Linux et Unix