Logic Pro Plugins and MIDI Controller Questions

Hi, I'm building a MIDI controller to control the Valhalla Shimmer from within Logic Pro. The Shimmer doesn't have MIDI Learn so I assign every pot (12) to the plugin manually and this work very well. When I close the program and reopen, the settings are still intact which is good. But if I instantiate a 2nd Shimmer, I obviously can't control it unless I reassign every pot again, which means I can't control the 1st plugin. Is there a way to program the controller so it can switch between several instances of the plugin?

I'm using a Teensy LC for 12 potentiometers with the Control_Surface library.

Thanks.

On the Arduino side of things, there's only so much you can do. You could create banks in the Control Surface code to use a different MIDI channel for each plugin, for example.

For a real solution, it's probably best to contact the plugin developer.

It is always a bit tricky to do this, but basically yes you would have to create banks, or do something with midi-channels. I generally don't try and control plugins through hardware, but only standalone. Mainly i guess you will just have to add a switch to cycle through banks (or just get it to - & -12 to the CC number the pot controls or switch midi-channels. You want to control 24 parameters with 12 pots, what to do.

ok thank you, I will try the banks, which should work well.

So I just used this very simple sketch and once I map out the pots for the plug in they stay assigned for all other instances on all other tracks, that's perfect!

#include <Control_Surface.h> // Include the Control Surface library

// Instantiate a MIDI over USB interface.
USBMIDI_Interface midi;

// Instantiate a CCButton object
CCButton button[] = {
 {3, {92, CHANNEL_1}},                        
 {4, {93, CHANNEL_1}},                        
};

// Instantiate an array of CCPotentiometer objects
CCPotentiometer potentiometers[] {
  {A0, 0x10},    
  {A1, 0x11},     
  {A2, 0x12}, 
  {A3, 0x13},
  {A4, 0x14},
  {A5, 0x15},
  {A6, 0x16},
//  {A7, 0x17}, 
//  {A8, 0x18},
//  {A9, 0x19},
//  {A10, 0x20},
//  {A11, 0x21},
};

void setup() {
  Control_Surface.begin(); // Initialize Control Surface
}
 
void loop() {
Control_Surface.loop(); // Update the Control Surface
}

Now I can't seem to get my 2 buttons to latch when I select a on/off switch on the plugin. It turns on when I press but off when I release. Can you help?

Did you mean to use Control Surface: CCButtonLatched Class Reference instead of CCButton?

Ah yes it works now thank you!