我正在使用aplaymidi
命令通过USB MIDI适配器运行硬件设备。在大多数情况下,它工作得很好,但是用control-c停止播放会留下卡住的音符。到目前为止,我唯一能释放卡住的音符的方法就是播放一个127音符的MIDI音阶文件。这是缓慢的,听音阶是不可取的。
在取消文件回放时,是否有一种简单的方法输出每个"note off"
命令?
最佳答案
将aplaymidi
包装为一个脚本,该脚本检查退出状态以检测CTRL+C:
#!/bin/bash
aplaymidi "$*"
test $? == 130 && aplaymidi .../AllNotesOff.mid
“all notes off”消息是控制器123;只需同时在所有通道上发送它。
或者,使用
amidi
发送重置消息:... && amidi -p hw:X -S F07E7F0901F7
其中
X
是卡号;有关端口列表,请参见amidi -l
。