I've seen some interest in my previous article on the hiFace, so I thought the technically minded readers might like some more details. The company that builds it is M2Tech. They have exclusive agreements with distributors around the world. In the US the unit is only available through the website www.tweekgeek.com starting at $150.
The hiFace is a USB device that outputs S/PDIF on a coaxial connector (either RCA or BNC). It is designed to produce a signal with low jitter and low phase noise. It can produce a data stream signal with sampling as high as 192 Kbps and 24 bit resolution. It does this by using a proprietary device driver, which you load from the provided CD the first time you plug the unit in to your computer. There are drivers for Windows XP, Vista and 7 as well as MacOS 10.4, 10.5, and 10.6. Not all receivers or DACs are able to process S/PDIF at 192 Kbps even if the hiFace can send it that fast. Consult your owner's manual for the specifications of your particular system.
I use the hiFace on a Windows XP system where I use MediaMonkey to listen to my music. It sends data to the hiFace driver via kernel streaming. In order to make this work I downloaded the Winamp "kernel streaming" plug-in and placed it in the MediaMonkey Plugins directory and restarted MediaMonkey.
Once MediaMonkey was restarted I selected "Tools" then "Options" to bring up the Options window. Under "Player" I selected "Output Plug-ins". This presents a list of available output plug-ins in the window to the right. Kernel Streaming is now listed as a choice so I selected it then clicked "Configure". In order to ensure bit-perfect gapless playback I made the following selections: "HIFACE Kernel Streaming" under Output Device, "Enable Volume Control" off, "Gapless mode" on. The "Logarithmic Volume Control" setting has no effect as long as volume control is disabled. The buffer sizing will vary based on the system, but as a starting point I chose Input Buffer Size of 64KB, Output Buffer Size of 8KB, and 8 output buffers. There is also a button labeled "Open Status". This opens a separate window that provides realtime information on the plug-in's buffer utilization. This can be used to see if the input buffer size is adequate and to verify operation of the plug-in.