Recording at 96 kHz: Requires USB 2.0 (duh…)

I recently installed Ubuntu Studio on a spare, many-years old system (a Pentium 3) to try out a new Edirol UA-25EX audio interface that I picked up. I plan to detail my experiences with Studio in a soon-to-come post, but there was one problem I ran into that warrants its own post.

After applying a patch for the device and rebuilding the kernel modules (again, topic for another post), I was easily able to record at 44.1 kHz. Then I ran the following command to record at 96 kHz:

mike@studio:~$ arecord -v -r 96000 -f cd -t wav -D plughw:UA25EX test.wav

After the expected verbose output, the arecord command immediately terminated with the following error message:

arecord: xrun:1090: read/write error, state = PREPARED

Hmm. Not very informative. I thought to run dmesg, though, which gave me more useful information:


[13469.727719] ALSA /home/mike/linux-ubuntu-modules-2.6.24-2.6.24/debian/build/build-rt/sound/alsa-driver/usb/usbaudio.c:864: cannot submit datapipe for urb 0, error -28: not enough bandwidth

Not enough bandwidth. It occurred to me at this point that this system is old enough to pre-date the common availability of USB 2.0. And then I was surprised to find that I didn’t know how to tell from the command line whether a system’s USB controllers are 1.1 or 2.0.

And so, to the point of this article: On a Linux system, how do you determine the versions of your USB controllers?

Simply run lspci -v | grep HCI. Any controllers that say “UHCI” or “OHCI” are USB 1.1; any that say “EHCI” are 2.0. Sure enough, there were only USB 1.1 controllers on the system. I picked up a PCI card with 5 USB 2.0 ports for $15, plugged the audio interface into that, and suddenly I could record at 96 kHz with no problem.

Advertisements

5 comments

  1. Great that you got this to work, but this is not a USB1 vs USB2 issue.

    USB1 is fast enough to drive a 96kHz stereo stream – once. So either recording or playing back – no full duplex. This is why the Edirol UA-25EX supports 44kHz and 48kHz in full duplex, but not 96kHz: it’s actually is usb1.1 device, even if it’s smartly marketed as ‘usb2 compatible’.

    • I don’t know for certain why recording wouldn’t work, but it started working after I plugged the device into a USB 2 port (switching from 1.1 to 2 was the only change).

      Either way, good information; thanks for the comment!

  2. I was working now for 2 day’s on the problem:
    “cannot submit datapipe for urb 0, error -28: not enough bandwidth”.

    finally – u cant imagine how simple it was – i found the reason and got my usb-sound back again.

    the main reason was the “auto-mute feature” after changing audio source with pulse.

    so try to go ahead.
    – open gnome-alsamixer or alsamixer
    – switch to tab USB Mixer
    – and increase master volume (Speaker) from zero to more…

    here is the original source for this hint:
    http://forum.ubuntuusers.de/topic/medusa-5-1-usb-headset/#post-2532118

    looks like the errormessage above has nothing todo with missing sound.

    hope this will help.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s