Cette page explique comment utiliser un périphérique Série en MIDI, par exemple pour l'utilisation d'un contrôleur fait maison à base par exemple d'Arduino Uno ou Nano, qui ne supportent pas le protocole USB-MIDI nativement mais utilise Serial midi (contrairement à d'autres boards comme le Pro Micro ou les Teensy.

 attention
Page en cours d'écriture



Introduction


  • Construction d'un contrôleur MIDI basé sur Arduino
  • Support USB des différentes boards Arduino et chips ne supportant pas nativement l'USB
  • input en Série
  • convertir le Série en MIDI avec Hairless ou TTYMidi
  • Règle UDEV à la connexion d'un périphérique ttyUSB:
Copy to clipboard
# /etc/udev/rules.d/99-serial-usb.rules # # Un test avec l'action "bind": # ACTION=="bind", SUBSYSTEM=="usb-serial", DRIVER=="ch341-uart", TAG+="systemd", RUN+="/bin/sh -c 'echo == >> /home/zig/Software/udev-env.txt; env >> /home/zig/Software/udev-env.txt; echo attr: >> /home/zig/Software/udev-env.txt; echo $env{DEVNAME} >> /home/zig/Software/udev-env.txt'" # Un autre test avec l'action "add", qui permet d'accéder plus facilement à la propriété DEVNAME: #ACTION=="add", SUBSYSTEM=="tty", ENV{DEVNAME}=="/dev/ttyUSB[0-9]", TAG+="systemd", RUN+="/bin/sh -c 'echo == >> /home/zig/Software/udev-env.txt; env >> /home/zig/Software/udev-env.txt; echo attr: >> /home/zig/Software/udev-env.txt; echo $env{DEVNAME} >> /home/zig/Software/udev-env.txt'" # La vraie règle à utiliser: ACTION=="add", SUBSYSTEM=="tty", ENV{DEVNAME}=="/dev/ttyUSB[0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}+="ttymidi@$env{DEVNAME}.service" # Un test à la déconnexion: #ACTION=="unbind", SUBSYSTEM=="usb-serial", RUN+="/bin/sh -c 'echo == >> /home/zig/Software/udev-env.txt; env >> /home/zig/Software/udev-env.txt'" # La vraie règle pour la déconnextion: ACTION=="unbind", SUBSYSTEM=="usb-serial", RUN+="/bin/systemctl --no-block stop ttymidi@*.service"


  • Service Systemd pour démarrer et stopper ttymidi à la connexion/déconnexion du périphérique
Copy to clipboard
[Unit] Description=TTYmidi to convert Serial to MIDI [Service] ExecStart=ttymidi -b 115200 -n ArduinoPedal -s %I

Le paramètre %I est passé par la règle UDEV après le @ de ttymidi@.service.

Liens et commentaires

Licence

La licence de cet article est la Creative Commons suivante :
http://creativecommons.org/licenses/by-sa/2.5/deed.fr

Extrait :
Paternité - Partage des Conditions Initiales à l'Identique 2.5

Vous êtes libres :

  • de reproduire, distribuer et communiquer cette création au public
  • de modifier cette création
  • d'utiliser cette création à des fins commerciales

Selon les conditions suivantes :
  • by: Paternité. Vous devez citer le nom de l'auteur original.
  • sa: Partage des Conditions Initiales à l'identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci.

À notez que :
  • À chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les conditions contractuelles de mise à disposition de cette création.
  • Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits.

Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...)



voir la version intégrale de la licence