DukeRoodee
11-14-2010, 08:42 AM
Hi all
i have a little problem to solve.
I modified IPlug, so that i can build multichannel vstis (eg 16 midi channels => 16 engines => 16 outputs), reading Preset data from a XML file. Each channel can play a different preset.
OK so far ?
Now, the hosts give me a list of available presets to assign to my "current visible" midi channel, like AULab displays it in the top line above the plug UI. Fine.
But when I change the midi channel (and so the engine and the playing preset), the host will not update the currently set preset name. In fact, it canīt because there is no callback function that informs the host about this change...right ?
I guess i could inform a VST host with something like this:
void IPlugVST::ForceHostUpdateMasterDisplay()
{
mHostCallback(&mAEffect, audioMasterUpdateDisplay,0,0,0,0);
}
so the host would finally call VSTCALLBACK IPlugVST::VSTDispatcher(...) with opcode = effGetProgramName and here i could return the preset name set to the currently selected midi channel. Something like this... I didnt test this yet because i hav no Windows PC here. At least it seems there is a way to force the host to redisplay...
But for AU, i canīt find such a thing.... i hoped there would be a kAudioUnitEvent_xxx event to do this but ... no :-/
Any ideas how i could implement this ?
Thanks
regards,
Rudi
i have a little problem to solve.
I modified IPlug, so that i can build multichannel vstis (eg 16 midi channels => 16 engines => 16 outputs), reading Preset data from a XML file. Each channel can play a different preset.
OK so far ?
Now, the hosts give me a list of available presets to assign to my "current visible" midi channel, like AULab displays it in the top line above the plug UI. Fine.
But when I change the midi channel (and so the engine and the playing preset), the host will not update the currently set preset name. In fact, it canīt because there is no callback function that informs the host about this change...right ?
I guess i could inform a VST host with something like this:
void IPlugVST::ForceHostUpdateMasterDisplay()
{
mHostCallback(&mAEffect, audioMasterUpdateDisplay,0,0,0,0);
}
so the host would finally call VSTCALLBACK IPlugVST::VSTDispatcher(...) with opcode = effGetProgramName and here i could return the preset name set to the currently selected midi channel. Something like this... I didnt test this yet because i hav no Windows PC here. At least it seems there is a way to force the host to redisplay...
But for AU, i canīt find such a thing.... i hoped there would be a kAudioUnitEvent_xxx event to do this but ... no :-/
Any ideas how i could implement this ?
Thanks
regards,
Rudi