Friday, April 2, 2010

Killing the MOTU 828 Squeal

For years I lived with the frustration of squeal, stutter and drop from my MOTU 828mkII firewire audio/midi interface.  Disabling my internet connection via Windows XP seemed to stop it most of the time, even though there were no conflicts showing in my Device Manager, but once I entered the world of networking and RAID arrays, shutting down my connections was no longer an option.

Finally I got fed up enough with the situation to do some research, and believe it or not I found a solution.

There are three main things that will help fix this problem:

  • Rolling your firewire card drivers back to the drivers from XP SP1 [version 5.1.2600.1106 (xpsp1.020828-1920)] because the newer firewire drivers suck
  • Adding a DWORD value called SidSpeed to your MOTU’s registry entry
  • Enabling optical i/o for the 828 even if you’re not using it

 

”Back Dating” your firewire drivers (thanks to “the Real Roach” at gearslutz.com):

  1. Download the SP1 firewire drivers from this link (zip file containing an inf and 5 sys files).
  2. Disconnect your external firewire devices.
  3. Find the “OHCI Compliant IEEE 1394 Host Controller” and anything else in your Device Manager under "IEEE 1394 Bus host controllers." Right Click and uninstall.
  4. Find "1394bus.sys" and "ohci1394.sys" in C:\Windows\system32\drivers, and delete them.  Some people suggest doing this in Windows Safe Mode, but I didn’t find it necessary.
  5. Find your Driver Cache folder (usually C:/Windows/Driver Cache) and rename it so Windows doesn’t know where to look for the missing FW driver when you reinstall your card (you can/should rename this back when you’re done).
  6. Click  “Add New Hardware” in your control panel.  Windows will scan your machine and find the firewire card.  When it tries to install it, since you renamed the Driver Cache folder, it won’t know where to get the drivers, and you can install the older SP1 drivers you downloaded by following the steps and being sure to select “have disk” when asked where the appropriate drivers are.
  7. Go to your Device Manager, select the “driver” tab for your OHCI Compliant IEEE 1394 Host Controller, select “driver details” and verify that the file version is 5.1.2600.1106 (xpsp1.020828-1920) for both the 1394bus.sys and ohci1394.sys files.

ps If the link to the SP1 1394bus.sys and ohci1394.sys ever breaks, you can find those files in a CAB files marked SP1 in your Driver Cache folder in Windows.

 

Hacking your registry to update the MOTU 828 entry (Also thanks to “the Real Roach” at gearslutz.com):

  1. In your Device Manager, locate your firewire controller under IEEE 1934 Bus Host Controllers.
  2. Right-click the firewire controller entry, click properties, and then click the details tab.
  3. Click “Device Instance Id.”  You will see a string of letters and numbers that is similar to the following: PCI\VEN_104C&DEV_8020&SUBSYS_00D81028&REV_00\4&19FD8D60&0&60F0.  The information between the two slash marks (\) is what you are looking for.  The "1394_hc_hw_id" corresponds to "VEN_104C&DEV_8020&SUBSYS_00D81028&REV_00" and is the hardware ID in this example. The information that follows the second slash mark (\) is the "1394_instance_id" so "4&19FD8D60&0&60F0" is the instance ID in this example.
  4. Click the Windows start menu, select “run” and type in RegEdit.
  5. Locate and then click the following registry subkey:
    HKEY_LOCAL_MACHINE\SYSTEM\
    CurrentControlSet\Enum\PCI\1394_hc_hw_id\1394_instance_id\Device Parameters (the 1394 HC HW ID and 1394 instance ID is what you found in step 3 –this is how you locate the correct registry key for your MOTU device).
  6. If the SidSpeed value does not exist in the right pane after you click the Device Parameters subkey, create it by pointing to New on the Edit menu, clicking DWORD Value, typing “SidSpeed,” and then pressing ENTER.
  7. Right-click SidSpeed, and then click Modify.
  8. In the Value data box, type 0,1,2 or 3 and then click OK.  The values that correspond to these numbers are shown in the following table:
    Value Speed
    0 S100 speed
    1 S200 speed
    2 S400 speed (default value)
    3 S400/S800 speed (Windows XP SP1 value)
    Note: if you try to use a value that is larger than 3, SidSpeed will automatically revert to a value of 0.
  9. Quit Registry Editor and reboot.

That’s it!  The squeal, drop-outs and stutter are GONE!

O frabjous day! Callooh! Callay!

[UPDATE] Bad news.  Next day.  I’m still getting the squeal.  All changes above have held (nothing reverted), but the squeal is back.

ARGH.

[ANOTHER UPDATE] Evidently restoring factory defaults might do the trick.  Follow these steps to restore the 828mkII to Factory Default Settings.

  • Disconnect the firewire cable from the 828mkII
  • Press the Setup knob
  • Turn the Setup knob all the way to the right
  • Press the Select knob
  • Press the Value knob
  • Power off the interface and plug the firewire cable back in
  • Power the interface back on

[ANOTHER UPDATE]  Well what do you know… MOTU updated the 32-bit FireWire/USB 2.0 driver on 3/10/2010, just last month!  Maybe that will do something.

No comments: