E-MU 0404 USB 2.0 and some "artifacts peaks" on left channel

Member
Joined 2002
Paid Member

Attachments

  • microframes.jpg
    microframes.jpg
    147.3 KB · Views: 27
USB device (endpoint) specifies how often it expects/sends data, in USB descriptor bInterval. For USB2 highspeed (i.e. the E-MU) the value gives multiples of 125us microframes (125us, 250us, 500us, 1000us). Devices typically support several channel/samplerate/bInterval combinations - called alternate settings (altsets). When the driver opens the device it selects which altset will be used. Shorter packet interval means lower latency.

Linux lists these altsets for my E-MU 0404USB:

Code:
E-MU Systems, Inc. E-MU 0404 | USB at usb-0000:02:00.0-8, high speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 7
    Packet Size = 586
    Momentary freq = 96000 Hz (0xc.0000)
    Feedback Format = 13.19
  Interface 1
    Altset 1
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 1
    Implicit Feedback Mode: No
  Interface 1
    Altset 2
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 2
    Implicit Feedback Mode: No
  Interface 1
    Altset 3
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 48000
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 3
    Implicit Feedback Mode: No
  Interface 1
    Altset 4
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 48000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 4
    Implicit Feedback Mode: No
  Interface 1
    Altset 5
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 88200
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 5
    Implicit Feedback Mode: No
  Interface 1
    Altset 6
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 88200
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 6
    Implicit Feedback Mode: No
  Interface 1
    Altset 7
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 96000
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 7
    Implicit Feedback Mode: No
  Interface 1
    Altset 8
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 96000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 8
    Implicit Feedback Mode: No
  Interface 1
    Altset 9
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 176400
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 9
    Implicit Feedback Mode: No
  Interface 1
    Altset 10
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 192000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 10
    Implicit Feedback Mode: No
  Interface 1
    Altset 11
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR SL SR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 11
    Implicit Feedback Mode: No
  Interface 1
    Altset 12
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR SL SR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 12
    Implicit Feedback Mode: No
  Interface 1
    Altset 13
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 48000
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR SL SR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 13
    Implicit Feedback Mode: No
  Interface 1
    Altset 14
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 48000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR SL SR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 14
    Implicit Feedback Mode: No
  Interface 1
    Altset 15
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 88200
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR SL SR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 15
    Implicit Feedback Mode: No
  Interface 1
    Altset 16
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 96000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR SL SR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 16
    Implicit Feedback Mode: No

Capture:
  Status: Stop
  Interface 2
    Altset 1
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 44100
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 2
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 44100
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 3
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 48000
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 4
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 48000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 5
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 88200
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 6
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 88200
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 7
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 96000
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 8
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 96000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 9
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 176400
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 10
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 192000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR
  Interface 2
    Altset 11
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 44100
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR FC LFE
  Interface 2
    Altset 12
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 44100
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR FC LFE
  Interface 2
    Altset 13
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 48000
    Data packet interval: 1000 us
    Bits: 24
    Channel map: FL FR FC LFE
  Interface 2
    Altset 14
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 48000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR FC LFE
  Interface 2
    Altset 15
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 88200
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR FC LFE
  Interface 2
    Altset 16
    Format: S24_3LE
    Channels: 4
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 96000
    Data packet interval: 500 us
    Bits: 24
    Channel map: FL FR FC LFE

Please note that the device supports many combinations of channels/samplerates, nice. All combinations are available in 500us packet interval, those combinations that fit 1000us interval (adhering to the 1024 bytes per frame isochronous limit), are also available in that interval (to spare CPU and limit risk of underflows).

Linux USB driver picks the longest packet interval available, hence I cannot force the 500us interval for 48kHz. Likely your ASIO driver picks 500us (correctly, as ASIO focuses on latency) and therefore the artefacts of 2kHz in your RTA, IMHO. Exact details would be visible in USB packet capture e.g. via wireshark.

Devices using 1000us packet interval often have 1kHz artefact. For USB devices it's better to measure with a signal not exactly 1kHz, so that the measurement harmonics do not ovelap with the USB artefacts in RTA.
 
Last edited:
  • Like
Reactions: 1 user