`pyobjc-framework-phase` provides Python wrappers for Apple's PHASE (Physical Audio Spatialization Engine) framework on macOS. It is part of the larger PyObjC project, allowing Python applications to interact with Objective-C APIs and leverage native macOS functionalities. The current version is 12.1, with releases typically aligning with macOS SDK updates and Python version support changes.
pip install pyobjc-framework-phaseVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to import a class from the `PHASE` framework and attempt to instantiate a `PHASEEngine`. While a complete audio application using PHASE is complex, this example verifies that the framework bindings are correctly installed and accessible from Python. Output will appear in the macOS system log (viewable via Console.app) due to `NSLog` usage.
Upgrade to Python 3.10 or later, or pin `pyobjc-framework-phase` to a version less than 12.0 (e.g., `pip install 'pyobjc-framework-phase<12.0'`).
Upgrade to Python 3.9 or later, or pin `pyobjc-framework-phase` to a version less than 11.0 (e.g., `pip install 'pyobjc-framework-phase<11.0'`).
Review any custom Objective-C classes wrapped with PyObjC, especially `init` methods, to ensure they correctly handle reference counting under the new ARC alignment. Most pure Python usage should be unaffected.
If bridging Python classes with custom `__new__` implementations, thoroughly test initialization. Avoid using `__init__` when instantiating through PyObjC's default class factory for new Objective-C objects if `__new__` isn't explicitly overridden in Python.