Serial UART 16450/16550 MIDI 驱动

适配器模块参数允许您选择:

  • 0 - Roland Soundcanvas 支持(默认)

  • 1 - Midiator MS-124T 支持 (1)

  • 2 - Midiator MS-124W S/A 模式 (2)

  • 3 - MS-124W M/B 模式支持 (3)

  • 4 - 具有多输入支持的通用设备 (4)

对于 Midiator MS-124W,您必须设置 Midiator 上的物理 M-S 和 A-B 开关,以匹配您选择的驱动程序模式。

在 Roland Soundcanvas 模式下,支持多个 ALSA 原始 MIDI 子流 (midiCnD0-midiCnD15)。 每当您写入不同的子流时,驱动程序都会发送非标准的 MIDI 命令序列 F5 NN,其中 NN 是子流号加 1。 Roland 模块使用此命令在不同的“部分”之间切换,因此此功能允许您将每个部分视为不同的原始 MIDI 子流。 驱动程序没有提供发送 F5 00(无选择)或完全不发送 F5 NN 命令序列的方法;也许应该提供。

简单串行转换器的使用示例

/sbin/setserial /dev/ttyS0 uart none
/sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 speed=115200

具有 4 个 MIDI 端口的 Roland SoundCanvas 的使用示例

/sbin/setserial /dev/ttyS0 uart none
/sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 outs=4

在 MS-124T 模式下,支持一个原始 MIDI 子流 (midiCnD0); outs 模块参数自动设置为 1。 驱动程序将相同的数据发送到所有四个 MIDI 输出连接器。 设置 A-B 开关和 speed 模块参数以匹配 (A=19200, B=9600)。

MS-124T 的使用示例,A-B 开关位于 A 位置

/sbin/setserial /dev/ttyS0 uart none
/sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 adaptor=1 \
                speed=19200

在 MS-124W S/A 模式下,支持一个原始 MIDI 子流 (midiCnD0); outs 模块参数自动设置为 1。 驱动程序以完整的 MIDI 速度将相同的数据发送到所有四个 MIDI 输出连接器。

S/A 模式的使用示例

/sbin/setserial /dev/ttyS0 uart none
/sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 adaptor=2

在 MS-124W M/B 模式下,驱动程序支持 16 个 ALSA 原始 MIDI 子流; outs 模块参数自动设置为 16。 子流编号给出了一个位掩码,指示数据应发送到哪个 MIDI 输出连接器,其中 midiCnD1 发送到输出 1,midiCnD2 发送到输出 2,midiCnD4 发送到输出 3,midiCnD8 发送到输出 4。 因此 midiCnD15 将数据发送到所有 4 个端口。 作为一种特殊情况,midiCnD0 也会发送到所有端口,因为将数据发送到任何端口都没有用处。 M/B 模式具有额外的开销,用于为每个字节选择 MIDI 输出,因此所有四个 MIDI 输出上的聚合数据速率最多为每 520 微秒一个字节,而每个端口的完整 MIDI 数据速率为每 320 微秒一个字节。

M/B 模式的使用示例

/sbin/setserial /dev/ttyS0 uart none
/sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 adaptor=3

目前不支持 MS-124W 硬件的 M/A 模式。 此模式允许 MIDI 输出独立运行,吞吐量是 M/B 的两倍,但不允许同时将同一字节发送到多个 MIDI 输出。 M/A 协议要求驱动程序在时序约束下调整调制解调器控制线,因此实现起来比其他模式稍微复杂一些。

目前不支持 MS-124W 和 MS-124T 以外的 Midiator 型号。 请注意,后缀字母很重要; MS-124 和 MS-124B 不兼容,其他已知型号 MS-101、MS-101B、MS-103 和 MS-114 也不兼容。 我确实有部分涵盖这些型号的文档 (tim.mann@compaq.com),但没有单元进行实验。 MS-124W 支持已通过真实单元进行测试。 MS-124T 支持未经测试,但应该可以工作。

通用驱动程序支持通过单个串口的多个输入和输出子流。 与 Roland Soundcanvas 模式类似,F5 NN 用于选择适当的输入或输出流(取决于数据方向)。 此外,CTS 信号用于调节数据流。 输入的数量由 ins 参数指定。