API Notes: CoreAudio framework

Apple documentation

The full API is described in Apple’s documentation, both the C and Objective-C APIs are available (but see the API Notes below).

These bindings are accessed through the CoreAudio package (that is, import CoreAudio).

API Notes

Warning

CoreAudio is a fairly low-level framework and has no Python examples, due to the style of the API I’m not yet convinced that the API actually works correctly from Python.

  • A number of structures have a custom wrapper and therefore aren’t passed to functions as usual.

    • AudioBuffer
    • AudioBufferList
    • AudioChannelDescription
    • AudioChannelLayout
    • AudioValueTranslation

    In all cases you should explictly pass an instance of these structure to functions, even for pass-by-reference output parameters. This is needed to the low-level structure of these types.

  • The APIs to implement CoreAudio plugins are not supported.

  • CalculateLPCMFlags: all arguments to this function must be provided, there is no default value for the last argument.

  • FillOutASBDForLPCM: all arguments to this function must be provided, there is no default value for the last argument.