Open-source USB interface: Audio Widget

Hi George,

I2S SCLK running at 12.288Mhz with 192khz sampling rate.

12288000 / 192000 / 2 (stereo) = 32


(However, note that Borge was concerned with bumper-to-bumper I2S. This is because in the I2S specs, the first data byte is clocked out (and in to DAC) one clock cycle AFTER the LRCK transition. Therefore the last data byte is clocked out when the LRCK has transitioned to the NEXT sample. Apparently some devices cannot interpret this correctly. It is not a big issue, I suppose, as having only 31 bits of valid data intead of 32 bits won't affect the SQ much :)

Alex
 
Hello Demian.

I think noise ground out must get to clock. Better external power to clock?

Tektronix put no ground noise. I havent problems.

I can not made Jitter measures with WaveSpectra - PC , The noise is above the harmonics of 229 Hz.

I will try with isolation transformer to the output and WaveSpectra - PC.
 
Linux distro = player

Hi UnixMan,

I ended up installing Ubuntu GNOME Shell Remix 11.10. It is I who has a problem with Unity. I haven't used Linux since everything was ./configure and make install with fvwm on X. In the meantime I've defaulted on Windows and Linux has become quite unrecognizeable.

I agree with your previous post. Serious audiophiles are able to devode/purchase a dedicated box for music playback. But it too has to be CD or stick in, Wizard - OK - OK - OK - music. With marginal add-ons to locate the music stored on a mounted hard drive or network station. Such a Linux distribution would open a lot of ears I believe. And given the high user friendliness of Linux installers these days it should be quite doable.

As for me, I'll try your other suggestions on my Linux setup and see if they bring me the expected playback quality.

Oh, and being a Windows user I put in a few bonus reboots here and there to make sure Bansheew as restarted.

Børge


sorry for not being more detailed. :eek:


yes, right one. :)


you mean the test tones worket through the AW, right?

Are you sure to have restarted banshee after the change? In Ubuntu (and likely its derivatives such as Mint) banshee is started whenever you login. It is always running in the background. When you close its window you do just that, but the process keeps running. If in doubt, a reboot will ensure that there are no leftover process. :)

If there are still problems you may want to stop banshee, remove all of its config files/dirs and try again.

Another trick you may want to try is to set the AW as the default ALSA device.

open (or create) the file ~/.asoundrc and add a line like this one:

Code:
pcm.!default "plughw:1,0"

where the number correspond to that of the AW, that you may see by giving the command "aplay -l" in a terminal (try also "aplay -L" to see the corresponding pre-defined PCM devices).


just for the sake of curiosity: you don't like it or your PC has troubles running it?


that should be relatively easy to do...


that's a good idea. It may need some more refinement to make it even easier to install and use, but is a good project.
 
Last edited:
Maybe the misplaced USB beads (post 624) may be relevant for this? I'll fix this issue on future boards. I'm also checking for availability of ferrite'ed USB cables.

In the meantime you may wish to patch the USB interface. Although I haven't checked the layout to see exactly what has to be done...

Børge

Hello Demian.

I think noise ground out must get to clock. Better external power to clock?

Tektronix put no ground noise. I havent problems.

I can not made Jitter measures with WaveSpectra - PC , The noise is above the harmonics of 229 Hz.

I will try with isolation transformer to the output and WaveSpectra - PC.
 
UnixMan et al.,

(Please excuse my sometimes excessive creativity...)

Question: How hard is it to stream music from a generic computer (Windows PC) to a dedicated player PC (SBC)? I.e. an open source alternative to Apple Airplay.

According to some posts it is "easy" to make a Windows virtual audio device. Instead of hardware, give the device a streaming interface to split the playback.


Børge
 
creativity can never be excessive... :)

Ask my wife or some former teachers/bosses....

that's one of the options MPD gives you!

Guess I'll do some more research. A Windows frontend in the shape of a driver would be good. Included in my cable subscription is free access to WiMP which out of the box doesn't support Linux. Hacks are available, but sadly this is not the only example.

Børge
 
