Open-source USB interface: Audio Widget

Latest firmware

Turbon, attached to this post is a zip file containing three firmware .elf files for your three audio widget boards. There is no functional difference between the three, but each one has a different USB PID and identifies itself with a different product description.

For UAC2 on Windows, you need a new enough ASIO driver in order for it to recognize these PIDs. Here is one that will work:
AWSetup_20130211.zip - sdr-widget - Windows ASIO driver update - Audio and Control Interface for Amateur Radio SDR and Audiophile USB-DAC - Google Project Hosting

If you already have an older version of the Windows ASIO driver installed, you should de-install it completely first before installing the new one. Here is some text taken from the AW_readme.txt file:

0 - Unplug Audio Widget from your computer.

1 - Uninstall AudioWidget in Start menu or C:\Program Files (x86)\Audio-Widget

2 - Open the Start menu and choose Run. Type in "cmd". On the icon on top, right-click and choose "Run as Administrator". Click "OK" in the User Account Control window.

3 - At the command prompt, type in "set devmgr_show_nonpresent_devices=1" and press Enter. (Note that nothing seems to happen. This is expected. You are actually setting an environment variable which is going to help you to see hidden devices.)

4 - On the next command prompt line, type devmgmt.msc and press Enter. This will launch the Windows Device Manager Console.

5 - In the Device Manager Console, from the View menu, select Show Hidden Devices.

6 - Search under tabs for
"libusbK USB Devices"
"Sound, video..."
"Audio-Widget..."
There, delete and uninstall anything which rings of:
"Audio-Widget"
"SDR-Widget"
"DG8SAQ"
"QNKTC"
"Yoyodyne"

7 - You should now be ready to install the new fresh version of the drivers.

Good luck and let us know how it works.
 

Attachments

  • awx20140423.zip
    243.9 KB · Views: 80
Turbon, attached to this post is a zip file containing three firmware .elf files for your three audio widget boards. There is no functional difference between the three, but each one has a different USB PID and identifies itself with a different product description.

For UAC2 on Windows, you need a new enough ASIO driver in order for it to recognize these PIDs. Here is one that will work:
AWSetup_20130211.zip - sdr-widget - Windows ASIO driver update - Audio and Control Interface for Amateur Radio SDR and Audiophile USB-DAC - Google Project Hosting

...

Good luck and let us know how it works.

All 3 DACs works on a win7 PC with the drivers Börge is promoting.
The problem is that I don't use the DAC on a PC. Only Squeezeboxes and piReplayers. On these I just get static with the new code - now I only had time to test the USB9023 this morning but it works as bad as the code Börge recommends. I will test on the AB-1.1 and USB5102 as well before I give it up.
I might as well inform that my reference is a "real" ;) DAC with a Tenor chip - the ODAC and it works allright.

But as I said - I will revert to older code as it worked just fine with Squeezeboxes and stuff.

Thanks anyway.

Regards
 
Last edited:
Ok, the lastest working codes from the google site:

USB5102 - not tested. I use audio-widget-PCM5012-win-osx-2012-02-14.elf from George.
AB-1.1 and USB9023 - audio-widget_20120721.elf

To notice is that they all work on win7 with the drivers but newer than the listed above won't work on Squeezebox.

Regards
 
I assume by "squeezebox" you mean the USB port on the Squeezebox Touch. You need the "Enhanced Digital Output" applet installed on it for that port to accept a USB DAC, and I assume you've done so, or else your audio widgets wouldn't have worked on it with old firmware.

I have a Squeezebox Touch but I haven't tried connecting my audio-widget to it yet, but I noticed that the version of the Linux kernel on my squeezebox is 2.6.26, and that's with the latest update. It's probably too old for UAC2 (I believe 2.6.37 or later is needed). But UAC1 should work. I'll have to try it some time.
 
OK, I tested my AB1.1 (with the latest firmware, and running in UAC1 mode) on the Squeezebox Touch, with the "Enhanced Digital Output" applet installed. In the "Settings > Digital Output" menu, after selecting the audio widget as the output device, don't choose the "async UAC1 workaround" option. Select the "Use a hub" option instead. And it worked just great. I only tried 44.1KHz files.

UAC2 didn't work, which is not surprising given the old Linux kernel on the squeezebox.

So, Turbon, I don't know why yours didn't work. Try setting the squeezebox up the way I described here.
 
Last edited:
OK, I tested my AB1.1 (with the latest firmware, and running in UAC1 mode) on the Squeezebox Touch, with the "Enhanced Digital Output" applet installed. In the "Settings > Digital Output" menu, after selecting the audio widget as the output device, don't choose the "async UAC1 workaround" option. Select the "Use a hub" option instead. And it worked just great. I only tried 44.1KHz files.

UAC2 didn't work, which is not surprising given the old Linux kernel on the squeezebox.

So, Turbon, I don't know why yours didn't work. Try setting the squeezebox up the way I described here.

I use mine and it is setup just as you describe... Very strange indeed.
But i'll survive with the older code.

Regards
 
Hi guys,

Here's how to play UAC2 audio from any Windows program on an Audio-Widget! NB: This requires some Windows skill. The code is tested on Win7-64 and Win7-32.

First of all download VB-Audio Virtual Cable

It is a virtual audio device which forwards audio from any application to ASIO. On 64-bit Windows the ASIO driver must be a 64-bit binary for the ASIO bridge to work.

