停止 aplaymidi 留下卡住的音符
Posted
技术标签:
【中文标题】停止 aplaymidi 留下卡住的音符【英文标题】:Stopping aplaymidi leaves stuck notes 【发布时间】:2016-07-31 19:42:29 【问题描述】:我正在使用aplaymidi
命令通过 USB MIDI 适配器运行硬件设备。在大多数情况下,它可以正常工作,但是使用 control-c 停止播放会留下卡住的音符。到目前为止,我能够释放卡住音符的唯一方法是播放 127 音符半音阶的 MIDI 文件。这很慢,而且听音阶是不可取的。
是否有简单的方法在取消文件播放时输出每个"note off"
命令?
【问题讨论】:
【参考方案1】:将aplaymidi
包装成一个脚本,检查退出状态以检测Ctrl+C:
#!/bin/bash
aplaymidi "$*"
test $? == 130 && aplaymidi .../AllNotesOff.mid
“所有音符关闭”消息是控制器 123;只需同时在所有频道上发送即可。
或者,使用amidi
发送重置消息:
... && amidi -p hw:X -S F07E7F0901F7
其中X
是卡号;有关端口列表,请参阅 amidi -l
。
【讨论】:
在哪里可以找到或如何制作发送此命令的 MIDI 文件? 任何定序器都可以创建这样的文件。 我还没有找到可以做到这一点的音序器。另外,你能解释一下原始的十六进制 MIDI 命令吗?除了“系统专有”之外,我找不到关于0xF0
的好文档。
P. MIDI specification中的 52 个。以上是关于停止 aplaymidi 留下卡住的音符的主要内容,如果未能解决你的问题,请参考以下文章
Rails 应用程序在卡住发布表单时向同一地址发送多封电子邮件