Last edited:
[OT]
It is I who has a problem with Unity.
you're not the only one... ;) I've read a lot of criticism about it. At first I too have found it kind of weird. But I have to say that after some time, once got used to it, it's indeed quite good and practical to use. Actually, IMHO it's real main defect is that it requires a lot of hardware resources (particularly a powerful and well supported video card and plenty of ram) to be useable. No way to use it on legacy hardware. :(

(OTOH, there's an Ubuntu derivative, namely "Bodhi Linux", which is simply fantastic at that... it brought to new life even an ancient AMD Athlon @1.2GHz!).

I haven't used Linux since everything was ./configure and make install with fvwm on X. In the meantime I've defaulted on Windows and Linux has become quite unrecognizeable.
yup, quite a lot of things have changed since then... :)

Modern general purpose desktop distributions such as Ubuntu have been moving more and more toward mainstream users, with advanced GUIs and "user friendlyness". Unfortunately, in the process sometimes they've also got some of the defects of the other mainstream systems...

(but fortunately there are pleny of alternatives and it's always possible to tailor our own system to our own needs and taste).

BTW: if you're stuck with windows because of some specific software and/or hardware combination, I would suggest you to run windows virtualized within Linux. That has a lot of advantages: easy backup and restore, possibility to bring with you (and use on just about any computer) your whole windows installation + software + data, etc. I have a few colleagues which are using this kind of setup since quite some time and are very happy about it. They would never like to go back to plain windows on bare hardware again... ;)

[/OT]

Let go back on topic... ;)

I agree with your previous post. Serious audiophiles are able to devode/purchase a dedicated box for music playback. But it too has to be CD or stick in, Wizard - OK - OK - OK - music. With marginal add-ons to locate the music stored on a mounted hard drive or network station. Such a Linux distribution would open a lot of ears I believe.
that's basically what I was briefly suggesting in the previous post! ;)

Once you have a predefined, common hardware it's easy to provide a preconfigured system which will work right out of the box.

Voyage MPD already automatically mounts/unmounts on the fly (hot plug) any USB storage you attach to it. It should not be hard to set things up so that MPD will also automatically make use of any newly attached storage (and perhaps share it on the network too).

With the "music-box" acting as a LAN router (offering DHCP to clients) and WiFi AP, there would be almost nothing left to be done by the user. Basically he will only need to install the client software on whatever system(s) he have/likes. And that's just a few mouse clicks away. ;)
 
Maybe the misplaced USB beads (post 624) may be relevant for this? I'll fix this issue on future boards. I'm also checking for availability of ferrite'ed USB cables. In the meantime you may wish to patch the USB interface. Although I haven't checked the layout to see exactly what has to be done...
In this case it would noise that is inserted through the RCA output when connect to the entrance of PC audio card.

But in my case can be a bad audio card. I'll try with some other PC audio card.

I have no USB noise problems.
 
Member
Joined 2004
Paid Member
Hello Demian.

I think noise ground out must get to clock. Better external power to clock?

Tektronix put no ground noise. I havent problems.

I can not made Jitter measures with WaveSpectra - PC , The noise is above the harmonics of 229 Hz.

I will try with isolation transformer to the output and WaveSpectra - PC.

The isolation transformer trick does reduce some of the noise a lot. It did not reduce the jitter.

I think the next steps in improving the AB1.1 will be ground optimization. a star ground on the analog side would work great (no really HF stuff to mess it up) but its the clock to dac and clock to USB module that will be challenging to optimize. With signals clocks and power sharing grounds is possible that a bigger bypass cap could even induce jitter by creating a moving ground reference from the noise currents being bypassed.
 
Hm. Maybe the differences between fw revisions come from CPU activities being different.

I've been thinking about how to check this in the time domain as well. Perhaps an SPDIF transmitter (which some people have requested in its own right) would be a nice feature? Then a connected recorder could determine if the received data equal the output.

Børge
 
I think the next steps in improving the AB1.1 will be ground optimization. a star ground on the analog side would work great (no really HF stuff to mess it up) but its the clock to dac and clock to USB module that will be challenging to optimize.
it's time to implement Børge's idea of optoisolators on I2S and clock to uC... and of course goin' to a self-powered device. ;)
 
Demian, I'm a believer in the Henry Ott ground philosophy with massive planes, good separation and return current loops minimizing themselves. Haven't really done star ground in a while. The closest I've got is to use GND "peninsulas", but that's just part of good separation.

Also, I hope to keep the boards on two layers to keep cost down. Any suggestions to improved ground routing would be much welcome!

I'll look long and hard at the layout once again. But it is difficult to keep signal and power grounds separate. Both DAC and XO (before LDOs) get their power from the same spot, so that is also where their returns meet.

Børge

I think the next steps in improving the AB1.1 will be ground optimization. a star ground on the analog side would work great (no really HF stuff to mess it up) but its the clock to dac and clock to USB module that will be challenging to optimize. With signals clocks and power sharing grounds is possible that a bigger bypass cap could even induce jitter by creating a moving ground reference from the noise currents being bypassed.
 
it's time to implement Børge's idea of optoisolators on I2S and clock to uC... and of course goin' to a self-powered device. ;)

Okay, I'll see what I can do on the next generation AB!

Power supplies is interesting for a lot of reasons. Adding a single-ended wall-wart is easily done today. That will power the LDOs for the XOs and DAC. But if we want to use more advanced DACs we will need bipolar supplies. Some of us have lab supplies to hook up, but not all. So for a USB DAC to be practical with bipolar internal supplies it needs some sort of switching power supply.

Børge
 
Member
Joined 2004
Paid Member
Large ground planes are great for RF, especially when skin effect is significant. They become a problem when you are looking at 140+ dB dynamic range. If you have 1 milliOhm and 1 milliAmp the voltage drop becomes 1 uV. Invisible in a digital system (except if it moves the clock thresholds around a little) but its a lot when compared to 2V out (-106 dB). This is why ground currents can be a real challenge in design. Also 100 pS jitter is the same as -106 dB sidebands.

Multilayer I think of as a crutch on something like this. There just aren't that many connections.
 
Last edited:
I second 1audio about GPs and PCBs. GPs are easy and good for RF, not that much for audio. Going multilayer is probably unavoidable for a top quality DAC.

So for a USB DAC to be practical with bipolar internal supplies it needs some sort of switching power supply.
OMG, no wall-wart and no switchers, anywhere! :eek:

We need good, large, clean and quiet internal linear PSUs. With plenty of power to waste!

(smart use of brute-force is about the only approach that works well with audio).

You should turn to a standard 1U rack-size enclosure (perhaps even 2U if needed). With toroidal or better yet R-Core PTs, Schottky barrier rectifiers, pseudo-CCS+C smoothing (to limit current peaks and thus rectification noise), gyrator CLC filters, CCS power distribution with shunt regs on each load, plenty of reservoir capacitance everywhere, top of the line DACs in full dual-mono configuration, etc.

All of that is gonna cost quite some money. But it will pay off with really great SQ. Which is what people here is looking for in the first place.

The current AW is IMHO already at the knee of the cost-quality curve. I'm afraid that you can not get much further than that without gettin' rid of compromises... accepting the unavoidable consequent jump in costs.

But in this "market" costs are a minor problem. Audio enthusiasts are willing to pay for quality. Whatever is needed. IMHO you'd sell more top quality, no-compromise music machines at say €1000.00 each than yet another "good for the price" device at €100. Of course, for this to be true it must NOT look like a cheap PC periferal... ;) it's just psychology, but in this field that's fundamental too. It's not just marketing: what you see (and what you feel) is what you hear too!
 
Last edited:
Going multilayer is probably unavoidable for a top quality DAC.
Agreed.

Multilayer may seem like overkill, but it allows you to have equivalent power and ground planes without tripping over signals. I find that I never need more than 4 layers because there is always room for analog areas and digital areas if the power/ground planes are segregated, and this also avoids capacitive coupling between multiple planes (e.g. 6-layer).

There are plenty of inexpensive USB DAC products that do not compromise on the PCB, so it will be hard to beat their performance without moving beyond amateur 2-layer designs.
 
I have no great knowledge about ground, but I think this layout AVCC mass could be a possibility.
An externally hosted image should be here but it was not working when we last tested it.


1audio, Noise appears after pass time and is removed by moving the connectors. I happened in the two AB-1.1 I have. Could you check this in your circuit?

I've cutting edge copper of the back plate of the audio connectors and especially miniUSB. It was ended the problem.


And this is the measure quite good of AB-1.1. Distortion at 1 KHz.
An externally hosted image should be here but it was not working when we last tested it.


Intermodulation with 19 and 20 KHz. These measures are quite good.
An externally hosted image should be here but it was not working when we last tested it.