diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index a6babf4..ea1efbc 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -8,9 +8,6 @@ NeuralSynthAudioProcessor::NeuralSynthAudioProcessor() , audioEngine(sp) { parameters.addParameterListener("waveform", this); - // Wavetable params - sp.wtOn = parameters.getRawParameterValue("wt_on"); - sp.wtMorph = parameters.getRawParameterValue("wt_morph"); // === Per-panel bypass (default OFF) === sp.chorusOn = parameters.getRawParameterValue("chorus_on"); @@ -161,6 +158,7 @@ void NeuralSynthAudioProcessor::changeProgramName (int, const juce::String&) {} void NeuralSynthAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock) { audioEngine.prepare({ sampleRate, (juce::uint32)samplesPerBlock, 2 }); + midiMessageCollector.reset(sampleRate); } void NeuralSynthAudioProcessor::releaseResources() {} @@ -189,6 +187,8 @@ void NeuralSynthAudioProcessor::processBlock(juce::AudioSampleBuffer& buffer, ju auto totalNumInputChannels = getTotalNumInputChannels(); auto totalNumOutputChannels = getTotalNumOutputChannels(); + midiMessageCollector.removeNextBlockOfMessages(midiMessages, buffer.getNumSamples()); + for (int i = totalNumInputChannels; i < totalNumOutputChannels; ++i) buffer.clear(i, 0, buffer.getNumSamples()); @@ -237,12 +237,6 @@ juce::AudioProcessorValueTreeState::ParameterLayout NeuralSynthAudioProcessor::c params.push_back(std::make_unique( "waveform", "Waveform", juce::StringArray{ "Sine", "Saw", "Square", "Triangle" }, 0)); - // --- Wavetable on/off + morph position (0..15) --- - params.push_back(std::make_unique("wt_on", "Wavetable On", true)); - params.push_back(std::make_unique( - "wt_morph", "WT Morph", - juce::NormalisableRange(0.0f, 15.0f, 0.001f), 0.0f)); - // Per-panel bypass toggles (default OFF) params.push_back(std::make_unique("chorus_on", "Chorus On", false));