XMOS-based Asynchronous USB to I2S interface

Which WINDOWS files are needed for WAVE IO to work

Lorien,

Finally getting around to putting WAVE IO to work.

I am using cMP/PLAY and am in the process of minimizing my WINDOWS.

Don't know if you have played with this but do you know which DLL's, drivers and Services are required for WAVE IO to work? I can easily see which one's were installed with your driver but would like to know what others your driver needs.

By process of elimination I will figure it out eventually but was hoping you knew some that must be kept.

I see wdmaud is used, and redbook and swmidi.

How much of the WINDOWS MEDIA PLAYER stuff needs to be retained? The streaming stuff - is it required? MICROSOFT Kernel Audio stuff? The Media Categories stuff in SYSTEM?

Audio Codecs? Are they needed?

Any direction would save some time. With a PCI sound card we could get the OS down to 18mB - from what I can see this will not be possible with USB but it can certainly be made much smaller.

Sorry this note is disjointed.

Thanks,
 
Under Windows it is JRiver. There is a lot going on currently.

Uli Brueggemann with his Acourate filter software is pretty active to get
stuff working on the PC side.

You can also use foobar etc.



I'd use brutefir and MPD on a headless Linux system.

Unfortunately squeezelite doesn't offer a PIPE (stdout) output (yet). Otherwise I could route the traffic from squeezelite right into brutefir on a headless client.



The NANO Digi of MiniDSP, after all, is still a nice and probably the cheapest solution. You can hook it up to basically to any SPDIF output, which would include my SB Touch. But MiniDSP NanoDigi resamples - in most case you'll resampling twice, since your DAC will usually again resample to higher than 96khz. The MiniDSP got limited processing power.

Alternative solutions are Oppo 93 and soon 103 with the 4*SPDIF output extension Vanity 93 of Audiopraise. Here you can go the multichannel HDMI -> SPDIF route.

Or you buy a 1000$ RME HDSPe AES-32 PCIe card.

Cheers

You could consider the Najda XO and preamp. Advantage you can use only a minimalistic PC to feed it. 4 spdif digital output And also I2S.

Jean-Louis
 
Hi Lucian, That could work but the sample rate need to be fixed rather than allowing anything bellow (x)Hz through.

I guess there is no way of Implementing ASRC code with the waveio. I ask as there does seem to be some XMOS implementations out there specifically working as an ASRC.

Cheers

Stefan
Well, the WaveIO card struggle to be a WYSIWYG (What You See Is What You Get) "thing" meaning that what comes through USB port it must get out @ I2S/SPDIF outputs, in the same form (more or less!). Believe me that is not so easy to make it happen! Now, if I'll have to insert ASRC code in WaveIO, this would defeat the main purpose for which this card exist: bit-berfect operation. I don't want to create false ideas but for the moment I want to keep the ASRC functions aside.

Hi there.

Has anybody replaced an SPDIF coax output with Toslink on the WaveIO??

Cheers
I don't think it will work as both of the SPDIF ports source a weak signal (~1Vpp or close to it) and you'll need 3.3V or more to drive the Toslink optical transmitter.

Lorien.

I know you're busy with squeezing the last 0,2% of quality out of your product. ;)
Yes, fighting with XMOS processor seems to become my daily job in the past weeks! That chip is quite stubborn to work as I wanted to so I'll dig in until one of us will die :) As for your idea... it seems to be a nice one still doesn't care too much what I'm saying as long as the schedule is against me and what it supposed to be done by now is still making my life not a beautiful one!

@ rickmcinnis: Windows was my first mistake in this life, a mistake that I didn't correct it until now and taking into account what lies in front of me I'll give weak chances to do it from now on. Without being rude, my honest advice in solving your Windows issues would be to switch on Linux or MAC OS. As for details, I'm simply relying on Thesycon's work which seems to be a reliable one so far... while the rest of my free time is devoted to firmware and especially hardware.
Cheers,
L
 
Last edited:
You could consider the Najda XO and preamp. Advantage you can use only a minimalistic PC to feed it. 4 spdif digital output And also I2S.

Jean-Louis


I had a look at it. Lot of features for the price.

I'm not convinced though that it would meet my expectations when it comes to SQ. I'm wondering if anybody compared e.g. WaveIO-SPDIF to WaveIO-SPDIF > Nadja-SPDIF (without any DSP applied) ?

However.

