Isso não pode ser feito sem alguma programação.
Primeiro, teste como detectar eventos MIDI. Vá para um terminal e execute aseqdump -l
para listar as portas MIDI; Isso gera algo parecido com isto:
$ aseqdump -l Port Client name Port name 0:0 System Timer 0:1 System Announce 14:0 Midi Through Midi Through Port-0 24:0 Xonar D2 Xonar D2 MIDI 32:0 Yamaha DS-1E (YMF754) Yamaha DS-1E (YMF754) MIDI
Em seguida, execute-o com o nome do cliente para verificar se os eventos chegam:
$ aseqdump -p "Xonar D2" Waiting for data. Press Ctrl+C to end. Source Event Ch Data 24:0 Note on 0, note 64, velocity 86 24:0 Note on 0, note 48, velocity 80 24:0 Note off 0, note 48 24:0 Note on 0, note 68, velocity 84 24:0 Note on 0, note 52, velocity 88 24:0 Note off 0, note 64 24:0 Note off 0, note 52 24:0 Note off 0, note 68 ...
Em segundo lugar, para simular traços de teclas, você precisa de xdotool
. Se você ainda não tiver instalado, execute sudo apt-get install xdotool
.
Você pode usar type
para digitar texto ou key
para simular chaves especiais:
xdotool type Hello, World! xdotool key ctrl+p
Por favor, note que nem todas as chaves especiais são tratadas corretamente por xdotool
.
E Ctrl + Alt + Del é tratado muito especialmente pelo kernel e provavelmente não funciona quando simulado; tente executar sudo reset
em vez de xdotool
.
Finalmente, amarre tudo junto com um script. Coloque isso em um arquivo de texto, por exemplo, ~/bin/midi-to-keys
:
#!/bin/bash
aseqdump -p "Xonar D2" | \
while IFS=" ," read src ev1 ev2 ch label1 data1 label2 data2 rest; do
case "$ev1 $ev2 $data1" in
"Note on 64" ) xdotool type hello ;;
"Note on 48" ) xdotool key ctrl+j ;;
esac
done
Torne-o executável ( chmod +x ~/bin/midi-to-keys
) e execute-o ( ~/bin/midi-to-keys
).
Agora, pressionar E-5 ou C-4 deve ter algum efeito.
Altere ou adicione linhas do formulário "Note on x" ) command ;;
para fazer o que você quiser.