Open-source USB interface: Audio Widget

Frankly, it would be a serious risk of resources to develop an open source Windows UAC2 driver when Microsoft might turn around and release one the next day.

But Microsoft doesn't do open source. Perhaps your meaning was Microsoft might release a proprietary one. The real waste of effort that I see is that Windows is last millennium's OS, it pays to invest for the future. We'd do better putting the effort into converting computer audio types over to Linux/Android IMO thereby hastening Microsoft's demise.
 
@rsdio, there's a big difference between drop outs and devices that "fail to function" as you put it when the bus is overloaded, etc, and subtle changes in SQ which is the issue I'm trying to address. There's no argument from me poor driver code, for example, can cause glitches in the audio. As I said, that's a very black and white problem. It can be readily detected and it either happens or it doesn't.

The jitter issue is the only thing that can potentially alter SQ (assuming a bit accurate data stream). And, in what you've written above, I still don't see where the player software can influence the resulting jitter in the clock of a UAC1 DAC. The 1 mS timing, as I understand it, is derived from the USB host controller clock and controlled by its "firmware"--not the player software.
 
But Microsoft doesn't do open source. Perhaps your meaning was Microsoft might release a proprietary one. The real waste of effort that I see is that Windows is last millennium's OS, it pays to invest for the future. We'd do better putting the effort into converting computer audio types over to Linux/Android IMO thereby hastening Microsoft's demise.
I can't disagree with that.

Note that Windows still doesn't support the full USB-MIDI specification, either.

Don't forget Mac OS X, though. It supports UAC2 and at least the Darwin part of the OS is open source. I haven't looked to see whether the USB drivers are included, but I think they have some drivers.
 
Really? Really? Any support or reasoning for this apparent myth?
I don't understand what you're saying. Digital audio only involves two variables, instantaneous value and sample time. How could anything besides jitter and data accuracy affect the sound quality? The obvious exception would be power supply noise if the audio interface is powered from the USB host, but RocketScientist has already addressed that particular aspect. Note: I may be nit-picking the finer details of some of his posts, but I totally agree with what RocketScientist is saying here.
 
Good observation :)

The Audio Widget of this thread uses the same code base as the SDR Widget. The web page in my signature contains all relevant links to project sites.

Børge

Thanks, but "I don't do Windows."
At first, I thought you were talking about a UAC2 firmware, and I was about to point out the SDR Widget because it seems to implement that. But, now I realize that you're talking about the host side.
 
I don't understand what you're saying. Digital audio only involves two variables, instantaneous value and sample time.

Yeah that's the theory. But in practice there's more to it than theory.

How could anything besides jitter and data accuracy affect the sound quality? The obvious exception would be power supply noise if the audio interface is powered from the USB host, but RocketScientist has already addressed that particular aspect.

I must have missed something then. Where did he address what I consider to be the main issue in digital audio sound quality (once the theory is correctly handled), common-mode conducted noise? In fact alexlee188 explicitly referred to noise conducted from the PC but RocketScientist deflected that valid point with a totally irrelevant mention of tube amplifiers. What gives?
 
I am looking for an audio input selector for some digital signal source devices such as digital radio, dvd player, cd-player and personal computer include one USB input.
Therefore I have start this thread:
http://www.diyaudio.com/forums/digi...put-selector-include-usb-spdif-converter.html

Perhaps one of the members can give me some advices for commercial products and diy projects.

And a second question:
what is the main challenge/difficulty to reach good sonic performance by the transforming from USB to S/P-DIF resp. I2S?

Thank you very much for comments resp. advices to already existing threads here on diyaudio.
 
what is the main challenge/difficulty to reach good sonic performance by the transforming from USB to S/P-DIF resp. I2S?
S/P-DIF is a unidirectional link that does not allow the DAC to control the timing of the data flow. USB is a bidirectional link that optionally allows the DAC to control the timing of the data flow. If you convert from USB to S/P-DIF, then you lose the ability to have the DAC be the master clock for all data flow.

I2S is somewhat crippled in the sense that it is not bidirectional, but most well-designed systems incorporate some method for the DAC to remain the master clock by linking back past the I2S connection to control the bidirectional USB link.

