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
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
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
arecord -D hw:1 -c 2 -r 48000 -f s16_le out.wav
arecord -D hw:1 -c 1 -r 8000 -f s8 out.wav