
현재 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 입력을 키 입력으로 변환하는 것입니다. 단, 동일한 키는 미리 누른 키에 따라 다른 키 입력을 출력해야 합니다.
추가 정보
- 현재 우분투 22.04에서 실행 중입니다.
- 지금까지 키를 올바르게 읽고 변환했지만 변수만 문제를 일으키고 있습니다.