Basically, with all that we know about digital audio, SPDIF should really be retired except as an emergency link to vintage equipment. I would not design any new product around SPDIF. You'll get much better audio quality performance from USB, FireWire, or ethernet - basically any bidirectional data path will work, especially with a system like CoreAudio where all hardware outputs are expected to control data flow using the pull-model (SPDIF is a push-model).
 
Is possible to modify the .inf file of these XMOS driver to be compatible with the Open-source USB interface ?
in principle the answer is probably yes, you can modify some existing 3rd party UAC2 windows driver to make it recognize and work with the AW.

Problem is, AFAIK all the existing drivers are proprietary. It's very unlikely that their licences may allow you to do something like that.

That is: technically it may be doable, but it would be completely illegal. Unless you get explicit permission to do so from the driver copyright holder, of course. But unfortunately that's also unlikely.

...that's just one of the many, many good reasons why proprietary software (of any kind) is so bad.
 
I don't understand what you're saying. Digital audio only involves two variables, instantaneous value and sample time. How could anything besides jitter and data accuracy affect the sound quality? The obvious exception would be power supply noise if the audio interface is powered from the USB host, but RocketScientist has already addressed that particular aspect.
I am afraid you're overlooking something here. ;) :cannotbe:

There are countless ways in which noise - particularly wide-band, RF noise - may propagate. USB power is only one of the many. And surely the easiest to avoid for that matter.

The only way to completely avoid "source" (PC) noise from directly polluting our delicate D/A conversion and analog signal would be the use of an optical link. (optical USB3, what happen to that great idea?!)

But! Would that be enough? Nope! :eek:

All of the countless gates which are part of any digital or mixed-signal device/circuit requires power to function. Every time one of them opens or close, it modulates the current drawn from its PSU line. That's wide-band noise. Which is highly correlated with the incoming signals timing!

No real-world PSU, PCB track or by-pass capacitor may ever have exactly ZERO impedance over the whole spectrum. Thus, some of that noise may (be sure that it will) eventually find its way to the analog circuitry, the DAC or its clock.

To make it short, chances are that it may eventually affect SQ in likely subtle yet sensible (audible) ways.

Please always keep in mind that - according to the currently accepted perception theories - our earing system is based upon auto- and cross- correlation "analysis" of the sound "signal".

This makes it extremely sensitive to some characteristics of the signal which may appear to be completely buried in the background (or not even visible at all) on a spectral analysis or other common audio measurements.
 
Last edited:
Yeah that's the theory. But in practice there's more to it than theory.

I must have missed something then. Where did he address what I consider to be the main issue in digital audio sound quality (once the theory is correctly handled), common-mode conducted noise? In fact alexlee188 explicitly referred to noise conducted from the PC but RocketScientist deflected that valid point with a totally irrelevant mention of tube amplifiers. What gives?
@abraxalito, please get your facts right before you accuse people of making "irrelevant mentions". I didn't bring up tube amps, alexlee188 did. I'm the one who suggested tube amps were off topic for this thread.

And it does no good to say things like "there's more to it than theory" and not tell us, factually, what the "more" is. As I said earlier, you just seem to disagree with people rather than contribute anything useful and factual to the discussion--vague objections, taunts, and trolling don't count.

I haven't tried to "deflect" anything. I've spent quite a bit of time explaining exactly what can change sound quality and what cannot along the path from player software to a USB DAC. I've provided details, links, and lots of objective facts to hopefully help further the discussion.

The fact is, player software has no reliable control over the noise generated in a PC. As has already been explained, not deflected, PC's have dozens of tasks running in the background even when the player is the only application running. The issue I've been addressing here all along is the effect of player software on sound quality. It comes down to only three variables just as rsdio has said: The data (bits), the timing (jitter), and the noise (which may cause jitter and/or noise in the audio spectrum). The player software can only control the data, not the other two. And the data can be readily verified with a USB analyzer.

I realize many want to believe in Santa Klaus and Audio Zen Magic. But believing in those things doesn't mean they're real and causes some to focus, and spend money, on the wrong things--like new player software thinking they'll get better sound than with Foobar. They won't. There's actual harm in promoting false audio myths--often substantial financial harm to people's bank accounts.


@UnixMan I agree noise can pollute out of band signals. In fact, conducted noise is a fairly common cause of jitter. But that has much more to do with the PC board layout, and hardware design, of the DAC than anything else. I have not seen any evidence that noise on the 4 wires in the USB cable (versus S/PDIF, I2S and MCLK) changes anything but the noise floor of the DAC. And, regardless, it isn't something the player software has any control over.

