• Takashi Sakamoto's avatar
    ALSA: firewire-digi00x: handle all MIDI messages on streaming packets · 8820a4cf
    Takashi Sakamoto authored
    At a commit 9dc5d31c ("ALSA: firewire-digi00x: handle MIDI messages in
    isochronous packets"), a functionality to handle MIDI messages on
    isochronous packet was supported. But this includes some of my
    misunderstanding. This commit is to fix them.
    
    For digi00x series, first data channel of data blocks in rx/tx packet
    includes MIDI messages. The data channel has 0x80 in 8 bit of its MSB,
    however it's against IEC 61883-6. Unique data format is applied:
     - Upper 4 bits of LSB represent port number.
      - 0x0: port 1.
      - 0x2: port 2.
      - 0xe: console port.
     - Lower 4 bits of LSB represent the number of included MIDI message bytes;
       0x0/0x1/0x2.
     - Two bytes of middle of this data channel have MIDI bytes.
    
    Especially, MIDI messages from/to console surface are also transferred by
    isochronous packets, as well as physical MIDI ports.
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    8820a4cf
amdtp-dot.c 11.2 KB