Thursday, 22 February 2018

Coaxial SPDIF digital audio to USB (on the cheap) for the Yamaha SW1000XG

Having got the SW1000XG working in its new fanless case it seemed a shame that I could not make use of the digital audio out the card offers. Computers used to offer SPDIF in but it seems to have gone out of fashion. A cursory search on the web revealed only very expensive solutions until I hit upon a cheap device containing a CM6206 chip. A search on eBay for CM6206 in the description revealed a number of devices – cheap USB sound cards which included SPDIF in. I bought one for £8.79. It can only do 2 channel audio through SPDIF but that’s fine.

As the SPDIF input was optical I also bought a coax to optical converter... or so I thought.. In fact I bought an optical to coax converter by mistake.

Not to be defeated I was inspired by this article where someone simply connected a red LED to the coaxial output via a resistor an shoved it in the optical in.

I did not have an LED! But as I was not using the SPDIF optical out on the USB device I though I might be able to hijack the transmitting LED. I cut the track and connected the Coax to the input... It didn’t work..

SO then I thought I’d connect the coax in place of the optical input. I unsoldered the optical receiver... unfortunately destroying it in the process.. but the amazing thing was...

..............IT WORKED!!!

I won’t go into how I managed to mangle the front cover but needless to say patience was not the watch word of this project..

So –Initially it worked. I recorded the output of the SW1000XG into Audacity via the SPDIF interface.. and fine... no problems at all.

I thought I’d try it with a DAW.. Loads of problems, loads of distortion.
It seems it does not like ASIO drivers. Best results in terms of latency came from using WASAPI drivers but there was some glitching. Normal windows drivers worked fine but the latency was terrible. 

So in the end I decided to stick with the analogue out from the SW1000XG for creating and the digital out for final mixdown. The analogue outputs are good but there is some noise which is not present in the digital out.

Finally a word of warning. The USB audio box is a bit temperamental. If you put the usb out the computer will Blue Screen of Death. The USB box can get locked up and rebooting the computer wont fix it – you have to depower the USB box.

PS. You can and an LED to the box to show it's on. There is a place on the circuit board here


Sunday, 11 February 2018

Using the Yamaha SW1000XG with a 64bit Windows operating system

Well first of all you can’t.. you just can’t.. So here's what I tried to get round this and what worked and what didn’t

Using a 32 bit operating system in Virtualbox using PCI passthrough.
A number of web threads allude to this... but it doesn’t work.
PCI passthrough, the ability to pass a piece of hardware to an operating system running in VirtualBox (usually a graphics card for gaming) only works with a Linux HOST operating system. IE: you have to  have Linux as your main operating system on the computer.. which for me was a bit of a deal breaker. ( and also it only works sometimes as it’s experimental )

Having the SW1000XG in and external, old computer controlling over midi.
This of course worked (in that I could use the midi synths not the audio side). Problem was that though I had spent loads of time and money making my main PC quiet, I wasn’t going to do the same for this second, old PC which turned out to be rather noisy in comparison.


I bought a old fanless thin client with a  PCI slot on ebay.

£40 bought me a 10ZiG 67xx thin client with a 2GB “Disk on board” SSD drive. 2GB is just enough to install XP, it came with an embedded version (which I stupidly blew away before writing down what drivers it had).The unit sports a single PCI slot just big enough for the Yamaha card.

It was not easy to find the correct drivers for the motherboard so I tried installing the SW1000XG card without them (as the computer worked enough for me as it was). The computer more or less hung and was unusable.

Finding the correct drivers solved this. This was not easy to do as I could not find the motherboard name. I used two methods: One was to use Google images to find similar boards and it turned out to be very similar to a ITX-EMV9X62A. The other tool I used was HWINFO32 which lets you see what is attached to the bus: even then I had to download a number of drivers to get the right ones. Available at After this the Yamaha drivers worked fine.

                                                Here's what worked for me

When fitting the PCI card, despite the fact a previous card that came with it had worked fine, I put some insulating tape on the heatsink as I felt there was a danger of shorting on the back or the Yamaha board. It really is a snug fit. 

The result is a small, silent, Yamaha synth module with over a thousand voices. It does not have a monitor or keyboard fitted and runs TightVNC server so it can be operated from the main computer.
The SW1000XG needs some configuring to allow the synths to see the midi and you can do this by either running MidiOX to connect SW1000 midi in to SW1000synth#1 or you can install XGedit95.
XGedit95 gives much more control over the synths but it is possible to install it on the Main Computer side and use it from there.

Here I found a problem with my cheap ebay unbranded usb midi converter not passing System Exclusive messages for the XG voices from XGedit95 so bought a M-Audio Midisport 1x1 which passed these messages successfully and so allowed the use of XGedit on the host computer. It seems that you don’t need to do this using system exclusive messages, there are voice files for the SW1000XG which do it purely with Bank and Controller changes so it’s not completely necessary.

Looking to the future. You can replace the Disk on Board with a larger complact flash card using an adapter from China. Not tried this yet but with 16GB you could install windows 7 and have a protection from viruses. There is also an SATA socket but I’m not sure there is enough room for a drive with the card in place. As it was, I gave XP a static IP address and put bad values in for Gateway and Nameservers so it can’t see the internet. It seems happy.

A month later....

Decided it was getting a little hot.. CPU was at 50 degrees and some of the componets on the SW1000XG lie directly on the heat sink... so added a fan.. very handsome