It's been busy days with ASIO driver programming. Nikolay's original code (with a few minor bugfixes) has been converted to Visual Studio a 2012 Express project for 64-bit builds. Thanks to Ti (AMB)!

My RAM based .wav player in WidgetTest runs natively on both 32 and 64-bit Windows.

Both are released as a binary patch which installs on top of the existing ASIO driver. A full and automatic driver install package is in the works. If you are not comfortable editing a .reg file, leave this patch alone.

Download: https://github.com/borgestrand/widget_binaries
Code: https://github.com/nikkov/Win-Widget/tree/exp_asio

The combination of VB-Audio ASIO bridge and ASIO driver seems to work quite well. Only remember:

- Turn ASIO off before sleeping or hibernating your computer. Failure to do so may require fool reboot.

- Preferably use a player application which supports WASAPI exclusive mode. Only then does the Windows audio system use the sample rate of the music file being played.


Cheers,

Børge

P.S. Sorry for the cross-posting to the Audio-Widget mailing list
 
Last edited:
In case there is any confusion, the software to download and install is NOT the "VB-CABLE Driver". What you need is the "ASIO Bridge (Virtual Hi-Fi Cable And ASIO Bridge)".

This allows you to use any player software with the audio widget in UAC2 mode, even when there is no ASIO plugin available for the player.

The ASIO Bridge creates a virtual sound card interface "VB-Audio Hi-Fi Cable" which you should set up your player software to use as the output device. Then, start up the ASIO Bridge panel, set its output device to "ASIO USB Audio Class 2 Driver" and enable the bridge. In effect, the ASIO bridge acts like a proxy between the player software and the ASIO driver. Make sure you set your audio widget to operate in UAC2 mode.

You don't need to use the ASIO Bridge if your player software has ASIO support (via a plugin, such as foobar2000 or JRiver). You also don't need this if you're running the audio widget in UAC1 mode.

Note that when you are using the ASIO Bridge, it will block other programs from accessing the device.
 
In case there is any confusion, the software to download and install is NOT the "VB-CABLE Driver". What you need is the "ASIO Bridge (Virtual Hi-Fi Cable And ASIO Bridge)".

This allows you to use any player software with the audio widget in UAC2 mode, even when there is no ASIO plugin available for the player.

The ASIO Bridge creates a virtual sound card interface "VB-Audio Hi-Fi Cable" which you should set up your player software to use as the output device. Then, start up the ASIO Bridge panel, set its output device to "ASIO USB Audio Class 2 Driver" and enable the bridge. In effect, the ASIO bridge acts like a proxy between the player software and the ASIO driver. Make sure you set your audio widget to operate in UAC2 mode.

You don't need to use the ASIO Bridge if your player software has ASIO support (via a plugin, such as foobar2000 or JRiver). You also don't need this if you're running the audio widget in UAC1 mode.

Note that when you are using the ASIO Bridge, it will block other programs from accessing the device.

Can you use this as a multichannel driver for listening to surround tracks with Windows Media Center/Player, Arcsoft TMT, MPC Home Cinema, or VLC?

Sent from my Nexus 7 using Tapatalk
 
if you downmix the 5.1 (etc) output to linear pcm spdif, yes.

I 'watch movies' all the time by having the multichannel stuff be mapped to stereo downmix.

if you are asking if the AW can deal with dts/dd5.1 directly, the answer is no.

I'm not asking if AW can deal with dts/dd5.1 and am not very interested in always needing to downmix to stereo. When I rip my Blu-rays to MKV containers, I usually have the DTS-HD MA or Dolby TrueHD 5.1/7.1 tracks encoded to FLAC. I understand the AW is limited to 2 channels, but was just wondering if this ASIO bridge would work in a multichannel environment with different hardware. I also wonder if there would be any issues with audio/video synchronization because of additional audio latency when you use this ASIO bridge.
 
let me see if I understand: you are asking if you can run several AW's on a single pc and group the pairs of channels into the 5.1/7.1 matrix, so that you can have full multichannel surround support using discrete rca line-outs from the series of AW's?

if that's the question, maybe someone at the driver level can answer it. I have doubts this would work but its more about the driver than the hardware, so I cant help here.
 
I read something, a while ago, about using pairs of stereo cards (on linux) to get a discrete 5.1 output without using a surround-capable single sound card. of course, windows would be entirely different.

there was also talk of using hdmi multichannel output as a way to get concurrent discrete outputs, separate from 'surround'.

none of this is easy or standard, though. probably an uphill battle to get any of that multichannel stuff working on non-dd/dts style cards.
 
Short answer: No more than stereo. The MCU is limited in terms of serial interfaces which can send I2S data to DAC chips.

Even if the drivers allowed you to, using multiple asynchronous USB DACs on the same computer, on the same composite audio stream, would probably be a bit of a hassle.

By the way, what does the movie player do when the DAC is asynchronous and requests audio sample rate adjustments from the Host?


Børge
 
Hi people.
I own the Henry Audio DAC but I'm not able to run it as UAC2 mode using foobar2000.
I've installed ASIO drivers and Audio Widget. OS is win7 and the DAC is now set in UAC2 (red light). I'm trying to play ISO SACD files but I don't get any sound in the speakers.
Using UAC1 mode the DAC works fine with f2k, but I'd like to check UAC2 and try to know the benefits you can get.
I don't know what I'm doing wrong. All your opinions are welcome.
Please, be patient because I'm a beginner on this.

Thanks.