Open-source USB interface: Audio Widget

Member
Joined 2004
Paid Member
Latency? Why is this important? If you have multiple devices they will never be in sync from the USB interface. The big nightmare is that they will change every time you start the system. You need a hardware workaround or a multichannel USB device to overcome that problem.

The AK4430 is giving me exceptional performance. It has a few weaknesses both measured and sonically but you will be 10X to 30X the cost to get a small improvement.

There are far more important issues in getting the performace from the system. You need a well isolated source because the ground of the audio output is the same as the PC and thus noise can be coupled. You should have a well isolated low leakage supply or battery powered source to start with. Then the noise on the USB power can also get coupled through so it should also be low noise. These issues will easily dominate the performance of any DAC in this application.

I have a bunch of measurements that give a picture of this I'll post in the next few days.
 
Last edited:


@Borge,

I am not a big of reviewer , but your DAC has made me fall in love with Music more.

My simple review is for me this DAC beats anything with windows 7 on ASIO drivers with foobar.

used it on linux with ALSA and 24 48 and no way what i heard on foobar...

for me windows 7 with foobar and ASIO this DAC freaking ROCKS...it made me put my peachtree DEcco2 dac to put it on sale...


V
 
@Borge,

I am not a big of reviewer , but your DAC has made me fall in love with Music more.

for me windows 7 with foobar and ASIO this DAC freaking ROCKS...it made me put my peachtree DEcco2 dac to put it on sale...

V

Feedback such as this gives us much encouragement to continue to improve our designs :)

Ultimately all our work is for enjoyment of music :D

Alex
 
Anybody can tell me about 2 of those at the same time for 4 output and on windows 7 64bit.. what is the lowest latency...

If you need more than 2 channels in a USB-I2S converter, the exaU2I is one of the few that can deliver more(up to 8 at 192Khz).

It's also 2.5X the price, requires it's own ASIO driver, is not Open Source, and does not currently have a Linux driver.

Audiolic, it sounds like you are looking for the Holy Grail. Maybe you need to relax and enjoy the music, you might have already found your personal Grail
;)
 
Long shot I know, but has anybody got a spare AB1.1 back panel for the Audio Widget? I screwed mine up whilst attempting to widen the phono sockets (grrr!).

On a different more positive note, finally got around to building a 5V Salas Shunt Reg, and hooked it up to the AB1.1. This DAC sounds surprisingly good with the stock USB provided volts. But really opens up and sounds utterly beguiling and powerful with the external PSU. Played about with the voltages a little (within reason!) and found AB1.1 sounds better at 5.5V. Decided that was a little too close to the maximum limit, and dropped this down to just under 5.4 volts. Been running for 4 days like that now and all is well, and it sounds fantastic! :)

Cheers,

- John

