Apple uvolnil "SDK" verzi nového firewire ovladače pro testování. Zdá se, že na problémech spojených s používáním FW audio zařízení opravdu pracují. Otázkou je kdy bude nový ovladač dostupný, zda v příštím updatu systému, či až v Leopardu.
Citace z Readme k SDK testovací verzi:
About AppleFWAudio
Copyright © 2001-2006 by Apple Computer, Inc. All Rights Reserved.
Introduction
This is a pre-release of the AppleFWAudio software that contains a new streaming engine for certain devices and version 7.0 of the FWAUserLib framework. It is a universal binary and works on Tiger based system releases (10.4.

Components
There are 4 components to the AppleFWAudio project:
1. AppleFWAudio.kext - Main driver version 2.0.1fc1
2. AppleMLANAudio.kext - shim kext for mLAN support, version 2.0.1fc1
3. FWAUserLib.framework - user-client and library for creating and managing FireWire audio devices. New version 7.0 API's
4. AppleMIDIFWDriver.plugin - midi plugin for FireWire audio devices
Compatibility
AppleFWAudio driver package is compatible with both PPC and Intel platforms
Usage
Install the "AppleFWAudio" package and reboot. Plug in your hardware device and check the functionality of your control panel application and audio streaming. There are many improvements in this release and most of the reported problems have been addressed. Some of improvements are:
1. Improved latency and CPU performance using the new streaming engine (currently only enabled for a few select devices)
2. Panics and system hangs when devices using the new Extended Stream Format command have been fixed.
3. Block Read and Block Write AVC commands sent through the FWAUserLib are working correctly and at full bandwidth.
4. New and improved FWAUserLib APIs. The new API's allow for more control over AVC audio devices and with creation of virtual devices.
Here is a list of the new APIs in this release. These API's are still subject to change until the final release so do not ship an application built against this version of the framework.
Documentation on the new APIs will be release when the API is considered final.
OSStatus FWASetPluginPath(FWARef inRef,FWAEngineRef engine,UInt32 vendorID, UInt32 modelID, const char* pluginPath);
OSStatus FWACreateFWAudioPlug(FWARef inRef, FWAAudioStreamRef owningStream,UInt32 channelID,char* plugName, UInt8* plugIdent, FWAAudioPlugRef* streamRef);
OSStatus FWADisposeFWAudioPlug(FWARef inRef, FWAAudioPlugRef plugRef );
OSStatus FWAGetFWAudioMIDIPlugChannel(FWARef inRef, FWAMIDIPlugRef streamRef,UInt32* channelID);
OSStatus FWASetFWAudioMIDIPlugChannel(FWARef inRef, FWAMIDIPlugRef streamRef,UInt32 channelID);
OSStatus FWAGetFWAudioPlugChannel(FWARef inRef, FWAAudioPlugRef streamRef,UInt32* channelID);
OSStatus FWASetFWAudioPlugChannel(FWARef inRef, FWAAudioPlugRef streamRef,UInt32 channelID);
OSStatus FWAGetIndexedFWAudioPlug(FWARef inRef,FWADeviceRef device, UInt32 index,UInt32 dir, FWAAudioPlugRef* plugRef);
OSStatus FWAGetIndexedFWAudioMIDIPlug(FWARef inRef, FWAMIDIDeviceNubRef device,UInt32 index,UInt32 dir,FWAMIDIPlugRef* plugRef);
OSStatus FWAAttachFWAudioStream(FWARef inRef, FWAAudioStreamRef streamRef,FWAIsochStreamRef isochChannel);
OSStatus FWAAttachFWAudioMIDIStream(FWARef inRef, FWAMIDIStreamRef streamRef,FWAIsochStreamRef isochChannel);
OSStatus FWASetFWAudioPlugProperty(FWARef inRef, FWAAudioPlugRef plugRef,const char *keyname,const char* keyvalue);
OSStatus FWASetFWAudioMIDIPlugProperty(FWARef inRef,FWAMIDIPlugRef plugRef,const char *keyname,const char* keyvalue);
OSStatus FWAOpenLocalWithInterface(UInt64 guid,UInt32 options, FWARef* outRef);
OSStatus FWAOpenWithService(io_service_t ,UInt32 options, FWARef* outRef);
OSStatus FWAGetSessionRef(FWARef inRef,IOFireWireSessionRef * sessionRef);
OSStatus FWAReserveIsochSequences(FWARef inRef,FWAIsochStreamRef isochStream,FWAudioType type,UInt32 count);
OSStatus FWACreateFWAudioMIDIDeviceNub(FWARef inRef,FWADeviceRef owningDevice, const char * deviceName, UInt32 vendorID,const char* guid,const char* iconFilePath, UInt32 modelID, const char * editorPath, FWAMIDIDeviceNubRef* device);
OSStatus FWADisposeFWAudioMIDIDeviceNub(FWARef inRef,FWAMIDIDeviceNubRef device);
OSStatus FWAMIDIDeviceNubAttachMIDIPlug(FWARef inRef, FWAMIDIDeviceNubRef midiDeviceNub,FWAMIDIPlugRef midiPlug);
OSStatus FWAMIDIDeviceNubDetachMIDIPlug(FWARef inRef, FWAMIDIPlugRef midiPlug);
Known Issues
Most of the problems that have been reported by FireWire audio hardware developers have been resolved in this release. If one of the issues you have reported is not fixed in this release, contact DTS with your issue number and they can check the status of the issue if it has not already been updated.
For the new streaming engine:
• Latency varies between +/- 8 samples. We are working with the FireWire audio silicon vendors to resolve this issue.
• On rare occasions on Intel machines a large round trip latency will be observed. This occurs most often on machines with S800 port.
• On Intel machines with S800 ports sometimes the audio device will not have any audio when the machine is rebooted. To work around this issue, switch to a different sample rate and then back again and the audio will be restored.
For all devices:
There may be times when a FireWire audio device will not show up after a reboot. This version of the driver is more stringent about the responses and values returned from the device. If there are any serious errors or extended timeouts from the device during enumeration, the driver will stop querying the device and fail the device enumeration. If this happens a message will be printed out in the system.log file. If your device fails to enumerate often, you may need to modify your devices firmware to the latest version from your silicon vendor or modify some of your existing commands to respond in a timely fashion with the correct values.