📜  Linux 中的 amidi 命令示例

📅  最后修改于: 2022-05-13 01:57:33.138000             🧑  作者: Mango

Linux 中的 amidi 命令示例

Linux 中的 amidi命令用于从外部 MIDI 设备接收和发送 SysEx,即系统专有数据。也可以使用此 amidi 命令发送其他 MIDI 命令。关于此 amidi 命令需要注意的一件事是它只处理包含原始 MIDI 命令的文件,而这些文件也没有计时信息。关于此命令的另一件事是它不支持标准 MIDI(.mid) 文件,但 aplaymidi(1) 和 arecordmidi(1) 支持。

句法:

amidi -[option]... [action] 

使用amidi命令

1.打印选项列表

输入以下命令以打印选项列表。

amidi --help

该命令将显示该命令的帮助部分,其中将列出该命令的所有选项。



2. 打印版本

amidi --version

该命令将返回amidi 命令的版本号。

3.打印所有硬件MIDI端口

amidi --list-devices

上述命令将显示连接到 MIDI 及其相关端口的所有端口或设备。



4. 打印所有 RawMIDI 定义

amidi --list-rawmidis

此命令将打印 RawMIDI 的定义,该定义将具有结构形式的卡片及其属性列表。

5. 在指定的时间内没有接收到数据时停止接收数据。

timeout 5 ping google.com

这将导致会话在 5 秒不活动后超时。

6. 在保存或打印收到的 MIDI 命令时停止 Active Sensing Bytes(FEh)。

--active-sensing , -a 

每次用户保存或打印接收到的 MIDI 命令时,此命令将停止 FEh 主动传感字节。

7.将指定文件的内容发送到MIDI端口

amidi -p hw:0 -s my_settings.syx

上述命令会将指定文件的内容发送到 MIDI 端口,并且该文件必须包含原始 MIDI 命令,对于标准 MIDI 文件,请使用 aplaymidi。



8. 将指定为十六进制数的字节发送到 MIDI 端口

amidi -S 'F0 43 10 4C 00 00 7E 00 F7'

上述命令将指定为十六进制数的字节发送到 MIDI 端口。并将向默认端口发送 XG 重置

9. 设置要使用的 ALSA RawMIDI 端口的名称

amidi -p hw:0 -s my_settings.syx

上面的命令将设置要使用的 ALSA RawMIDI 端口的名称。如果未指定,amidi 使用配置文件中定义的默认端口(卡 0 上此端口 0 的默认值)并将 my_settings.syx 中的 MIDI 命令发送到端口 hw:0

10.将从MIDI端口接收到的数据打印为十六进制字节

amidi -p virtual -d

上述命令将从 MIDI 端口接收到的数据打印为十六进制字节。这个选项在调试时非常有用。此命令将创建一个虚拟 RawMIDI 端口,并将打印发送到该端口的所有数据。

11.将从MIDI端口接收到的数据写入指定文件

--receive=filename , -r
Example : sends a "Parameter Dump Request" to a GS device, saves the 
received parameter data to the file dump.syx, and stops after 
the device has finished sending data (when no data has been 
received for one second). 
amidi -p hw:1,2 -S F0411042110C000000000074F7 -r dump.syx -t 1

上述命令会向GS设备发送“Parameter Dump Request”,并将接收到的参数数据保存到文件dump.syx中,设备发送完数据后也会停止(如果有一次没有收到数据)第二)。