[alsa-devel] emagic mt4 problems
Kazuhiro Ito
kzhr at d1.dion.ne.jp
Sun May 15 13:48:04 CEST 2016
When I use emagic mt4 (USB-MIDI interface) on Linux, there are some
minor problems.
1. mt4 never switches to computer mode until PC receives mt4's
response to initialization command.
Mt4 has two mode, patch mode and computer mode. When connected to PC,
it is in patch mode. To use as MIDI interface, mt4 must switch to
computer mode. Linux drvier sends commnad "F0 00 20 31 64 0B 00 00
F7" to make mt4 switch to computer mode. But mt4 is still in patch
mode after having received the command. It switches to computer mode
when PC receives the response from mt4. I must run the below command
to make mt4 really ready for use as MIDI interface.
$ amidi -l
Dir Device Name
IO hw:2,0,0 MT4 MIDI 1
IO hw:2,0,1 MT4 MIDI 2
IO hw:2,0,2 MT4 MIDI 3
O hw:2,0,3 MT4 MIDI 4
O hw:2,0,4 MT4 Broadcast
$ amidi -p hw:2,0,0 -r /dev/null -t 1
According to Kurt Arnlund's web page (*1), emagic devices accept "Set
Computer Mode" command ("F0 00 20 31 64 0F 00 7F F7"), and actually
mt4 switches to computer mode with this command immidiately and
receiving mt4's response is not needed.
(*1) http://www.potm.org/software/Unitor/mididata/
2. Outputs to MIDI 1 are broadcasted.
After switching to computer mode by the above procedure, output to
MIDI 1 is broadcasted as if outputted to broadcast port. The current
output port in driver's internal state is initialized to port 0 (MIDI
1). But actual device's current port is initialized to port 4
(broadcast port). So output to MIDI 1 doesn't make driver send port
switch command until output to other port occurs. I think driver's
current port state should be initialized to 4 (for mt4) or larger
number.
I worte the patch for the problems (to linux kernel 3.16), but I don't
know it works with other emagic devices such as amt4, unitor8. If
there is anyone has emagic device, please test the below command on
unpatched kernel to check whether the device accepts "Set Computer
Mode" command.
$ amidi -p hw:2,0,0 -r /dev/null -t 1
$ amidi -p hw:2,0,0 -S 'F0 00 20 31 64 10 00 7F 00 F7'
$ amidi -p hw:2,0,0 -S 'F0 00 20 31 64 0F 00 7F F7'
My mt4 swithes to computer mode with the first amidi command, and
returns to patch mode with second command, and finally re-enters in
computer mode with the last command.
--
Kazuhiro Ito
-------------- next part --------------
A non-text attachment was scrubbed...
Name: midi.c.diff
Type: application/octet-stream
Size: 674 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20160515/e3060a35/attachment-0001.obj>
More information about the Alsa-devel
mailing list