I'm interested in adding support for additional formats (WavPack, Musepack, True Audio, etc.) to macOS. My goal is to play these formats using AVAudioEngine.
Ideally I'd be able to subclass AVAudioFile and things would just work with AVAudioEngine but thus far I haven't been successful. I'm not sure if AVAudioFile is designed to support additional formats through subclassing. Years ago Apple released Core Audio utility classes (ACCodec, AudioFileObject, and friends, still available at https://developer.apple.com/library/archive/samplecode/CoreAudioUtilityClasses/Introduction/Intro.html#//apple_ref/doc/uid/DTS40012328) and using those it was possible to create new codecs/AudioFile components for the system. Apple even released ACFLACCodec as an example. These are no longer updated and I don't know if third-party audio components are supported on recent versions of macOS. Under the hood as best I can tell AVAudioEngine wraps AUGraph and AVAudioPlayerNode wraps AUAudioFilePlayer, so I have a hunch that if one could add a codec it would work across macOS including throughout AVAudioEngine. Is there a way to add additional formats? I've considered the following options but I don't know which are realistic: 1. Subclass AVAudioFile 2. Create audio codecs/AudioFile components 3. Wrap the decoder in AVAudioSourceNode Of the options, (1) would probably be the easiest to implement if it's supported, (2) would provide the decoders across the system and avoid reinventing the wheel, and (3) would probably work but is less desirable. Thanks, Stephen
_______________________________________________ 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]
