Word synchronization of multiple PowerMACs audio outputs
Word synchronization of multiple PowerMACs audio outputs
- Subject: Word synchronization of multiple PowerMACs audio outputs
- From: David Norman <email@hidden>
- Date: Thu, 24 Jul 2008 15:13:14 +1200
- Importance: Normal
Hi there,
I have spent a day trying to track down the answer to this, and I think I have learned a lot, but not quite enough...
I have a multi-machine setup. If I start QT player on all machines as good as simultaneously, after a long time they drift out of sync. They are playing a long ambient track, so there is plenty of time for this to happen. I know that this is because 44.1kHZ on one machine isn't the same as on another. I have verified this by monitoring the analogue waveforms on a multi-channel scope.
So, I have been looking at the Aggregate Devices to see if I can synchronize the machines word clocks. I have created an aggregate device which has Digital In, Digital Out and Line out, and has the Digital In as the clock source. My expectation was that the clock for the outputs would be derived from the digital input, and this will keep the outputs in sync (some sort of switch would occur in the h/w that would use the input word clock instead of the internal one).
It does not seem to be working, there is drift, the same drift as with decoupled machines.
I have seen that there is a property of sound devices called kAudioDevicePropertyClockDomain. The documentation suggests that different domains cannot be synchronized. I have read this property out for the different devices, and the Digital In has a different domain than the others. This seems obvious, since the digital In is clocked from the input source, but the rest of the hardware has no such self-clocking input to sync to.
There is a clock domain for the aggregate device, and this is '0'. The documentation describes this as 'unknown'.
I have read answers that suggest that my problem can be solved in s/w by reading the time in the device's units (AudioDeviceGetCurrentTime) for both the output and the input, converting them to a common timebase, and performing some sort of resampling on the output.
I can also imagine a situation where using MTC or SMPTE would do this for me. Or, using an external device with a word clock in and a master clock source.
The immediate problem, though, is whether I can achieve word-sync (simply and easily) by chaining the digital IO, and not writing a line of source code?
Thanks.
Dave
References:
http://lists.apple.com/archives/coreaudio-api/2004/Feb/msg00285.html
http://lists.apple.com/archives/coreaudio-api/2006/Jan/msg00288.html
http://lists.apple.com/archives/coreaudio-api/2007/Mar/msg00016.html
http://lists.apple.com/archives/coreaudio-api/2007/Mar/msg00017.html
http://lists.apple.com/archives/coreaudio-api/2005/Dec/msg00207.html
http://www.presonus.com/media/downloads/multiFPhowtoOSX.pdf
http://blog.emusician.com/the_bus/2006/11/06/aggregate-devices/
http://www.apple.com/pro/techniques/aggregateaudio/
http://www.soundonsound.com/sos/feb06/articles/pcmusician.htm
http://forums.macosxhints.com/archive/index.php/t-64916.html
http://discussions.apple.com/thread.jspa?threadID=1437373
_________________________________________________________________
Find singles in your area with Match.
http://a.ninemsn.com.au/b.aspx?URL=http://match.nz.msn.com/channel/index.aspx?trackingid=1043416&_r=WL_EMAL_TAG&_m=EXT _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden