Ini tidak dapat dilakukan tanpa beberapa pemrograman.
Pertama, uji cara mendeteksi peristiwa MIDI. Buka terminal, dan jalankan aseqdump -l
untuk membuat daftar port MIDI; ini menghasilkan sesuatu seperti ini:
$ 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
Kemudian jalankan dengan nama klien untuk memeriksa apakah acara tiba:
$ 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 ...
Kedua, untuk mensimulasikan penekanan tombol, Anda memerlukan xdotool
. Jika Anda belum menginstalnya, jalankan sudo apt-get install xdotool
.Anda dapat menggunakan type
untuk mengetik teks, atau key
untuk mensimulasikan kunci khusus:
xdotool type Hello, World! xdotool key ctrl+p
Perhatikan bahwa tidak semua kunci khusus ditangani dengan benar oleh xdotool
.Dan Ctrl+Alt+Del ditangani dengan sangat khusus oleh kernel dan mungkin tidak berfungsi saat disimulasikan; coba jalankan sudo reset
bukannya xdotool
.
Terakhir, ikat semuanya dengan skrip. Masukkan ini ke dalam file teks, misalnya, ~/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
Jadikan itu dapat dieksekusi (chmod +x ~/bin/midi-to-keys
), dan jalankan (~/bin/midi-to-keys
).Sekarang, menekan E-5 atau C-4 seharusnya memiliki beberapa efek.
Ubah atau tambahkan baris dalam bentuk "Note on x" ) command ;;
untuk melakukan apa pun yang Anda inginkan.
Saya memiliki masalah serupa jadi saya memprogram sesuatu yang sesuai dengan kebutuhan saya.
https://gitlab.com/enetheru/midi2input
Berjalan di linux dan menggunakan sistem x windows untuk kejadian input keyboard dan mouse.
Ini menggunakan lua untuk konfigurasi dan pemetaan, dapat melakukan tindakan apa pun sebagai pengguna Anda. memiliki deteksi pada jendela apa yang aktif menggunakan atribut X_CLASS sehingga Anda dapat membuat pemetaan yang berbeda untuk aplikasi apa pun yang sedang berjalan.
Memuat ulang konfigurasi secara otomatis sehingga Anda tidak perlu menutup dan membukanya kembali setiap saat.
saya telah menulis aturan udev sederhana untuk membuat koneksi midi saat saya menyambungkan pengontrol saya.
Bahkan ada PKGBUILD archlinux untuk archlinux, saya hanya belum menambahkannya ke aur.
Idenya adalah untuk menghilangkan semua masalah dalam membuat pemetaan dari pengontrol tengah ke apa pun yang saya inginkan.
Sudah beberapa tahun sejak saya membuatnya, dan saya menggunakannya setiap hari, saya memperhatikan repo, tetapi hanya ada satu atau dua orang yang pernah mengirimi saya email tentangnya.