cMP² and USB – a different approach

The Guide to the cics Memory Player (cMP²) project describes assembly of a computer transport running bespoke software on a tightly-configured, stand-alone PC with high-end components including data storage, a built-in monitor and so on.

This note outlines how the project can be implemented to suit USB-interfaced DACs and provide first-rate sound at significantly lower cost. It is especially suited to low-end devices.

The chosen platform is the Fit-PC2, a miniature, Atom-based computer featuring a low-power, ‘embedded-grade’ motherboard in an aluminium case-cum-heatsink. As it is small and features very low RF emission, it is practicable, despite caveats in reference 3 below, to locate it close to DACs and amplifiers.

In this scenario, it is run ‘headless’, i.e. it has neither KVM (keyboard, video, mouse) nor, optionally, local data storage and is instead controlled from another computer on a LAN. Typically, this will be the music ‘server’ but any VNC-capable device will cope.

Headless mode trades KVM’s electrical noise and OS overhead for that of a LAN. Effectively, it reduces the audio PC’s role to that of a peripheral passing data from a host on a LAN via cPlay to an output device (a bit like the embedded processor in a laserprinter).

Audio-over-USB is often derided by audiophiles. There are valid reasons for treating it with caution (as the name implies, USB is not optimised for audio) but there are equally valid reasons for dismissing some of the criticism as poorly informed.

If USB hardware is well designed and suitably configured, it can present high-quality audio data although, inevitably (and reasonably), at the expense of flexibility. Given the different way in which USB transfers audio compared to other data, it is baffling that even ‘tweak-happy’ audiophiles dismiss it because it is not at its audio best ‘straight out the box’.

For good results, the DAC should be the only visible USB device (strictly, the only output device) on an audio-dedicated PC, a notion key to cMP².

Discussion of USB in audio circles often focuses on the benefits of asynchronous protocols. Users report excellent sound quality but, as yet, few products implement the technique and those that do can be expensive. The many USB DACs that do not use it are likely to benefit most from the approach described here.

Users and reviewers alike also vigorously debate USB cables. Many are reasonably priced and demonstrably effective but some cost over £1,000 for a one-metre length. Conspicuous consumption is beyond the scope of this note but spending large sums of money on one stage – and one stage only – of the process of preserving the timing of a real-time signal while making little or no effort to ensure its prior integrity seems a poor way to allocate resources.

Meaningful measurements are beyond the reach of most hobbyists but competent commentators regularly report that a well-designed, low-power computer configured with care makes for good sound. Certainly, on trial, the difference between a conventional (ITX-format) setup and a headless Fit-PC2 where each was driving the same USB DAC with all else as equal as feasible was dramatic.

To put it in context, a Fit-PC2 without KVM costs less than a suitable mini-ITX computer with KVM but typically performs better with USB devices; a complete system based on the Fit-PC2 (i.e. PC, HDD, mid-priced DAC and, say, an ADuM4160 isolator) may cost less than some USB ‘super cables’.

What follows are notes on how it can be done. Hopefully, some will find them helpful. (Thanks to cics and other AA members for technical advice and support.)


  1. The Well Tempered Computer – useful background material.
  2. USB and noise; USB Myths and Misconceptions; USB cables and sound – three good explanations by an AA member of USB-audio issues.
  3. A personal memoir of engineering heartache and triumph (Analog Devices) – the entertaining story of the PCM2702 USB-audio chip as told by its designer.
  4. Switching in USB Consumer Applications (Analog Devices) – useful points on PCB layout and allied topics though not explicitly audio-related.
  5. Power Delivery Design Issues for Hi-Speed USB on Motherboards (Intel) – all USB ports are equal but some are more equal than others.
  6. The Fit-PC – not the only choice in this scenario but certainly a good one.
  7. The State of USB Audio (The Absolute Sound, issue 194) – to finish on a lighter note, some Absolute Tosh.

1. Selecting a boot device

Ideally, the Fit-PC2 would boot from another computer on the LAN. This seems easy enough to do in Linux but in XP requires either AoE or iSCSI protocols (impractical for home setups) or a program called DisklessAngel. This is tricky to use, costs more than an HDD – and needs a tested HDD install as a starting point. Booting from a memory stick is also reliable in Linux but, though it is easy to install XP from a memory stick, installing it on one is not so trivial. This note therefore assumes a local drive as the boot device.

2. Configuring BIOS

