C'est un truc que j'ai découvert un peu par hasard, en lurkant dans le groupe comp.music.midi (dont la lecture est vivement recommandée à tous les accrocs de la technologie qui fait zim boum pong kay), et proposé en réponse à un OP qui demandait ce genre de truc: Hi. Given amidi and aconnect and the other alsa-utils, I'd like to put a stdin-to-stdin filter in between a input-port and an output-port. I've tried things like "amidi -p <port> -r -" to write to stdout but that just created a file named "-" and I'm in need of a breakthrough... Any ideas ? . Mon sang n'a fait qu'un tour, il faut absolument que j'essaye ça...
Après un petit tour sur le site, je commence à comprendre de quoi il peut bien s'agir: Midish is an open-source MIDI sequencer/filter for Unix-like operating systems (tested on OpenBSD and Linux). Implemented as a simple command-line interpreter (like a shell) it's intended to be lightweight, fast and reliable for real-time performance. Tout cela me semble vraiment prometteur pour les console-junkies. Il faut absolument que j'essaye ça...
En avant comme à vent. Descente et déroulement de l'archive, lecture de la doc... Comme conseillé, je regarde le Makefile avec inquiétude. Vu que ça cause de readline et que sur la trop vieille machine où j'ai le MIDI, il manque les paquets de dev (merci Daubian), je crains un peu... Paf, ça ne rate pas.
rmidish.c:21:31: error: readline/readline.h: No such file or directory rmidish.c:22:30: error: readline/history.h: No such file or directory
Donc, je suis dans la mouise. Et je m'en doutais un peu, vu que j'ai déja eu ce problème. Et ça va être pour moi l'occasion de me pencher sur la goretisation d'une très vieille SID. Et ça nous écarte un peu du sujet.
Grâce à l'aide rapide d'un toulibriste, les trucs manquants sont vaguement installés et la compilation se termine bien. Je rajoute la ligne qui va bien: devattach 0 "/dev/midi" rw dans le fichier ~/.midishrc, et en voiture Simone, c'est toi qui conduit, c'est le tx qui klaxonne. Il y a un exemple de morceau fourni, et je tente de le jouer:
send EOF character (control-D) to quit 1> songload "sample.sng" 2> songplay mixout_start() song_play: starting loop, waiting for a start event... press control-C to finish song_startcb: mixout_timo: xctl {0 4} 7 1900 NEW FIRST LAST: timed out mixout_timo: xpc {0 4} 33 ffff NEW FIRST LAST: timed out mixout_timo: xctl {0 2} 7 1e00 NEW FIRST LAST: timed out mixout_timo: xpc {0 2} 11 ffff NEW FIRST LAST: timed out mixout_timo: xpc {0 1} 21 ffff NEW FIRST LAST: timed out mixout_timo: xpc {0 0} 0 ffff NEW FIRST LAST: timed out mixout_putev: [20] non {0 0} 43 4c ignored mixout_putev: [20] noff {0 0} 43 64 ignored --interrupt-- song_rec_stop: mixout_stop()
Et ça marche \o/ malgré ces messages que je ne comprends pas trop. Bon, ce n'est pas très mélodieux, probablement parce que l'assignation des sons est du genre GM, et que c'est très loin des reglages de la tx81z. Mais je suis très content d'avoir trouvé ce logiciel, qui démontre une fois de plus qu'il est possible de faire tout et n'importe quoi avec Vim.