install midi - Orabig/piano-assistant GitHub Wiki

Le programme ttymidi ( http://www.varal.org/ttymidi/ ) est utilisé pour fournir au système un composant MIDI standard à partie des données reçues et envoyées sur le port série UART.

Installation

 sudo apt-get install libasound2-dev
 git clone https://github.com/Orabig/ttymidi
 cd ttymidi/
 make
 sudo make install

Test

$ ttymidi -s /dev/ttyAMA0 -b 31250 -v          # Permet de visualiser les events MIDI reçus sur l'UART en temps réel
Serial  0x90 Note on            000 057 000
Serial  0x90 Note on            000 045 029
Serial  0x90 Note on            000 045 000
Serial  0xb0 Controller change  000 000 000
Serial  0xb0 Controller change  000 032 112
Serial  0xc0 Program change     000 000
Serial  0xb0 Controller change  000 091 019
0xf0 Unknown MIDI cmd   000 067 016
0xf0 Unknown MIDI cmd   000 076 002
0xf0 Unknown MIDI cmd   000 001 000
0xf0 Unknown MIDI cmd   000 001 016
0xf0 Unknown MIDI cmd   000 067 016
0xf0 Unknown MIDI cmd   000 076 002
...
$ ttymidi -s /dev/ttyAMA0 -b 31250 -p          # Permet d'afficher les données brutes recues sur l'UART
f8      f8      fe      f8      f8      f8      f8      f8      f8      f8      f8      f8      fe      f8      f8      f8      f8      f8      f8      f8      f8
f8      90      69      30      f8      f8      f8      f8      f8      90      69      0       f8      f8      f8      fe      f8      f8      f8      f8      f8
f8      f8      fe      f8      f8      f8      f8      f8      f8      f8      f8      f8      f8      fe      f8      f8      f8      f8      f8      f8      f8 
...
$ ttymidi -s /dev/ttyAMA0 -b 31250 --name=MY_MIDI_DEVICE &      # Crée un device MIDI standard
[1] 2208
$ aconnect -iol                                                 # Affiche la liste des devices MIDI connus
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 128: 'MY_MIDI_DEVICE ' [type=user,pid=2208]
    0 'MIDI out        '
    1 'MIDI in         '

Les utilitaires ALSA peuvent ensuite être utilisés sur le device, par exemple :

arecordmidi --port 128:0 my_file.mid                         # Enregistre le morceau joué dans un fichier midi