• Takashi Sakamoto's avatar
    ALSA: firewire-tascam: add support for incoming MIDI messages by asynchronous transaction · 107cc012
    Takashi Sakamoto authored
    TASCAM FireWire series use asynchronous transaction to transfer MIDI
    messages. The transaction is sent to a registered address.
    
    This commit supports the incoming MIDI messages. The messages in the
    transaction include some quirks:
     * Two quadlets are used for one MIDI message and one timestamp.
     * Usually, the first byte of the first quadlet includes MIDI port and MSB
       4 bit of MIDI status. For system exclusive message, the first byte
       includes MIDI port and 0x04, or 0x07 in the end of the message.
     * The rest of the first quadlet includes MIDI bytes up to 3.
     * Several set of MIDI messages and timestamp can be transferred in one
       block transaction, up to 8 sets.
    
    I note that TASCAM FireWire series ignores ID bytes of system exclusive
    message. When receiving system exclusive messages with ID bytes on physical
    MIDI bus, the series transfers the messages without ID bytes on IEEE 1394
    bus, and vice versa.
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    107cc012
tascam-transaction.c 4.89 KB