I’ve been trying to get the VPIO unit to work on OSX without success. It’s been a painful process to learn how these APIs work – Apple’s documentation is great up to a point, but at a certain level of detail it suddenly stops and there’s
nothing. I just learned of the existence of, and obtained a copy of Adamson and Avila’s Learning Core Audio book and I’m reading it now. The book mentions the VPIO unit only in the context of how iOS differs from OS X, and doesn’t go into any detail about
it. I hope it’s reasonable to ask these questions before I’ve digested the book.
Is it true that the VPIO unit can be independently assigned input and output devices – unlike the AHAL? My experiments indicate that the AHAL connects to one device only, although it can be an aggregate device. The VPIO refuses to work
with an aggregate, but assigning separate devices with kAudioOutputUnitProperty_CurrentDevice, global scope, and input (1) and output (0) elements yields noErr status and the device IDs both read back.
I also found that, contrary to documentation about HAL units in general, the VPIO unit cannot be enabled for I/O – the property kAudioOutputUnitProperty_EnableIO is not writeable. However, it is readable and always reads as enabled. Is
this normal behavior for VPIO or am I getting anomalous results already? I find it odd that VPIO seems to violate one of the few low-level details that the Apple documentation is abundantly clear about.
I have a ton more questions about Core Audio but I’ll digest the Learning Core Audio book before troubling the list with them.
Thank you very much,
Steven J. Clark
VGo Communications