Re: Adding support for new formats to AVAudioEngine on macOS
Re: Adding support for new formats to AVAudioEngine on macOS
- Subject: Re: Adding support for new formats to AVAudioEngine on macOS
- From: Doug Wyatt via Coreaudio-api <email@hidden>
- Date: Tue, 14 Apr 2020 10:26:02 -0700
The API food chain is AVAudioFile -> ExtendedAudioFile ->
AudioFile+AudioConverter -> AudioCodec.
So yes, an AudioCodec would be most generally useful and extensible.
> On Apr 8, 2020, at 12:07 , Stephen F. Booth via Coreaudio-api
> <email@hidden> wrote:
>
> 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@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden