TAAE2 & modular integration into larger app
Imagine you need audio modules constructed, turned off/on dynamically at runtime. Beyond just using AEManagedValue with an Array of unknown dynamic modules, does anyone have thoughts for organizing TAAE2 modularity in a larger app? I’m worried that I’ll just reintroduce a “graph” based structure.
Well, I asked too soon. AEMixerModule looks like an answer to most of my dynamic concerns. It'd still be cool to discuss any other ideas people have. I've always battled with OOP in audio programing.
Good question! This is something I'd like to introduce in the developer documentation, too, when I get the time to write more of it.
In Loopy Masterpiece Edition, which I'm working on now, I've actually structured it by having a top-level "controller" class, LPMAudioSession, which manages the AVAudioSession stuff and drives a top-level AERenderer/AEOutputAudioUnit, and then I plug in sub-renderers for my top-level document type, LPMSessionRenderer, which are stored in an AEArray within LPMAudioSession. The LPMSessionRenderer then takes care of distributing input audio out to the various recorders, and mixing together the track modules and running them through effect modules.
A graph architecture isn't bad by any means - in fact, proper encapsulation calls for some degree of delegation of tasks to subordinate objects.