On Apr 13, 2015, at 3:09 PM, Jeremy Friesner <[email protected]> wrote: > In particular, my understanding is that Objective C cannot give very strong > real-time guarantees, due to dynamic binding issues, It certainly does not happen by default, but that does not mean it isn't possible. You can force the dynamic binding to happen under your control when you get the address of a method selector. You can then cache this value and call it directly rather than using the usual ObjC messaging mechanism. This technique is not for beginners, though. I've used it to speed up tight loops, but I've never needed to test it in an AudioUnit, although I believe it would work just fine.
> and that is why Apple chose to write the AudioUnit API in C++ instead. AFAIK > there is no underlying Objective C API for that reason. I doubt that this had anything to do with their reasoning. Apple rewrote a lot of system elements that were ObjC in C in the early days, and created a lot of bugs as a result. I have evidence that the CoreAudio team did not understand how to write correct ObjC code in those days, and that's likely the reason AudioUnits were based on C++. The underlying API is C. It's really just the AudioUnit class hierarchy that is C++, not the CoreAudio API itself. Brian Willoughby Sound Consulting _______________________________________________ Do not post admin requests to the list. They will be ignored. Coreaudio-api mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com This email sent to [email protected]
