Strange I/O issue - "4-4" config does not show up in Pro Tools - SOLVED

I am building a multichannel plugin and have come across a strange situation - every configuration from 1-1 to 10-10 works in Pro Tools except 4-4. The plugin does not show up on “Quad” tracks in either Mac or PC versions of Pro Tools.

I have my config set up like this:

#define PLUG_CHANNEL_IO "1-1 2-2 3-3 4-4 5-5 6-6 7-7 8-8 9-9 10-10"

#define AAX_TYPE_IDS 'IEF1', 'IEF2', 'IEF3', 'IEF4', 'IEF5', 'IEF6', 'IEF7', 'IEF8', 'IEF9', 'IEFA'
#define AAX_TYPE_IDS_AUDIOSUITE 'IEA1', 'IEA2', 'IEA3', 'IEA4', 'IEA5', 'IEA6', 'IEA7', 'IEA8', 'IEA9', 'IEAA'

The plugin works in every track channel count except 4-4 (Quad). I have tried with only “4-4” config (no other configs) and that does not work either. Other plugins show up and work in PT quad tracks so I don’t think this is a PT bug. Seems to be something in iPlug.

I’ve looked at the iPlugAAX_Describe files and I don’t see anything out of sorts. Tried setting some debugging points but nothing comes up. When I checked ParseChannelIOStr after loading the plugin it shows 4in/4out is valid among all the other I/Os.

Any ideas why the plugin does not show up on quad tracks and where to look for the cause?

I found the cause and the “fix”.

In config file “IPlugAAX_Describe.cpp” the numChans switch return for case 4 was “AAX_eStemFormat_Ambi_1_ACN” rather than “AAX_eStemFormat_Quad”.


  switch (numChans)
  {
    case 0: return AAX_eStemFormat_None;
    case 1: return AAX_eStemFormat_Mono;
    case 2: return AAX_eStemFormat_Stereo;
    case 3: return AAX_eStemFormat_LCR;
    case 4: return AAX_eStemFormat_Quad;//was AAX_eStemFormat_Ambi_1_ACN
    case 5: return AAX_eStemFormat_5_0;
    case 6: return AAX_eStemFormat_5_1;
    case 7: return AAX_eStemFormat_7_0_DTS;
    case 8: return AAX_eStemFormat_7_1_DTS;
//    case 9: return AAX_eStemFormat_Ambi_2_ACN;
    case 10:return AAX_eStemFormat_7_1_2;
//    case 16:return AAX_eStemFormat_Ambi_3_ACN;
    default:
      DBGMSG("No stem format found for this channel count, you need to implement GetAPIBusTypeForChannelIOConfig() and #define CUSTOM_BUSTYPE_FUNC\n");
      assert(0);
      return AAX_eStemFormat_None;
  }

I made the change and now the plugin shows up - and works - on Quad channels.

I also commented out cases 9 and 16 (other Ambisonics formats) as other plugins on these types of tracks typically run in “multi-mono” mode.

1 Like