I've been knee deep in DAC measurements and design changes lately. It's rather amazing how much changing one decoupling cap can radically change some of the DAC measurements. Some things are a trade off--like noise/DNR vs jitter vs THD. IMHO, it's blind luck to design a DAC without a real audio analyzer that has substantially better performance than the DAC being developed, can perform J-Test jitter measurements, etc.

Below -96 dB (16 bit performance) all sorts of little things can make a big difference in the hardware design. Just a few microvolts of conducted noise can lower the ENOB and DNR well below what the DAC chip is capable of. If you're not using exactly the chip manufacture's reference PCB design, you're probably not getting anywhere near the chip manufacture's published specs unless you make the right measurements and several rounds of iterative changes.
 
Hey guys,

can we please drop the finger pointing and irony? This thread is about the Audio Widget project, its hardware and its firmware. How data is delivered to it is an important topic. How data is converted to an analog output is also very important.

I have two suggestions:

1) Let's make a pice of test firmware which looks at the incoming samples to test whether they arrive as expected. It can go along with .flac and .wav files with known content. Then we can scientifically evaluate different OSes, players, drivers, USB hosts, OS loads etc.

2) Let's try to improve on the different analog improvements. I believe PSU regulation and analog output filters are the biggest areas for improvements.

It's very good to be opinionated on audio technology in general. But please try to make it relevant for the actual hardware we're using.

Thanks,
Børge
 
@abraxalito, please get your facts right before you accuse people of making "irrelevant mentions".

It wasn't an accusation. So do please get your facts straight before you attribute 'accusation' to me.

I didn't bring up tube amps, alexlee188 did. I'm the one who suggested tube amps were off topic for this thread.

Quite so, alexlee188 did mention them first. So my apologies for the slight inaccuracy. However he pointed to the debate about SQ between SS and tube amps. So that was indeed a deflection to bring up tube amps alone whilst ignoring his point. Tube amps in comparison to SS was being used as an illustration of the weakness of relying on THD figures alone. So his mention in passing of the debate wasn't at all 'off topic' for the thread.

And it does no good to say things like "there's more to it than theory" and not tell us, factually, what the "more" is.

That would be because I already have told you, on another thread. When a person doesn't listen then its pointless to tell them again. If you'd like the reference I'll be happy to dig it out.

As I said earlier, you just seem to disagree with people rather than contribute anything useful and factual to the discussion--vague objections, taunts, and trolling don't count.

That's clearly a caricature. Do you think such caricatures help the discussion? If so, please explain how?

The fact is, player software has no reliable control over the noise generated in a PC. As has already been explained, not deflected, PC's have dozens of tasks running in the background even when the player is the only application running.

Quite so, not news.

I realize many want to believe in Santa Klaus and Audio Zen Magic.

OK, so who on this thread wants to believe in those things? If there are people who do, why not name names? And if there are not, why bring it up? This does look like another deflection - a quick troll to try to wind up the subjectivists perhaps?

But believing in those things doesn't mean they're real and causes some to focus, and spend money, on the wrong things--like new player software thinking they'll get better sound than with Foobar. They won't. There's actual harm in promoting false audio myths--often substantial financial harm to people's bank accounts.

So why do you promote false audio myths then - like the ones I've pointed out in this thread? Some kind of explanation for that wouldn't go amiss.
 
1) Let's make a pice of test firmware which looks at the incoming samples to test whether they arrive as expected. It can go along with .flac and .wav files with known content. Then we can scientifically evaluate different OSes, players, drivers, USB hosts, OS loads etc.

It will be useful to check out whether an end to end path is indeed bit perfect.

2) Let's try to improve on the different analog improvements. I believe PSU regulation and analog output filters are the biggest areas for improvements.

Those are certainly important, but the connection of a DAC to a noisy computer needs attention to isolation if the best sound quality is the aim. Analog output filters are the domain of the particular DAC chip, so not something that can really be standardized. I haven't looked in detail at the USB interface - but with your AVR chip is the PHY on-chip? Or does it use an external PHY through an ULPI interface? (Just thinking out loud here about the best place to isolate).