After half a day of trials & errors at least i could get my setting running with a very dirty hack.
I noticed that at a certain point at instantiation Reaper reports false (or misleading) HostChannels in IPlugAU::AssessInputConnections(), which leads to the input channel loss.
Code:
// DBGMSG("\nbus :%d:%s start:%d PlugCh:%d HostCh:%d", i, AUInputTypeStr(pInBusConn->mInputType), startChannelIdx, pInBus->mNPlugChannels, pInBus->mNHostChannels);
// in void IPlugAU::AssessInputConnections()
bus :0:NotConnected start:0 PlugCh:3 HostCh:2
bus :1:NotConnected start:3 PlugCh:1 HostCh:-1
bus :0:NotConnected start:0 PlugCh:3 HostCh:2
bus :1:NotConnected start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:2
bus :1:NotConnected start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:2
bus :1:RenderCallback start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:2
bus :1:RenderCallback start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:2
bus :1:RenderCallback start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:2
bus :1:RenderCallback start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:0
bus :1:RenderCallback start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:0
bus :1:RenderCallback start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:0
bus :1:RenderCallback start:3 PlugCh:1 HostCh:2
bus :0:RenderCallback start:0 PlugCh:3 HostCh:0
bus :1:RenderCallback start:3 PlugCh:1 HostCh:2
Since i couldn't find a proper solution to fix it i tried it with brute forcing my desired values. That 'don't try that at home' hack did it for me. Only Live seems to be a bit picky about channel handlings and wants all HostChannels on the first bus. So at the end i came up with these lines:
Code:
// added at void IPlugAU::AssessInputConnections()
//
// brute forcing channel settings for:
// #define PLUG_CHANNEL_IO "2-2 3-2 4-2"
// #define PLUG_SC_CHANS 2
pInBus->mNHostChannels = (GetHost() == kHostAbletonLive)? (i>0)? 0:4 : 2;
pInBus->mNPlugChannels = 2;
pInBus->mPlugChannelStartIdx = (i>0)? 2:0;
For now everything runs fine and i got a working au version for all hosts i could test. I know that doesn't mean at all that this will work with other settings. However maybe this could be a starting point for more experienced WDL friends to come up with a proper soultion?