The USB interface details for the three ADC/DAC devices I tested are listed below.

Maker = *Focusrite*
Device = *Scarlett 2i2 USB*
Vendor ID = 4661
Product ID = 32774
play using 24 bits per sample using 4 bytes per subframe
ch = 2 res = 24 bytes/ch = 4 lpcm
rates are: 44100 48000 88200 96000 samples/sec

rec using 24 bits per sample using 4 bytes per subframe
ch = 2 res = 24 bytes/ch = 4 lpcm
rates are: 44100 48000 88200 96000 samples/sec


Maker = *BEHRINGER *
Device = *BEHRINGER UMC202*
Vendor ID = 5015
Product ID = 1280
play using 24 bits per sample using 4 bytes per subframe
ch = 2 res = 24 bytes/ch = 4 lpcm
rates are: 44100 48000 88200 96000 samples/sec

rec using 24 bits per sample using 4 bytes per subframe
ch = 2 res = 24 bytes/ch = 4 lpcm
rates are: 44100 48000 88200 96000 samples/sec

For use with Linux the main point to note is that the 2i2 and UMC202 each require 4 bytes per transfer despite using 24 bit values for the samples. This means the transfers are ‘padded’ with a least-significant-byte that is null (zero) and ignored by the device. For example, this means that when recording using the arecord command on a Linux computer where the USB device is recognised as ALSA device 1 you would use a command like

arecord -D hw:1 -c 2 -r 96000 -f s32_le out.wav

to make a stereo recording at 96k sample rate. The resulting wave file would then be LPCM but have 32 bits per sample, of which only 24 would be audio data. The advantage of this approach is that using hw: ensures the samples have not been altered in any way. However you would then need to process the output file if you wish to obtain a 24bit wave file with no padding bytes. Alternatively, you could use

arecord -D plughw:1 -c 2 -r 96000 -f s24_le out.wav

and this would allow ALSA to process the samples captured from the device for you and generate an output wave file with 24 bits per sample. Note that you can get a list of ALSA device numbers using the arecord -l command. Usually the computer’s internal soundcard is device zero (hw:0) so if you only have one USB audio device connected it will be hw:1.


Maker = *Burr-Brown from TI *
Device = *USB Audio CODEC *
Vendor ID = 2235
Product ID = 10498
play using 16 bits per sample using 2 bytes per subframe
play using 8 bits per sample using 1 bytes per subframe
ch = 2 res = 16 bytes/ch = 2 lpcm
ch = 1 res = 16 bytes/ch = 2 lpcm
ch = 2 res = 8 bytes/ch = 1 lpcm
ch = 1 res = 8 bytes/ch = 1 lpcm
rates are: 32000 44100 48000 samples/sec

rec using 16 bits per sample using 2 bytes per subframe
rec using 8 bits per sample using 1 bytes per subframe
ch = 2 res = 16 bytes/ch = 2 lpcm
ch = 1 res = 16 bytes/ch = 2 lpcm
ch = 2 res = 8 bytes/ch = 1 lpcm
ch = 1 res = 8 bytes/ch = 1 lpcm
rates are: 8000 11025 16000 22050 32000 44100 48000 samples/sec

Unlike the 2i2 and UMC202, the UCA202 does not ‘pad’ the data transfers with null bytes. This means that when using the UCA202 the command

arecord -D hw:1 -c 2 -r 48000 -f s16_le out.wav

would produce an output stereo wave file with 16 bits per sample at 48k sample rate. Changing this to, say,

arecord -D hw:1 -c 1 -r 8000 -f s8 out.wav

would produce a mono wave file with an 8k sample rate.