Open-source USB interface: Audio Widget

Here it is. Is there a newer firmware for MkII that works with Windows 10 UAC2 driver?
 

Attachments

  • uac2.png
    uac2.png
    7.9 KB · Views: 531
Ok, I see there were some updated drivers with Win10 UAC2 support. I flashed awx_20170830_mkII_RC06.elf and now I can select between two sample rates: 48 and 44. But whatever I set is again fixed during playback. Switching does not seem to happen in Foobar and again there are no clicks. Scope shows whatever sample rate I set in the advanced tab (44 or 48), but is not affected by sample rate of the flac file itself.
 
That is because most audio interfaces in most operating systems will pass the audio through a sample rate converter. They do that for two reasons:

1 - They believe the highest sample rate declared by the DAC is always the best
2 - They tell the "pling-you-got-mail" generator which sample rate to use when that signal is mixed in with your audio

Various OSes have different ways of dealing with this. In general, ASIO handles this very well. But the Windows ASIO drivers needs a rework. On Windows, WASAPI exclusive is the best choice, but in f2k you need to intstall a plug-in WASAPI interface.

On Mac I believe Audirvana solves a lot of it but I'm not sure. On Linux you can configure various audio solutions to skip sample rate conversion.

iOS is actually best in class of the OSes I have tested. It tends to use the music's sample rate. On Android I haven't yet found workarounds.


Børge
 
I have noticed that for DACs the noise floor tends to be higher at 192KHz than at 96KHz. The ES9018 specs are only given at 44.1KHz.

I would think that using FFT type rate converters to convert in an exact way would be better than relying on the DAC's reconstruction filter. On Linux you can use pulseaudio with the soxr converter which is very good.
 
That is because most audio interfaces in most operating systems will pass the audio through a sample rate converter. They do that for two reasons:

1 - They believe the highest sample rate declared by the DAC is always the best
2 - They tell the "pling-you-got-mail" generator which sample rate to use when that signal is mixed in with your audio

Various OSes have different ways of dealing with this. In general, ASIO handles this very well. But the Windows ASIO drivers needs a rework. On Windows, WASAPI exclusive is the best choice, but in f2k you need to intstall a plug-in WASAPI interface.

On Mac I believe Audirvana solves a lot of it but I'm not sure. On Linux you can configure various audio solutions to skip sample rate conversion.

iOS is actually best in class of the OSes I have tested. It tends to use the music's sample rate. On Android I haven't yet found workarounds.


Børge

Thanks. I installed WASAPI component in F2K and now it does not play at all anything other than 44.1K. I'm getting this:

Unrecoverable playback error: Unsupported stream format: 192000 Hz / 24-bit / 2 channels

Tried both push and event wasapi, with all bit settings (16-24-32).
 
I'm totally stuck here. Foobar's WASAPI refuses to play anything above 44.1KHz with this dac and with Windows UAC2 driver, almost as if firmware does not support it. I tried many other firmwares with same result. Nothing in google search either. Same hardware worked perfectly fine with previous Windows 10 version and old ASIO driver, before creator's update.

Unrecoverable playback error: Unsupported stream format: 88200 Hz / 24-bit / 2 channels
 
Member
Joined 2004
Paid Member
iOS is actually best in class of the OSes I have tested. It tends to use the music's sample rate. On Android I haven't yet found workarounds.
Børge

iOS does not support audio natively above 48 K.

For Android there is USB Audio Player Pro: USB Audio Player PRO . Its pretty complete and seems to work with all the USB DAC's I have tried. It can also play from a networked server.
 
iOS does not support audio natively above 48 K.

That’s not true. Modern iOS (I believe since iOS 7) supports 192K natively, maybe even higher but I don’t have the hardware or program material to test it above 192K.

I can play 24/192 FLAC files using the FLAC player app over a Apple USB camera connect kit cable on the audio widget (in the AMB γ1.5 anf γ3 DACs) and it’s absolutely true 192K in UAC2 mode.
 
Member
Joined 2004
Paid Member
Yes but not through iTunes. In iOS land unfortunately iTunes seems to be required for most users. When going around iTunes lots of options are possible.

The latest LGs native player supports 192 and pops up a little hd logo when playing high res. No current experience with Samsung or other Androids.
 
Hello Board,


I have recently bought a HenryAudio MkIII (thanks, Borge, I am pretty impressed by the little box and have yet to switch back and forth between my old DAC and Henry, but I like it very much) and have experienced severe playback issues with some of my FLAC files (96k/24b).


To be precise, all files above 44100Hz were played, but heavily distorted on a Win10->Foobar2000->WASAPI->UAC2 setup.


After trying different files and the same files on different players (VLC with Windows multimedia device output, which is supposedly WASAPI?) i remembered, that there was some difference between WASAPI event and push.


I got the tip to rather use "event", but after trying "push" I found that every single file played perfectly nice now.


Maybe this is a known issue with the board, but it could also be my system or (most likely?) the WASAPI-plugin of Foobar.


If anybody has an idea what the reason for this behavior is, or wants me to try something out, I would be glad to be enlightened or even to help.


Max.
 
I also received the Henry Mk 3 last week and am very satisfied. Also use only event because I mean it is because:

Push is a one-way connection only affects the buffer with older devices, Event a double-sided connection for bilateral data flow.
The DAC can also send and read informations with the plugin and request them when needed.
The Henry Audio DAC is the best investment one can make here. Use Foobar2000 WASAPI Event and streaming Qobuz WASAPI exclusive. Actually the same as event.

Many greetings Phil
 
Last edited:
Hi, is a source for the latest MkIII firmware available somewhere?

Yes of course! I don't remember off the top of my head if the latest Mk3 binaries are the exact latest commits, but looking around in the commit history and adjusting the top-level definitions for the features you want to build.

Have a look here:
GitHub - borgestrand/sdr-widget at audio-widget-experimental

For binaries:
GitHub - borgestrand/widget_binaries: Binaries for SDR Widget and Audio Widget projects

I have a production batch running right now, and they will be made with awx_20190105_Mk3_RC11.elf pulled from widget_binaries.

Cheers,
Børge
 
Hi zdr,

The USB DAC 128 Mk 3 has four HW changes: 1) it uses the same ADP151 3.3V regulator for the MCU as for the analog parts, 2) there is no clock divider as MCLK passes straight to the MCU, 3) LEDs are R+G surface mount models, 4) The USB connector is now B instead of mini-B.

Børge

I burnt MkIII firmware which works OK with clock divider installed (74LVC1G80) in UAC1 mode (it shows up in device manager as MkIII). If I remove the divider and drive MCLK directly from oscillators to MCU pin 13, sound is distorted and high pitched?? I put back the divider, and things to back to normal. What am I doing wrong?
 
I burnt MkIII firmware which works OK with clock divider installed (74LVC1G80) in UAC1 mode (it shows up in device manager as MkIII). If I remove the divider and drive MCLK directly from oscillators to MCU pin 13, sound is distorted and high pitched?? I put back the divider, and things to back to normal. What am I doing wrong?

That is because the firmware supports operation both with and without divider. Resistors are used to inform the MCU of the hardware configuration. With a divider PA03 =pin 125 floats. That has been the default use of that pin in a lot of hardware audio widgets. Without a divider (as in my Mk 3), R1309 is installed to tell the firmware what is going on.

Likewise, R1310 says which kind of LED is used. Mount R42 with common anode LED and R34 with common cathode LED.

I hope this solves your problem!

Best,
Børge