audio plugin host appears to invoke initialise twice. use singleton fluidsynth model now to survive that. also, clear midi output to make VST3 stop complaining
This commit is contained in:
parent
c129ce78a0
commit
f89da1834c
|
@ -20,6 +20,10 @@ FluidSynthModel::~FluidSynthModel() {
|
|||
}
|
||||
|
||||
void FluidSynthModel::initialise() {
|
||||
if (initialised) {
|
||||
delete_fluid_synth(synth);
|
||||
delete_fluid_settings(settings);
|
||||
}
|
||||
settings = new_fluid_settings();
|
||||
// https://sourceforge.net/p/fluidsynth/wiki/FluidSettings/
|
||||
fluid_settings_setstr(settings, "synth.verbose", "yes");
|
||||
|
|
|
@ -152,6 +152,10 @@ void JuicySFAudioProcessor::processBlock (AudioBuffer<float>& buffer, MidiBuffer
|
|||
synth.renderNextBlock (buffer, midiMessages, 0, numSamples);
|
||||
fluid_synth_process(fluidSynth, numSamples, 1, nullptr, buffer.getNumChannels(), buffer.getArrayOfWritePointers());
|
||||
|
||||
// (see juce_VST3_Wrapper.cpp for the assertion this would trip otherwise)
|
||||
// we are !JucePlugin_ProducesMidiOutput, so clear remaining MIDI messages from our buffer
|
||||
midiMessages.clear();
|
||||
|
||||
// In case we have more outputs than inputs, this code clears any output
|
||||
// channels that didn't contain input data, (because these aren't
|
||||
// guaranteed to be empty - they may contain garbage).
|
||||
|
|
Loading…
Reference in New Issue
Block a user