Doing the DSP work on the PC might still be the better idea. You got much more flexibility. E.g. I can apply my filters at ANY sample rate. With boards like Nadja or MiniDSP you usually face SRC twice if you go DIGI-in DIGI-out.
One SRC on the board, another SRC on the DAC. That'll give you digital attenuation twice. You'll use different algorithms. That's getting much too complex and flawed. Beside that you need more power supplies with all the associated challenges.

I really think a simple USB-->multiple SPDIF would be the solution. Obviously there won't be WaveIO solution. And I can somehow understand that.
 
Yes, fighting with XMOS processor seems to become my daily job in the past weeks! That chip is quite stubborn to work as I wanted to so I'll dig in until one of us will die :) As for your idea... it seems to be a nice one still doesn't care too much what I'm saying as long as the schedule is against me and what it supposed to be done by now is still making my life not a beautiful one!


L

Thank you Lorien for your efforts. We are enjoying the fruits of your labor. :)
 
Well, the WaveIO card struggle to be a WYSIWYG (What You See Is What You Get) "thing" meaning that what comes through USB port it must get out @ I2S/SPDIF outputs, in the same form (more or less!). Believe me that is not so easy to make it happen! Now, if I'll have to insert ASRC code in WaveIO, this would defeat the main purpose for which this card exist: bit-berfect operation. I don't want to create false ideas but for the moment I want to keep the ASRC functions aside.

Fair enough, worth an ask.

thanks for thinking about it.

stefan
 
USB Layout

Hi Lucian, I plan to make the best usb connection for my environment. All components are housed in alloy boxes and I will differ between shielding and signal ground. The shielding and the signal ground shall be "connected" by a capacitor, which blocks DC from both. Additionally I use the external supply for waveIO. How did you connect shield and signal ground at the waveIO card? Is it connected together as common ground? Is it (easily) possible to disconnect the on the board? Georg
 
Will it run on FreeBSD?
Personally I cannot help you on this right now as I'm a Windows user but there's a friend of mine that could give an answer on this but on the next week as for now is on a short trip across my country.

