0001 ===================================
0002 Serial UART 16450/16550 MIDI driver
0003 ===================================
0004
0005 The adaptor module parameter allows you to select either:
0006
0007 * 0 - Roland Soundcanvas support (default)
0008 * 1 - Midiator MS-124T support (1)
0009 * 2 - Midiator MS-124W S/A mode (2)
0010 * 3 - MS-124W M/B mode support (3)
0011 * 4 - Generic device with multiple input support (4)
0012
0013 For the Midiator MS-124W, you must set the physical M-S and A-B
0014 switches on the Midiator to match the driver mode you select.
0015
0016 In Roland Soundcanvas mode, multiple ALSA raw MIDI substreams are supported
0017 (midiCnD0-midiCnD15). Whenever you write to a different substream, the driver
0018 sends the nonstandard MIDI command sequence F5 NN, where NN is the substream
0019 number plus 1. Roland modules use this command to switch between different
0020 "parts", so this feature lets you treat each part as a distinct raw MIDI
0021 substream. The driver provides no way to send F5 00 (no selection) or to not
0022 send the F5 NN command sequence at all; perhaps it ought to.
0023
0024 Usage example for simple serial converter:
0025 ::
0026
0027 /sbin/setserial /dev/ttyS0 uart none
0028 /sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 speed=115200
0029
0030 Usage example for Roland SoundCanvas with 4 MIDI ports:
0031 ::
0032
0033 /sbin/setserial /dev/ttyS0 uart none
0034 /sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 outs=4
0035
0036 In MS-124T mode, one raw MIDI substream is supported (midiCnD0); the outs
0037 module parameter is automatically set to 1. The driver sends the same data to
0038 all four MIDI Out connectors. Set the A-B switch and the speed module
0039 parameter to match (A=19200, B=9600).
0040
0041 Usage example for MS-124T, with A-B switch in A position:
0042 ::
0043
0044 /sbin/setserial /dev/ttyS0 uart none
0045 /sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 adaptor=1 \
0046 speed=19200
0047
0048 In MS-124W S/A mode, one raw MIDI substream is supported (midiCnD0);
0049 the outs module parameter is automatically set to 1. The driver sends
0050 the same data to all four MIDI Out connectors at full MIDI speed.
0051
0052 Usage example for S/A mode:
0053 ::
0054
0055 /sbin/setserial /dev/ttyS0 uart none
0056 /sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 adaptor=2
0057
0058 In MS-124W M/B mode, the driver supports 16 ALSA raw MIDI substreams;
0059 the outs module parameter is automatically set to 16. The substream
0060 number gives a bitmask of which MIDI Out connectors the data should be
0061 sent to, with midiCnD1 sending to Out 1, midiCnD2 to Out 2, midiCnD4 to
0062 Out 3, and midiCnD8 to Out 4. Thus midiCnD15 sends the data to all 4 ports.
0063 As a special case, midiCnD0 also sends to all ports, since it is not useful
0064 to send the data to no ports. M/B mode has extra overhead to select the MIDI
0065 Out for each byte, so the aggregate data rate across all four MIDI Outs is
0066 at most one byte every 520 us, as compared with the full MIDI data rate of
0067 one byte every 320 us per port.
0068
0069 Usage example for M/B mode:
0070 ::
0071
0072 /sbin/setserial /dev/ttyS0 uart none
0073 /sbin/modprobe snd-serial-u16550 port=0x3f8 irq=4 adaptor=3
0074
0075 The MS-124W hardware's M/A mode is currently not supported. This mode allows
0076 the MIDI Outs to act independently at double the aggregate throughput of M/B,
0077 but does not allow sending the same byte simultaneously to multiple MIDI Outs.
0078 The M/A protocol requires the driver to twiddle the modem control lines under
0079 timing constraints, so it would be a bit more complicated to implement than
0080 the other modes.
0081
0082 Midiator models other than MS-124W and MS-124T are currently not supported.
0083 Note that the suffix letter is significant; the MS-124 and MS-124B are not
0084 compatible, nor are the other known models MS-101, MS-101B, MS-103, and MS-114.
0085 I do have documentation (tim.mann@compaq.com) that partially covers these models,
0086 but no units to experiment with. The MS-124W support is tested with a real unit.
0087 The MS-124T support is untested, but should work.
0088
0089 The Generic driver supports multiple input and output substreams over a single
0090 serial port. Similar to Roland Soundcanvas mode, F5 NN is used to select the
0091 appropriate input or output stream (depending on the data direction).
0092 Additionally, the CTS signal is used to regulate the data flow. The number of
0093 inputs is specified by the ins parameter.