Hmm, this is going to require some changes to how effect units are chained together when an input channel is routed to multiple units in send mode to be able to chain more than 3 effects together. EngineEffectChain will need to be aware of whether the next active chain that it is passing its output to is in send mode to avoid mixing the dry signal into the input for the next send mode unit. This could be implemented by having the EngineEffectRack loop through each EngineEffectChain to check its insertion mode and pass that information down to each call to EngineEffectChain::process. So we cannot remove the EffectRack layer after all. With insert mode units this is not a big deal because they can be set to output 100% wet and 0% dry. I haven't yet thought through what to do when a send unit is followed by an insert unit or the other way around.
Hmm, this is going to require some changes to how effect units are chained together when an input channel is routed to multiple units in send mode to be able to chain more than 3 effects together. EngineEffectChain will need to be aware of whether the next active chain that it is passing its output to is in send mode to avoid mixing the dry signal into the input for the next send mode unit. This could be implemented by having the EngineEffectRack loop through each EngineEffectChain to check its insertion mode and pass that information down to each call to EngineEffectCha in::process. So we cannot remove the EffectRack layer after all. With insert mode units this is not a big deal because they can be set to output 100% wet and 0% dry. I haven't yet thought through what to do when a send unit is followed by an insert unit or the other way around.