• [^] # Re: MIDI

    Posté par (site web personnel, Mastodon) . En réponse au journal Des conséquences d'un plâtre. Évalué à 3.

    Je n'ai jamais vraiment creusé comment ça marche sous Linux (c'est pas mon OS préféré :)). Mais de mémoire, juste pour la partie driver, on va se retrouver avec une interface midi qui apparaît "quelque part" dans /dev, il va falloir écrire une règle udev pour avoir le droit de s'en servir, et ensuite expliquer patiemment à chaque logiciel où elle se trouve et à quoi il faut la brancher. Est-ce qu'on a quelque chose de mieux que "ls /dev" pour découvrir les interfaces MIDI sous Linux maintenant?

    D'abord une précision technique: ce n'est justement pas du RS232. Le RS232 définit précisément tous les points d'un "port série" qui sont différents du MIDI: les connecteurs, les niveaux électriques, etc, mais pas le protocole de "tramage" utilisé (comment on traduit "framing" en français?). En revanche, on utilise en MIDI, et la plupart du temps en RS232, des signaux de type "UART", qui eux ont un format similaire dans les deux cas (et pour le MIDI, ça fait partie de la norme).

    En tout cas voilà comment ça se passe pour Haiku:
    - Il y a effectivement un driver générique pour les interfaces USB<->MIDI, ce qui n'est pas bien compliqué donc il est probable que Linux aie sensiblement la même chose.
    - Il y a une API standard dans Haiku pour énumérer les interfaces MIDI (USB ou pas), que les applications peuvent utiliser pour découvrir le matériel mais aussi le logiciel (un synthétiseur logiciel peut exposer un port "MIDI" virtuel via lequel il recevra des commandes MIDI, donc)
    - Il ne reste plus qu'à connecter tout ça ensemble (entrée MIDI<-USB vers synthétiseur logiciel, par exemple): c'est la partie "plug"
    - Ensuite, on presse les touches du clavier MIDI qui envoie les "note on" et "note off" qui vont bien, et le synthétiseur s'active: c'est la partie "play".

    Jusque là tout va bien. Après, quand on rentre dans les messages SysEx et autres trucs compliqués, oui, ça devient moins facile, mais on y arrive tout pareil (on "branche" tout ensemble et les messages arrivent ou il faut et quand il faut).

    Il y a quelques applications "amusantes". Je pense au "super long MIDI cable" qui est un proxy MIDI vers Ethernet pour relier à grande distance plusieurs machines. Et on peut y brancher n'importe quoi en entrée comme en sortie, tant que ça arrive à se parler en MIDI (que ça soit des Note On/Off, des SysEx ou n'importe quoi d'autre, d'ailleurs).