Hi Lucian, I plan to make the best usb connection for my environment. All components are housed in alloy boxes and I will differ between shielding and signal ground. The shielding and the signal ground shall be "connected" by a capacitor, which blocks DC from both. Additionally I use the external supply for waveIO. How did you connect shield and signal ground at the waveIO card? Is it connected together as common ground? Is it (easily) possible to disconnect the on the board? Georg
Both USB shield signals are connected to WaveIO's ground by means of a ferrite bead and a 0603 (imperial) capacitor wired in parallel connection.
The parts have the following notation (please see WaveIO's bottom side):
* C39 || FB4 are for USB connector while,
* C38 || FB3 are for external USB header.
All the parts can be desoldered from the board allowing you to solder whatever parts you like instead.
Kind regards,
Lucian
 
I am sorry if this waiting time cause trouble for you guys... I am simply trying to do my best while take the benefit of the last summer days I have at disposal this year until I'll go back to work (without having any other alternatives :rolleyes:).
As for the WaveIO "Note", I have a prototype near me that's running now on a support board (a mother board if you want) which is not designed by me so I have to ask for approval to be able to post some pictures.
On the other hand I simply wish to have my time and see this new project working as I want it to be. Without entering into technical details (which it will be kept for me until the board is properly done, sorry!) I want to say that the reclocking approach on Note is not working as I expected to be.
For the moment the reclocking of all the I2S signals from XMOS chip is done after are passing through NVE isolator having a clock reference of 45.1584 and 49.152 MHz - just to have all the I2S signals aligned (including Master Clock of 22.5792MHz and 24.576 MHz - hence the 4x.x freqs of the local oscillators)
Even if my expectations could be considered too high I will dig into the 'issue' until my lab gears will show me what I want to see.
I'll be back with news when I'll have it and, with all the respect, I'll keep my infos and experience for myself until the results of my work will show real improvements.
Kind regards,
L
 
Lucian:
Thank you for the update. We know these things take time, as well as much effort and thought. I am sure you will have success in the end..

Can you give us an update on the status of the daughter board for original WaveIO? Is that still a plan or should we all just wait for new Note model?

Best regards,
Alex
 
I am sorry if this waiting time cause trouble for you guys... I am simply trying to do my best while take the benefit of the last summer days I have at disposal this year until I'll go back to work (without having any other alternatives :rolleyes:).
As for the WaveIO "Note", I have a prototype near me that's running now on a support board (a mother board if you want) which is not designed by me so I have to ask for approval to be able to post some pictures.
On the other hand I simply wish to have my time and see this new project working as I want it to be. Without entering into technical details (which it will be kept for me until the board is properly done, sorry!) I want to say that the reclocking approach on Note is not working as I expected to be.
For the moment the reclocking of all the I2S signals from XMOS chip is done after are passing through NVE isolator having a clock reference of 45.1584 and 49.152 MHz - just to have all the I2S signals aligned (including Master Clock of 22.5792MHz and 24.576 MHz - hence the 4x.x freqs of the local oscillators)
Even if my expectations could be considered too high I will dig into the 'issue' until my lab gears will show me what I want to see.
I'll be back with news when I'll have it and, with all the respect, I'll keep my infos and experience for myself until the results of my work will show real improvements.
Kind regards,
L

Hi, Lorien

We checked with XMOS guys, besides re-clock, the other key item is to use SLAVE mode. Let DAC core provides BCLK, WCLK, and aligned SD related.

Don't push yourself too hard... ;-) and congratulations for your great design!
 
Thesycon Drivers and DMA

Hi Lorien

I read that -

Wasapi was rewritten for windows 8 and wasapi exclusive event mode is able to communicate directly with dma via drivers, wasapi event uses an event trigger from the device to fill the whole buffer rather than a timed event and calculation to fill the remaining buffer.

Communicating via DMA would give a potentially better SQ.

Do you know whether the Thesycon driver you offer with WaveIO does support Windows 8 WASAPI Exclusive with DMA transfer?

Many thanks

Jonathan
 
Lucian:
Thank you for the update. We know these things take time, as well as much effort and thought. I am sure you will have success in the end..

Can you give us an update on the status of the daughter board for original WaveIO? Is that still a plan or should we all just wait for new Note model?

Best regards,
Alex
Maybe I should look to finish DB and then Note but now I can see that things are happening with a purpose. Note and DB are going head to head, when it comes to what I have in mind regarding USB interfaces still... I'm not quite happy with Note for now so I'm taking my chances with DB this time with a different approach. Eventually both designs will be close from the technical side of things even though, as a WaveIO owner said to me in the past days, Note seems that is not made by me (too many space constraints).

Hi, Lorien

We checked with XMOS guys, besides re-clock, the other key item is to use SLAVE mode. Let DAC core provides BCLK, WCLK, and aligned SD related.

Don't push yourself too hard... ;-) and congratulations for your great design!
Yep, I looked at that opportunity too but doesn't solve my issues with actual board (which has to act like as a I2S master). Thank you for you kind effort in helping me!

Hi Lorien

I read that -

Wasapi was rewritten for windows 8 and wasapi exclusive event mode is able to communicate directly with dma via drivers, wasapi event uses an event trigger from the device to fill the whole buffer rather than a timed event and calculation to fill the remaining buffer.

Communicating via DMA would give a potentially better SQ.

Do you know whether the Thesycon driver you offer with WaveIO does support Windows 8 WASAPI Exclusive with DMA transfer?

Many thanks

Jonathan
Tomorrow I'll pass your question to Thesycon hoping that they will answer. Be sure that I'll keep you in touch as soon as I have something to share.
Kind regards,
L
 
Settings - I see very little about these

I have mine set to minimal latency and 256 samples but since I can only make these changes within the registry it is hard to make quicky comparisons. Though simple enough to do it there. (have to use another computer to do it)

I am using WINDOWS XP and cMP pared down to 17 mB, no EXPLORER or anything else.

Curious to hear what settings folks are using.
 
Thesycon drivers and DMA

@ jrling: Jonathan, I got an answer from Ute from Thesycon so I'll forward it to you (or anyone else interested in this matter):
Our driver should work under Windows 8 in WASAPI Exclusive mode with DMA transfer. DMA transfers in context of WASAPI means that the Audio data is transferred unmodified from the application to the driver. The buffers are not directly mapped to USB, because USB needs a special packet format. The samples are copied in the driver, but that didn't influence the sound quality. In the other modes (not WASAPI Exclusive modes) the samples are modified by Microsoft's KSMixer. Microsoft's KSMixer does samplerate conversion and mixing audio from different application if needed. It is hard to test the WASAPI Exclusive mode, because of the missing applications that supports WASAPI Exclusive mode.
Kind regards,
L
 
Last edited: