Don’t record “noise” with your Audiophile USB

If you load the snd-usb-audio without option with the current (2.6.24) linux kernel, your Audiophile USB will send you a nice “noise”.

$ arecord -vvv -D hw:2,1 -c2 -t raw -r48000 -fS24_3BE /tmp/test.raw
Recording raw data '/tmp/test.raw' :
Signed 24 bit Big Endian in 3bytes, Rate 48000 Hz, Stereo
Hardware PCM card 2 'Audiophile USB (tm)' device 1 subdevice 0
Its setup is:
[...]
Max peak (12000 samples): 0x007ff202 #################### 99%

But if you take look, it isn’t a noise, it’s a swapped endian stream.

$ aplay -c2 -t raw -r48000 -fS24_3BE /tmp/test.raw

Will play a noise.

$ aplay -c2 -t raw -r48000 -fS24_3LE /tmp/test.raw

Will play the real sound

As explained into the very complete Audiophile Usb kernel documentation, it’s a trouble which came with the 2.6.23 kernel.

The workaround is simple (but I took me .. one hour to understand) : load the snd-usb-audio with a device setup to set the sample depth to 24 bits.

  • Stop your Audiophile USB
  • Unload your snd-usb-audio module : modprobe -r snd_usb_audio
  • Reload it with the proper device_setup option : modprobe snd_usb_audio device_setup=0×09 index=2
  • Start your Audiophile USB
  • Take a look to your kernel log (the card index can be wrong for example)

A simple arecord -vv will confirme the endian order is fixed. You can now start your jackd server :-)

Tags: , , , , ,

Leave a Reply