現在、xdotoolを使用してMIDI入力をキーストロークに変換したいbashスクリプトが苦労しています。
#!/bin/bash
aseqdump -p "USB MIDI cable" | \
while IFS=" ," read src ev1 ev2 ch label1 data1 label2 data2 rest; do
case "$ev1 $ev2 $data1" in
"Note on 48" ) if[$octave=0]
then
xdotool key 9; octave=1
elif[$octave=1]
then xdotool key 1
else
xdotool key 0; octave=1
fi ;;
"Note on 36" ) xdotool key 9; octave=0 ;;
esac
done
私の質問に:変数の生成を正しく理解したら、「Note 36」に対応するキーを押すとオクターブを0に設定する必要がありますが、「Note 48」のifステートメントはそれを認識しません。また、より簡単に使用
if[$octave=1] then xdotool key 1 fi ;;
提供された変数には適用できません。
したがって、最終的にスクリプトが実行する必要があるのは、デバイスのMIDI入力をキー入力に変換することです。ただし、同じキーは事前に押したキーに応じて異なるキー入力を出力する必要があります。
追加情報
- 現在、Ubuntu 22.04で実行されています。
- これまでキーを正しく読み込んで変換しましたが、変数だけが問題を引き起こしています。