AAX_CHostProcessor support

Hi Guys,

I want to use AAX_CHostProcessor interface for AAX plugins. I know JUCE doesn’t support it. I wonder if someone uses it and guides me to add that to my project?

Basically, I need to use PreRender, PostRender and RenderAudio member functions in it for an Audio Suite plugin (offline).

Volkan

2 Likes

AudioSuite should share the same processor code as realtime… have you tried just checking the AudioProcessor::isNonRealtime() state?

Rail

The original poster is probably looking to do something AudioSuite specific like access all the samples to be processed before the actual processing happens. (Consider processings like normalization or reversing of the audio, which AudioSuite allows to do.)

2 Likes

Hi,

Since we needed this in Sound Radix, we’ve added AAX AudioSuite (CHostProcessor) support to JUCE 4 & 5.

soundradix/juce5 is pretty much on par with 5.x develop branch.
soundradix/master is currently 4.3.1.

  • Remember! CHostProcessor behaves different than Native AAX running with AudioSuite property (for example: input number will be your maximum supported if in multi-input mode or mono).

  • It was tested on Pro Tools 10.3.10 (32-bit) and Pro Tools 2018 (64-bit).
    (it doesn’t support older Pro Tools < 10.3.5 as this is based on AAX API).

  • AudioProcessor::wrapperType got wrapperType_AudioSuite (to allow code branching for CHostProcessor version…).

  • AudioProcessor now has analyseBlock to allow analysis stage prior to processBlock.

  • AudioProcessorEditor has getCustomLabel to allow customized naming on AudioSuite UI.

  • We have random audio access encapsulated to juce::AudioFormatReader.

Here are the relevant commits -
https://github.com/soundradix/JUCE/commit/6cafbeac309b0e6a78597c097da5dc3778e7f28f#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/8bd984303651ea53570ce779eae3f915535cfe4e#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/33a3fc90e102792ec594f47eb6b9ee0fc541ce18#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/2f1d7489ab4e1bd54d6c2de8b3abecd8932ae0d2#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/3d3fead7fa3053be68a3ee9b4c5fcf25f2cef50c#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/1242c86f8528f33176aef981b7428bab64f771d0#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/0fc68b48f9160f56905d6993291e1b2800fbea4f#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/b60969190d04f0215dd0557239eb9aa21c68546b#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/dbfb4b4eca7cca064ab279abbb15b6d0eef336f9#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/1ff53d64f51bff970e33ad0338d00b0a99027118#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/712a360534c5f5ae09004ba4d3ddcf06505571d6#diff-2bad363478fb1112173228886b668256

https://github.com/soundradix/JUCE/commit/c372446d89391e50b55ca15d6fb81d8bad747a19#diff-2bad363478fb1112173228886b668256

Comments and bugfixes are welcome!

Cheers,

Tal

5 Likes

Note: If ROLI wants to merge it into their branch they’re always welcome :slight_smile: And everyone’s welcome to use our changes with no extra limitations on top of the JUCE license etc

6 Likes

Hey!
I’m using sound radix modules and are great. Is there a way to build only the AudioSuite AAX version of the plugin or make impossible for the user to insert it on a track?

Yes! The preprocessor definition JucePlugin_EnhancedAudioSuiteOnly = 1 does this, and this is also what we do for Auto-Align Post.

Awesome! Thanks

@yairadix is there a way to know when the user selects a track with a different channel number (and layout)? Something like a callback or some sort of workaround that I could try to update the channel-configuration of my audiosuite plug-in before pressing render.

1 Like

IIUC no. Only when the user clicks analyze/render you can know the layout. The UI can also be opened without any selection and the selection can also include several regions with different layouts.

2 Likes

Thanks @yairadix, I’ll try to handle the thing in some other way! Very grateful for your audiosuite support anyway :heart:

1 Like