Hit F2 on startup to access the BIOS and start by ‘restoring’ defaults: Exit > Load Setup Defaults; Exit Saving Changes. Restart and set as follows:
Advanced Menu > Boot-time Diagnostic Screen: Disabled
Intel Menu > CPU Control sub menu > Hyperthreading: Enabled; Processor Full Speed: Disabled
Intel Menu > Chipset Control sub-menu > Audio, SDIO and LAN PXE BOOT: Disabled; Gigabit LAN: Enabled
Intel Menu > Video (Intel IGD) Control sub-menu > Graphic Memory Aperture Size: 128MB
Boot Menu > Select CD-ROM then local disk at install time and local disk thereafter.

3. Installing XP

Configuring a headless PC starts with a conventional OS install. Unless this is pre-loaded, the Fit-PC2 needs temporary access to a USB CD-drive, keyboard and mouse and a digital monitor. (The display interface is DVI-D over HDMI: VGA is not supported. An HDMI to DVI-D adapter is provided.)
LAN and chipset drivers are loaded as normal.
Experimenting with a Fit-PC2’s configuration can lead to non-recoverable errors. Would-be builders are urged to make image files of the system partition in a ‘known good’ state at regular intervals and to test restoration in advance. (Tip: re-enable all the USB ports before making the image file to permit the use of a keyboard and mouse after restoration. They can easily be disabled again.)

4. Installing the video driver

The procedure in Chapter 7 for configuring video doesn’t work on the Fit-PC2.
  1. If no video driver is installed and no monitor (strictly, no EDID ROM) is detected on bootup, the system defaults to 480 x 640, 256 colours – readable but too small.
  2. If Intel’s standard video driver is installed and no monitor is detected, it defaults to 480 x 640, four colours – unreadable as well as too small.
However, if resolution and bit depth (800 x 600, 256 recommended) are set using the driver xp-display-iegd-xxx, they are retained when the monitor is removed. (Thanks to Fit-PC2’s UK distributor and its support forum for help with this.)

5. Losing one’s head

Install a remote control utility on the Fit-PC2 and the ‘control’ PC. For this application, the best of those tested was UltraVNC. There is a free version and tutorials. (For best results, load UltraVNC’s ‘Mirror Driver’ – see the web site for instructions.)
To configure UltraVNC, go to Start > Programs > UltraVNC > Edit Settings, launch the utility and set as follows:
Network tab > Check “Enable Incoming Port” and “Auto”; uncheck the rest;
Security tab > Enter a password, uncheck all other boxes;
Input/file transfer tab > uncheck all the boxes;
Connections tab > Set Idle timeout set to 14400 seconds, uncheck “Display Query Window”, set “Multiple connections” to “Keep existing” and “Disconnect” to “Do nothing”;
Screen Capture tab > Check “Poll Foreground Window”,“Low Accuracy”, “Use system hookdll”, “Use Mirror Driver”, “Show Primary Display” and “Remove Wallpaper”. Uncheck the rest;
Misc/Logging tab > uncheck all the boxes.
Other products generally worked fine but had niggles with cMP on the Fit-PC2. (RealVNC, for example, requires two restarts to switch out of cMP Mode.) Once the remote link has been tested, the Fit-PC2 can be made headless simply by disconnecting the CD-ROM and KVM.
  1. Static IP addresses avoid DHCP’s overhead and work well with UltraVNC. Recommended.
  2. On test, a dedicated Gigabit NIC in the music server transferred music data noticeably faster than a 100BaseT link. Recommended.

6. Optimising XP for cMP

Obviously, Chapters Five and Six of the cMP Guide do not apply. The procedure described in Chapter 7 does but with the some exceptions.
Chapter 7.1 - Optimising Windows using Control Panel
Step 2 – remove unnecessary components
The Accessibility Wizard and Accessories are not required and can be uninstalled.
Step 3 – minimise video traffic
See Para 4 above.
Step 4 – underclock the CPU
Set Power Scheme to Home/Office Desk and Turn off hard disks to 3 minutes.
Clock speeds cannot readily be changed on the Fit-PC2. For non-oversampling DACs, the 1.1 GHz version should be used in preference to the 1.6 GHz: Task Manager shows that CPU Usage is about 20 per cent when running cPlay with no upsampling. The 1.6 GHz model should support upsampling at least to 96 kHz but this has not been tested.
Step 6 – disable or suspend services
Plug and Play and RPC are mandatory, networking needs the Workstation service and the remote control utility typically installs its own.
Chapter 7.2 - Optimising Windows using Device Manager
The following devices can be disabled:
  • Batteries > Microsoft ACPI-compliant Control Method Battery
  • Human Interface Devices > USB Human Interface Device
  • IDE ATA/ATAPI controllers > Secondary IDE Channel
The following System Devices can be disabled:
  • Intel(R) 82802 Firmware Hub Device
  • Microcode Update Device
  • Microsoft System Management BIOS Driver
  • Numeric Data Processor
  • Programmable interrupt controller
  • System timer
  • Terminal Server Keyboard Driver
  • Terminal Server Mouse Driver
Do not disable devices listed under Network Devices and (View > Show Hidden Devices) Non-Plug and Play Drivers that are associated with networking. Results are unpredictable.
Chapter 8 - Optimising Windows using Autoruns
Omit steps 4 and 5.
Chapter 11 - cMP software, sound reasons for coming out of a shell
Clicking cMP’s ‘Explorer’ button in XP Mode usually hangs the computer. (So don’t.)
Appendix A – Assembly
This section does not apply.
Appendix B – Advanced
Sections 3 to 6 do not apply.

7. Configuring USB

Reports on the AA list and elsewhere suggest that a USB port connected to a DAC should not share an interrupt if smooth data transfer (no drop outs) is to be ensured. Refining this notion (i.e. lowering the USB polling rate, disabling USB 2 (and 3 if available) in BIOS, and disabling unused USB ports in Device Manager) brought perceptible sound quality improvements, especially lowering the polling rate.
The principle was extended to the Fit-PC2. Presumably due to a better-quality motherboard, the effect was less marked but, as implementing it takes moments, it is still well worth doing.
USB sockets on the Fit-PC2’s back panel, viewed from the back, are numbered as below. The number in parentheses is the corresponding ‘Intel(R) SCH Family USB Universal Host Controller’ (UHC) as shown in Device Manager.
Socket 1 (UHC 8115) Socket 3 (UHC 8114)
Socket 0 (UHC 8116) Socket 2 (UHC 8114)
As UHC 8114 is shared by sockets 2 & 3 and the IR Receiver shares 8116, it seems reasonable to connect the DAC via socket 1 to the unshared 8115. It is assumed that 8117, which is USB2 only, controls the two front-panel sockets but this has not been checked. (For space reasons, they are micro-USB sockets.)
Win XP normally assigns each UHC controller an interrupt but the unused ones (i.e. all except 8115) can be disabled after going headless (they are needed for keyboard and mouse). The interrupts used are shown aside. Note that six only (9, 14 and 16 to 19) are used as the other devices have been disabled or removed. (A typical desktop has 25 to 30 IRQ lines.).

8. Using cPlay

Atom CPUs do not support the SSE4 instruction set. The SSSE3 version of cPlay must therefore be used instead. (It reportedly has higher overheads in the ASIO interface.)
cPlay can be launched using cMP’s library facility as normal except that it is necessary first to log on to the network drive. As key services have been disabled, this means using the Net command, whose syntax is Microsoftly perverse. Assuming a blank password (include the colon), a drive letter M: and using \\ and / strictly as shown, it is:
Net Use M: \\Server\Folder /User:Server\UserName password:
Though Net normally supports automated logons, it seems not to under minlogon. Accessing a remote share manually can be done many ways but a batch file makes it quick:
  1. Set up the shared folder on the ‘music server’ and note a valid username and password
  2. Create a batch file called Logon.bat as above and note its location (typically, C:\)
  3. Edit the “RIPPER” line in C:\Program Files\cics Memory player\cics memory player.pth to read:
RIPPER #H “C:\Logon.bat”
On startup, click the ‘RIP’ button in the cMP window.

9. Power Supplies

Replacing the stock SMPS with an off-the-shelf linear supply amply repays the effort. Users of other Fit-PC models report excellent sound quality using SLA batteries. This bespoke design is known to work very well with the Fit-PC2 but is DIY only.
Improvements were also obtained by powering the HDD from a separate PSU (using the humble 7805 though a better circuit is recommended) and by mounting it outside the case. As the HDD normally plugs directly into a female socket on the motherboard, this calls for an M-to-F SATA lead. If one cannot be found, make one using a Slimline SATA connector, a hacksaw and scalpel.)

10. Library Management

Normally, one rips CDs on a desktop PC and stores the data in a music ‘library’. On a conventional cMP², one must then copy new or corrected data to the music player. This involves setting cMP to "XP mode", re-booting, possibly re-enabling USB2 in BIOS and disabled USB ports in DevMgr, plugging in an external drive, copying the data, reversing the above steps – and, on discovering an error in a filename, correcting it and doing it all again.
A headless setup makes all this unnecessary – the Fit-PC2 reads data straight the music library. (That does not prevent some – or, for smaller libraries, all – music data being copied over the LAN and stored on the local drive if preferred.)
For the author, who has a reasonably large collection, efficient housekeeping was the original reason for experimenting with headless configurations. Sound quality improvements realised by using the Fit-PC2 were an unexpected though welcome bonus and prompted efforts to optimise the configuration.
Print - Search - email: cics @ cicsMemoryPlayer . com (support related queries must be posted on forums)
Page last modified on January 02, 2011, at 07:39 AM