Can the serial-u16550 module be used with USB serial converter for MIDI?

2

Trying to use a Yamaha to-host cable to connect my 12 year old musical keyboard (Yamaha PSR550) to my current generation desktop PC running Ubuntu Linux (18.04.1), to exchange MIDI data.

The Yamaha PSR550 keyboard has both standard MIDI interface and also a serial interface i.e. the MIDI to RS232 conversion is done within the keyboard itself which can then be directly connected to the serial interface on PCs, via the to-host cable. Thus a to-host cable is nothing but a serial interface connection cable between the keyboard and the PC to exchange MIDI data over (instead of standard MIDI interface which has somewhat different electrical characteristics).

For old PC's that had an onboard UART (I suppose one called U16550), there was a kernel module called snd-serial-u16550 that could be loaded and configured to exchange MIDI data between the Linux running on PC and the PSR550. Apparently one had to do the following:

setserial /dev/ttyS0 uart none

Followed by:

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

Which would allow ALSA to recognize /dev/ttyS0 as a serial-MIDI interface, and in turn would be visible in JACKd as Serial MIDI (UART16550A).

However, since modern day PC's do not have onboard UART, I am using a generic (el-cheapo, PL2303 based) USB-Serial adapter that looks like this:

enter image description here

To first add the serial interface to the PC, and then use the Yamaha to-host cable to connect the Yamaha PSR550 keyboard to my PC to exchange MIDI information.

Given this approach, I suppose the USB-Serial adapter is firstly visibly as a different device i.e. /dev/ttyUSB0 (instead of /dev/ttyS0) and the UART I'm not sure can be considered as being fully compliant with U16550, wondering if the same set of command can be used to set it up, to become a valid ALSA serial-MIDI device and thus be recognized by JACKd as a valid Serial MIDI (UART16550) port? Or do I have to do something else to make this work ?

icarus74

Posted 2019-01-24T18:01:52.493

Reputation: 265

Answers

2

The snd-serial-u16550 module works only with 16550(-compatible) hardware, i.e., with COM ports accessed through the ISA bus on a motherboard.

There is a "ttyMIDI" tool that can bridge between any serial port and a software MIDI port, but it is intended for custom Arduino firmwares and speaks a simplified protocol that is not quite the same as MIDI. (And the Hairless MIDI to Serial Bridge appears to be designed to be compatible with ttyMIDI.)

As far as I am aware, there appears to be no software that would allow to use a To-Host cable with a modern computer. You have to buy a USB/MIDI adapter.

CL.

Posted 2019-01-24T18:01:52.493

Reputation: 1 351