The last one (AudioEffect::setParameterAutomated()) is the one you need for notifying the host that the parameter is actually changing. Generally you call it from your plugin’s setParameter method. You might need to check if the param change came from a UI control (in which case you want to notify the host), or not (in which case it came from a control surface or “controls view” in the host, and the host should already know about the change).
The other two mentioned (begin/endEdit) are for notifying the host of *automation gestures* that come for your UI. So you would call beginEdit() when then user clicks on a knob in your UI, setParameterAutomated() while the knob is being dragged around and the param value is changing, and endEdit() when they release the mouse. This ensures that touch automation works properly in the host. Jim On Dec 8, 2015, at 1:35 PM, Sham Beam <sham.b...@gmail.com> wrote: > Hi Nuno, > > Take a look at the BeginEdit(), EndEdit() and SetVstParameterAutomated() > functions. > > http://www.asseca.org/vst-24-specs/amBeginEdit.html > http://www.asseca.org/vst-24-specs/amEndEdit.html > http://www.asseca.org/vst-24-specs/amAutomate.html > > > Regards, > Shannon > > > > > > On 12/9/2015 2:29 AM, Nuno Santos wrote: >> Hi, >> >> This question is about VST plugin development and maybe it got asked before, >> but after an hour googling around for VstEvents, VstMidiEvents, >> sendVstEventsToHost, etc, I still couldn't find an answer. >> >> I'm trying to notify Ableton Live that a parameter has changed. The device >> on Live has the configure button toggled and it's waiting for parameter >> input. I was currently trying the following code: >> >> void Vst::init() >> { >> size_t size = sizeof(VstEvents) + sizeof(VstEvent*); >> >> _events = (VstEvents*)malloc(size); >> _events->events[0] = (VstEvent*)std::calloc(1, sizeof(VstMidiEvent)); >> _events->numEvents=1; >> >> VstEvent* e = _events->events[0]; >> >> e->type = kVstMidiType; >> e->byteSize = sizeof(VstMidiEvent); >> } >> >> VstInt32 IVst::canDo(const char* feature) >> { >> if (!strcmp(feature, "sendVstEvents")) return 1; >> if (!strcmp(feature, "sendVstMidiEvent")) return 1; >> if (!strcmp(feature, "receiveVstEvents")) return 1; >> if (!strcmp(feature, "receiveVstMidiEvent")) return 1; >> if (!strcmp(feature, "midiProgramNames")) return 1; >> >> return -1; >> } >> >> void Vst::parameterChanged(int id, float value) >> { >> _events->events[0]->data[0]=0xb0; >> _events->events[0]->data[1]=id; >> _events->events[0]->data[2]=float*127; >> _events->events[0]->data[3]=0; >> >> sendVstEventsToHost(_events); // the result of this call is true >> } >> >> But this didn't made the trick. I am trying VstMidiEvent because the 2.4 >> headers say kVstParameterType is deprecated. What am I missing? >> >> Thanks in advance, >> >> Regards, >> >> Nuno >> _______________________________________________ >> dupswapdrop: music-dsp mailing list >> music-dsp@music.columbia.edu >> https://lists.columbia.edu/mailman/listinfo/music-dsp >> > > > -- > Sham Beam > > > _______________________________________________ > dupswapdrop: music-dsp mailing list > music-dsp@music.columbia.edu > https://lists.columbia.edu/mailman/listinfo/music-dsp > _______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp