I’m trying to understand the the relationship between channels and DSPs. As far as I understand it:
- At the lowest level, we’ve got a graph of DSPs
- some linear groups of them (DSP Chains) are wrapped up in ChannelsorChannelGroups
What I don’t understand is if the Channel to Channel relationships are anything separate from the DSP to DSP relationships.
For example, I can create 2 channel groups:
        FMOD.ChannelGroup cg1, cg2;
        coreSystem.createChannelGroup("cg1", out cg1);
        coreSystem.createChannelGroup("cg2", out cg2);
which creates this graph
If I connect cg2 to cg1, like this:
        FMOD.ChannelGroup cg1, cg2;
        coreSystem.createChannelGroup("cg1", out cg1);
        coreSystem.createChannelGroup("cg2", out cg2);
        cg2.addGroup(cg1);
I get this graph:
So cg1 was disconnected from the master group and connected to cg2. I can do seemingly the same thing by manipulating the DSPs:
        FMOD.ChannelGroup cg1, cg2;
        coreSystem.createChannelGroup("cg1", out cg1);
        coreSystem.createChannelGroup("cg2", out cg2);
        FMOD.DSP cg1_fader, cg2_fader;
        cg1.getDSP(0, out cg1_fader);
        cg2.getDSP(0, out cg2_fader);
        cg1_fader.disconnectAll(true, true);
        cg2_fader.addInput(cg1_fader);
Is this the same thing? One thing that’s confusing is that a ChannelGroup is only supposed to have 1 parent, but if you’re routing the DSPs there’s nothing stopping you from routing a ChannelGroup’s output fader to multiple places.
Maybe a more concise wording for my question is "Is the tree of Channels and ChannelGroups separate from the graph of DSPs?

