Here is the updated fuzztrem plugin with 3 parameters and controls added ClassTest1126.
Sample code to parse MIDI – noteOff, noteOn and bendPitch are my own methods – you will need to write your own versions of these methods to connect the MIDI data to your process.
MidiBuffer::Iterator it(midiMessages);
MidiMessage msg(0x80,0,0,0);
int pos;
int32_t note;
// start with the MIDI processing
while(it.getNextEvent(msg , pos))
{
if(msg.isNoteOn())
{
note = msg.getNoteNumber();
noteOn(note);
}
if(msg.isNoteOff())
{
note = msg.getNoteNumber();
noteOff(note);
}
if(msg.isPitchWheel())
{
bendPitch(msg.getPitchWheelValue());
}
}
Simple code to save your current settings to a session (pulled from my plugin ++pitchsift)
void PitchsiftAudioProcessor::getStateInformation (MemoryBlock& destData)
{
// You should use this method to store your parameters in the memory block.
// You could do that either as raw data, or use the XML or ValueTree classes
// as intermediaries to make it easy to save and load complex data.
ScopedPointer xml (parameters.state.createXml());
copyXmlToBinary (*xml, destData);
}
void PitchsiftAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
{
// You should use this method to restore your parameters from this memory block,
// whose contents will have been created by the getStateInformation() call.
// This getXmlFromBinary() helper function retrieves our XML from the binary blob..
ScopedPointer xmlState (getXmlFromBinary (data, sizeInBytes));
}