Francesco Lavra wrote:
I would have expected to find a generic MIDI<->UART adapter layer in the kernel that bridges the ALSA MIDI interface with UART drivers and allows to operate UARTs as MIDI ports. But apparently there is no such generic adapter, the closest driver I found is for the UART 16550 but this is specific to a type of UART controller different from the one in the platform I'm using (which is i.MX6).
In the Good Old Times™, all UARTs were 16550 or MPU-401 compatible.
So how would you approach the task of writing a MIDI driver that uses UART behind the scenes? Am I correct in assuming that I have to use the RawMIDI interface (as the UART 16550 driver does) to make my MIDI port available to ALSA applications? Or is there a better alternative?
The kernel-internal serial port interfaces are designed to be able to run a console.
The easiest way would be a userspace daemon that bridges between some /dev/tty* and the ALSA sequencer. See http://www.alsa-project.org/~clemens/usbmidid/usbmidid.c for an example that uses some other device.
Regards, Clemens