dexed
dexed copied to clipboard
MPE - how to have several pitch bends on several channels?
Hi, I'm trying to used dexed within Supercollider, as a VSTPluginController, in a MPE mode, for microtonal purposes. I can't figure out, how pitch bend should work. My expectation was, that if you send 2 different pitch bend values to 2 different channels, they will be independent from each other. This kind of approach works on Surge XT, and with chipsynths from Plogue. However, this doesn't work with Dexed - pitch bend seems to be global. Example code, how i use Dexed in Supercollider:
// 1. define synthdef
(
SynthDef(\vst_plugin, {|out, gate = 1|
var sig = VSTPlugin.ar(numOut: 2);
Out.ar(out, sig);
}).add;
)
// 2. init synth
a = Synth(\vst_plugin);
// 3. init vst plugin controller
c.open("Dexed.vst3");
// 4. play notes
(
p = Pbind(
\type, \vst_midi,
\vst, c,
\midinote, Pseq([60]),
\chan, 3,
\dur, Pseq([1]),
\amp, 1.0
);
q = Pbind(
\type, \vst_midi,
\vst, c,
\midicmd, \bend,
\val, Pseq([8192]), // def 8192, min 0, max 16383
\chan, 3,
\dur, Pseq([1]),
);
t = Pbind(
\type, \vst_midi,
\vst, c,
\midinote, Pseq([64]),
\chan, 4,
\dur, Pseq([1]),
\amp, 1.0
);
v = Pbind(
\type, \vst_midi,
\vst, c,
\midicmd, \bend,
\val, Pseq([4192]), // def 8192, min 0, max 16383
\chan, 4,
\dur, Pseq([1]),
);
r = Ppar([p, q, t, v]).play;
)
So, [p, q] are commands for one note on channel 3, [t, v] are commands for the other note on channel 4.
Should I do it differently somehow?
Okay, as an alternative, what works for me right now - monophonic mode, without MPE, and playing only a single note in a single VST plugin instance