To nelze provést bez určitého programování.
Nejprve vyzkoušejte, jak detekovat MIDI události. Přejděte na terminál a spusťte aseqdump -l
zobrazit seznam MIDI portů; výsledkem je něco takového:
$ 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
Poté jej spusťte se jménem klienta a zkontrolujte, zda události přicházejí:
$ 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 ...
Za druhé, k simulaci úhozů kláves potřebujete xdotool
. Pokud jej ještě nemáte nainstalovaný, spusťte sudo apt-get install xdotool
.Můžete použít type
zadejte text nebo key
pro simulaci speciálních kláves:
xdotool type Hello, World! xdotool key ctrl+p
Upozorňujeme, že xdotool
nezpracovává správně všechny speciální klíče .A Ctrl+Alt+Del jádro zpracovává velmi speciálně a pravděpodobně při simulaci nefunguje; zkuste spustit sudo reset
místo xdotool
.
Nakonec vše svažte scénářem. Vložte to do textového souboru, například ~/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
Udělejte jej spustitelným (chmod +x ~/bin/midi-to-keys
) a spusťte jej (~/bin/midi-to-keys
).Nyní by mělo mít stisknutí E-5 nebo C-4 nějaký efekt.
Změňte nebo přidejte řádky ve tvaru "Note on x" ) command ;;
dělat, co chcete.
Měl jsem podobný problém, takže jsem naprogramoval něco, co vyhovuje mým požadavkům.
https://gitlab.com/enetheru/midi2input
Běží v linuxu a používá systém x windows pro vstupní události klávesnice a myši.
Používá lua pro konfiguraci a mapování, může provádět jakoukoli akci jako váš uživatel. má zjišťování, které okno je aktivní, pomocí atributu X_CLASS, takže můžete provádět různá mapování pro jakoukoli aktuálně spuštěnou aplikaci.
Automaticky znovu načte konfiguraci, takže ji nemusíte neustále zavírat a znovu otevírat.
Napsal jsem jednoduché pravidlo udev pro vytvoření připojení midi, když zapojím ovladač.
Existuje dokonce archlinux PKGBUILD pro archlinux, jen jsem ho nepřidal do aur.
Cílem bylo odstranit všechny problematické body při vytváření mapování ze středního ovladače na cokoli, co chci.
Už je to pár let, co jsem to postavil, a používám to každý den, věnuji pozornost repo, ale e-mail mi o tom poslal pouze jeden nebo dva lidé.