(Have already asked Børge re. spare back panel but I don't think he has any alas).
 
Noise reduced - please test

I have significantly reduced Audio Widget noise on my system. Please test the updated firmware on UAC1/2 using all modes, platforms and players and report any noise. Does the ADC subsystem still work? The firmware branch audio-widget-experimental has been updated with new source code.

audio_widget_ex_20120912.elf - sdr-widget - Noise significantly reduced - Audio and Control Interface for Amateur Radio SDR and Audiophile USB-DAC - Google Project Hosting

Status:

* The foobar2000 time-bar pull noise was reduced by forcing left samples to be written to addresses with LSB=0. (uac2_device_audio_task.c:462) A very busy ASIO driver with much debug information being printed may have masked out this bug by starting the music stream late. The same is probably the cause on other OSes / players.

* A similar bug was found in the UAC1 code (uac1_device_audio_task.c:400), so please test UAC1 as well. I do not know if it is also present in hpsdr_device_audio_task.c.

* Mid-music noise is presumably because a feedback update is missed by a busy task on the host computer. To try to safeguard against this I have introduced two layers of feedback into UAC2. (uac2_device_audio_task.c:331)

Programmers, please give your opinion on this change. Summary:
The old "gap" limit of SPK_BUFFER_SIZE/2 for changing FB_rate has been halved in order to make new _inner_ bounds. Within these narrower bounds the feedback system should work as before. However, should "gap" exceed these inner bounds (during startup or due to missed feedback), the bounds from existing code kick in, this time changing FB_rate by +- 2*FB_RATE_DELTA. I was able to separately test both the new inner bounds and the new double FB_rate. However, it is hard to test the combination of the two. That's why I ask you to test the updated FW with UAC2.

Børge
 
Last edited:
Dear Borge,
First of all, congratulation for your work, i am impressed by your dedication and knowledge, please keep up, you are doing a very good job!


I am interested in purchasing a AB-1.2 USB DAC, the only problem i have is the mini B USB input, is there any way to change mini B USB input to USB B BUS ?
I have a very hi quality USB B BUS cable already and i hope i do not need to change this cable for AB-1.2 USB DAC, maybe is another method for me to enjoy listening music thru your DAC.


Thank you for your time!
Have a nice evening !


Best Regards,
Valeriu
 
AB1.1 in raspberry pi anyone?

Is anyone running the AB1.1 with the raspberry pi?

I just set up mine this weekend, Arch linux/MPD (mpd from the archlinux packages). I did the fuse by-pass on the raspberry board to increase the current supplied on the usb connector. I'm running the AB1.1 on usb power for this test. My raspberry is on a wallwart that supplies 2.2A to the board.

My mpd audio setup is minimal:

audio_output {
type "alsa"
name "audowidget_dac"
device "hw:0,0"
}

When I play music only one speaker sounds loud, the other one sounds intermittently and with very low volume when it sounds. The sound is distorted and at times it sounds "slow" (slow like the sound of an record being played on a turntable whose platter is rotating at less than 33rpm)!

EDIT!!!!
I wrote this originally:

Top shows the mpd process only taking up about 6% of cpu time and little memory, so it's doesn't seem like the raspberry pi is running out of steam. I have the minimum number of daemons running.

But looking at the cpu load for a while when playing music shows the cpu usage averaging 85%!!! I'll shut off whatever else I can and see if it improves...


It's not the AB1.1because it plays fine using my "regular" pc with puplinux and mpd. I have not flashed the latest firmware to the AB1.1 because it runs perfectly with my "regular" pc.

Just thought I would ask see if anyone else had tried the raspberry pi with the AB1.1.

Thanks.
 
Last edited:
I am able to get older (cmedia 44/48k dongle) usb audio working with the Pi but not the AW. I have the latest updates for the Pi installed but not getting drop-free playback at all. on my x86 boxes, its fine, but not on the Pi.

I don't have auto_resample set, but even 44.1 material has major drop-outs on the Pi.

I assumed all this was due to the very buggy usb stack on the Pi, not the AW. they admit that there's tons of debug work left before the usb stack on the Pi gets production quality. so, I would not tear your hair out with Pi usb issues. give them time to stabilize their own software (and even hardware, as there are power supply issues with the Pi, too).
 
I did added the no resampling and it improved the cpu usage and sound quality.

I was also doing the test reading the music files from the local pi sd card. I tried it with a nfs shared music directory and it improved some more.

It's no longer "slow" and it's mostly clean, but there are still artifacts in the sound.

I'll play a bit more with it for my amusement, but I think Linuxworks is correct, I'll wait for revisions for the pi before attempting again (or a new board release).

Linuxworks, is your AW externally powered, or you are also tyring to run it off the usb power like me?

Thanks for the help guys.
 
I give it power from a usb hub that uses an lm7805 style reg and good size trafo. I'm pretty sure the power is clean.

another indication things are still not ready for prime time: audio devices don't appear to be seen when thru a hub (maybe a 2.0 hub). when plugged in direct, they are seen. a long time ago, I remember linux having issues with being behind hubs. I think its solved now but it was around for a while. it seems the Pi has the problem, too, and so I connect the audio dongle directly to one usb port and I power everything thru the 2nd port, basically from the powered hub. music is via smb or nfs mount.
 
I am able to get older (cmedia 44/48k dongle) usb audio working with the Pi but not the AW. I have the latest updates for the Pi installed but not getting drop-free playback at all. on my x86 boxes, its fine, but not on the Pi.

I don't have auto_resample set, but even 44.1 material has major drop-outs on the Pi.

I assumed all this was due to the very buggy usb stack on the Pi, not the AW. they admit that there's tons of debug work left before the usb stack on the Pi gets production quality. so, I would not tear your hair out with Pi usb issues. give them time to stabilize their own software (and even hardware, as there are power supply issues with the Pi, too).

I believe most distros have alsa configured to upsample to 48k per default, so you may be wasting clock cycles on your pi.

BTW, what mode are you guys running the AW in? I have recently played around with my AB1.1 in UAC2 and the latest "stable" release was not good for high res files, but the latest one called experimental works like charm.
 
Last edited:
windows used to force a default resample. that's no longer the case.

it was never the case with linux or alsa. the only time a resample was requested was when the output samplerate != input samplerate.

when I mpd over alsa and leave all options as defaults, I never get my 44.1 stuff upsampled to 48k. I have leds that show the actual output and I'd notice this ;)
 
Is anyone running the AB1.1 with the raspberry pi?

I just set up mine this weekend, Arch linux/MPD (mpd from the archlinux packages). I did the fuse by-pass on the raspberry board to increase the current supplied on the usb connector. I'm running the AB1.1 on usb power for this test. My raspberry is on a wallwart that supplies 2.2A to the board.

My mpd audio setup is minimal:

audio_output {
type "alsa"
name "audowidget_dac"
device "hw:0,0"
}

When I play music only one speaker sounds loud, the other one sounds intermittently and with very low volume when it sounds. The sound is distorted and at times it sounds "slow" (slow like the sound of an record being played on a turntable whose platter is rotating at less than 33rpm)!

EDIT!!!!
I wrote this originally:

Top shows the mpd process only taking up about 6% of cpu time and little memory, so it's doesn't seem like the raspberry pi is running out of steam. I have the minimum number of daemons running.

But looking at the cpu load for a while when playing music shows the cpu usage averaging 85%!!! I'll shut off whatever else I can and see if it improves...


It's not the AB1.1because it plays fine using my "regular" pc with puplinux and mpd. I have not flashed the latest firmware to the AB1.1 because it runs perfectly with my "regular" pc.

Just thought I would ask see if anyone else had tried the raspberry pi with the AB1.1.

Thanks.

I tried the AB1.1 with the Raspberry Pi with raspbmc Raspbmc
with the pulseaudio server [Alpha] usb sound cards support for raspbmc

No much luck, very high processor comsumtion 90%, random glitches