diff options
author | Sebastien Alaiwan <sebastien.alaiwan@gmail.com> | 2010-02-16 07:55:08 (GMT) |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2010-02-16 08:34:56 (GMT) |
commit | d39e82db73eb876c60d00f00219d767b3be30307 (patch) | |
tree | 6a6d0fdaae86bd4089e66578dd2bed19a6987d87 /sound/usb/usbmidi.c | |
parent | c3a3e040f01457d2ea4f199f75ca205401001a3b (diff) | |
download | linux-d39e82db73eb876c60d00f00219d767b3be30307.tar.xz |
ALSA: USB MIDI support for Access Music VirusTI
Here's a patch that adds MIDI support through USB for one of the Access
Music synths, the VirusTI.
The synth uses standard USBMIDI protocol on its USB interface 3, although
it does signal "vendor specific" class. A magic string has to be sent on
interface 3 to enable the sending of MIDI from the synth (this string was
found by sniffing usb communication of the Windows driver). This is all
my patch does, and it works on my computer.
Please note that the synth can also do standard usb audio I/O on its
interfaces 2&3, which already works with the current snd-usb-audio driver,
except for the audio input from the synth. I'm going to work on it when I
have some time.
Signed-off-by: Sebastien Alaiwan <sebastien.alaiwan@gmail.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de> (cosmetics, list terminator)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/usb/usbmidi.c')
-rw-r--r-- | sound/usb/usbmidi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c index 6e89b83..8f5bc1e 100644 --- a/sound/usb/usbmidi.c +++ b/sound/usb/usbmidi.c @@ -1407,6 +1407,12 @@ static struct port_info { EXTERNAL_PORT(0x086a, 0x0001, 8, "%s Broadcast"), EXTERNAL_PORT(0x086a, 0x0002, 8, "%s Broadcast"), EXTERNAL_PORT(0x086a, 0x0003, 4, "%s Broadcast"), + /* Access Music Virus TI */ + EXTERNAL_PORT(0x133e, 0x0815, 0, "%s MIDI"), + PORT_INFO(0x133e, 0x0815, 1, "%s Synth", 0, + SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | + SNDRV_SEQ_PORT_TYPE_HARDWARE | + SNDRV_SEQ_PORT_TYPE_SYNTHESIZER), }; static struct port_info *find_port_info(struct snd_usb_midi* umidi, int number) |