Best Practice: multi-channel/multi-I/O combination plugin

I have a plugin with the following I/O processing capabilities:

mono in --> mono out
mono in --> stereo out
stereo in --> stereo out
5.1 in --> 5.1 out

What is the preferred way to initialize the plugin for this set of combinations? When I use the following:

addAudioInput(STR16(“Mono Input”), SpeakerArr::kMono);
addAudioInput(STR16(“Stereo Input”), SpeakerArr::kStereo);
addAudioInput(STR16(“5p1 Input”), SpeakerArr::k51);

addAudioOutput(STR16(“Mono Output”), SpeakerArr::kMono);
addAudioOutput(STR16(“Stereo Output”), SpeakerArr::kStereo);
addAudioOutput(STR16(“5p1 Output”), SpeakerArr::k51);

the routing table in Reaper shows this for a stereo audio file that the plugin is processing:
Screen Shot 2017-05-15 at 12.17.09 PM.png
Is there a best-practice rule for setting up the I/O for this kind of multi-capable plugin? Or is the above code proper and the Reaper user will need to be diligent when setting up the plugin? I think the above code is indeed proper, but wanted to know if there was a preferred ordering of the I/O function calls.


  • Will