Hello m.c,
I’ve continued working on my WPF/C# MIDI Remote Controller (Sherlock 2) and I’m trying to load a plugin into an empty insert slot from my touchscreen interface.
What I’ve explored:
da.mPluginManager exists on the DirectAccess of the selected track and exposes getNumberOfPluginCollections, getPluginCollectionByIndex, getIndexOfDefaultPluginCollection, getIndexOfActivePluginCollection — but these methods return undefined regardless of the signature called (with or without activeMapping).
insertViewer (via makeInsertEffectViewer) exposes: includeEmptySlotsOnly, excludeEmptySlots, followPluginWindowInFocus, accessSlotAtIndex, getRuntimeID — no trySetSlotPlugin.
Question: Is it possible to load a plugin into an empty insert slot using API 1.3? If so, what is the correct way to use mPluginManager and/or trySetSlotPlugin?
Thanks!
The insert window is correctly created
which itself is inserted via a button in the console.
Well, we’ve made some progress; the insert window now opens correctly with the plugins on the track and the list of all existing plugins. However, we’re missing the trySetSlotPlugin function on the JavaScript side, which is blocked by the limitation of the incoming MIDI port.
We have the UIDs and the object IDs of the slots. We want to call trySetSlotPlugin from C#. How do we trigger this from outside the system?
Okay, we’re making slow progress. I can now load a plugin from my insert window after carefully analyzing m.c.'s messages and code. And I thank him again, but I’m having a few lag issues, but we’ll get there.

A small animation of the insert window with some bugs at the moment, but in any case, communication is well established between Sherlock2 and Cubase.
Here’s another short animation with all the created windows: Keyswitches, CCs, and Microphones.
