serial-u16550 模块可以与 USB 串行转换器一起用于 MIDI 吗?

serial-u16550 模块可以与 USB 串行转换器一起用于 MIDI 吗?

尝试使用雅马哈至主机电缆将我使用了 12 年的音乐键盘(Yamaha PSR550)连接到运行 Ubuntu Linux(18.04.1)的当前一代台式电脑,以交换 MIDI 数据。

Yamaha PSR550 键盘既有标准 MIDI 接口,也有串行接口,即 MIDI 到 RS232 的转换在键盘本身内完成,然后可以通过至主机电缆.因此至主机电缆只不过是键盘和 PC 之间的串行接口连接电缆,用于交换 MIDI 数据(而不是具有略有不同的电气特性的标准 MIDI 接口)。

对于具有板载 UART 的旧 PC(我猜是 U16550),有一个名为 snd-serial-u16550 的内核模块可以加载并配置,以在 PC 上运行的 Linux 和 PSR550 之间交换 MIDI 数据。显然,必须执行以下操作:

setserial /dev/ttyS0 uart none

其次是:

modprobe snd-serial-u16550 port=0x3f8 irq=4 speed=38400

这将允许 ALSA 将 /dev/ttyS0 识别为串行 MIDI 接口,从而在 JACKd 中显示为串行 MIDI (UART16550A)

但是,由于现代 PC 没有板载 UART,因此我使用通用(el-cheapo,基于 PL2303)USB 串行适配器,如下所示:

在此处输入图片描述

首先将串行接口添加到 PC,然后使用 Yamaha举办电缆将 Yamaha PSR550 键盘连接到我的电脑以交换 MIDI 信息。

鉴于这种方法,我认为 USB 串行适配器首先被视为不同的设备/dev/ttyUSB0(而不是 /dev/ttyS0),并且我不确定 UART 是否可以被视为完全符合 U16550,想知道是否可以使用同一组命令来设置它,成为有效的 ALSA 串行 MIDI 设备,从而被 JACKd 识别为有效的串行 MIDI (UART16550)端口?还是我必须做其他事情才能使其工作?

答案1

snd-serial-u16550模块仅适用于 16550(兼容)硬件,即通过主板上的 ISA 总线访问的 COM 端口。

有一个“ttyMIDI”工具可以桥接任何串行端口和软件 MIDI 端口,但它适用于自定义 Arduino 固件,并使用与 MIDI 不太相同的简化协议。(并且 Hairless MIDI 到串行桥接器似乎设计为与 ttyMIDI 兼容。)

据我所知,似乎没有软件允许将 To-Host 电缆与现代计算机一起使用。您必须购买 USB/MIDI 适配器。

相关内容