linux/sound/firewire
Takashi Sakamoto 83d8d72dff ALSA: firewire-lib: Add support for MIDI capture/playback
For capturing/playbacking MIDI messages, this commit adds one MIDI conformant
data channel. This data channel has multiplexed 8 MIDI data streams. So this
data channel can transfer messages from/to 8 MIDI ports.

And this commit allows to set PCM format even if AMDTP streams already start.
I suppose the case that PCM substreams are going to be joined into AMDTP
streams when AMDTP streams are already started for MIDI substreams. Each
driver must count how many PCM/MIDI substreams use AMDTP streams to stop
AMDTP streams.

There are differences between specifications about MIDI conformant data.

About the multiplexing, IEC 61883-6:2002, itself, has no information. It
describes labels and bytes for MIDI messages and refers to MMA/AMEI RP-027
for 'successfull implementation'. MMA/AMEI RP-027 describes 8 MPX-MIDI data
streams for one MIDI conformant data channel. IEC 61883-6:2005 adds
'sequence multiplexing' and apply this way and describe incompatibility
between 2002 and 2005.

So this commit applies IEC 61883-6:2005. When we find some devices compliant
to IEC 61883-6:2002, then this difference should be handles as device quirk
in additional work.

About the number of bytes in an MIDI conformant data, IEC 61883-6:2002 describe
0,1,2,3 bytes. MMA/AMEI RP-027 describes 'MIDI1.0-1x-SPEED', 'MIDI1.0-2x-SPEED',
'MIDI1.0-3x-SPEED' modes and the maximum bytes for each mode corresponds to 1,
2, 3 bytes. The 'MIDI1.0-2x/3x-SPEED' modes are accompanied with 'negotiation
procedure' and 'encapsulation details' but there is no specifications for them.

So this commit implements 'MIDI1.0-1x-SPEED' mode for playback, but allows
to pick up 1-3 bytes for capturing.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-26 14:12:44 +02:00
..
amdtp.c ALSA: firewire-lib: Add support for MIDI capture/playback 2014-05-26 14:12:44 +02:00
amdtp.h ALSA: firewire-lib: Add support for MIDI capture/playback 2014-05-26 14:12:44 +02:00
cmp.c ALSA: firewire: extend snd_fw_transaction() 2013-10-20 22:07:57 +02:00
cmp.h ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
dice-interface.h ALSA: dice: document quadlet alignment 2013-10-20 22:07:57 +02:00
dice.c ALSA: firewire-lib: Add 'direction' member to 'amdtp_stream' structure 2014-05-26 14:11:42 +02:00
fcp.c ALSA: firewire: extend snd_fw_transaction() 2013-10-20 22:07:57 +02:00
fcp.h ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
isight.c ALSA: firewire: Convert to snd_card_new() with a device pointer 2014-02-14 08:13:31 +01:00
iso-resources.c sound: Add export.h for THIS_MODULE/EXPORT_SYMBOL where needed 2011-10-31 19:31:22 -04:00
iso-resources.h firewire: octlet AT payloads can be stack-allocated 2011-05-10 22:53:44 +02:00
Kconfig ALSA: dice: restrict the driver to playback-only devices 2013-10-20 22:07:57 +02:00
lib.c ALSA: firewire: extend snd_fw_transaction() 2013-10-20 22:07:57 +02:00
lib.h ALSA: firewire: extend snd_fw_transaction() 2013-10-20 22:07:57 +02:00
Makefile ALSA: add DICE driver 2013-10-17 21:18:32 +02:00
packets-buffer.c sound: Add export.h for THIS_MODULE/EXPORT_SYMBOL where needed 2011-10-31 19:31:22 -04:00
packets-buffer.h ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
scs1x.c ALSA: firewire: Convert to snd_card_new() with a device pointer 2014-02-14 08:13:31 +01:00
speakers.c ALSA: firewire-lib: Add 'direction' member to 'amdtp_stream' structure 2014-05-26 14:11:42 +02:00