From e613c117d0e57526581a95f95e2a7285973fdd2a Mon Sep 17 00:00:00 2001 From: James Stubbs Date: Fri, 2 Jun 2023 10:41:44 -0400 Subject: [PATCH] Clean up processBlock(). --- Source/PluginProcessor.cpp | 16 ++++++---------- Source/PluginProcessor.h | 2 ++ TS-808-Ultra.jucer | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index 7642f94..3f32824 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -125,6 +125,7 @@ void TS808UltraAudioProcessor::prepareToPlay (double sampleRate, int samplesPerB outputGain.prepare(spec); oversampling.initProcessing (samplesPerBlock); + parallelBuffer.setSize(spec.numChannels, spec.maximumBlockSize); for (int ch = 0; ch < 2; ++ch) { @@ -190,8 +191,7 @@ void TS808UltraAudioProcessor::processBlock (juce::AudioBuffer& buffer, j inputGain.process(context); // copy original dry signal into a buffer - AudioBuffer parallelBuffer; - parallelBuffer.makeCopyOf(buffer); + parallelBuffer.makeCopyOf(buffer, true); dsp::AudioBlock parallelBlock(parallelBuffer); auto parallelContext = juce::dsp::ProcessContextReplacing(parallelBlock); @@ -208,19 +208,15 @@ void TS808UltraAudioProcessor::processBlock (juce::AudioBuffer& buffer, j //--------start of TS808 processing------------ - - + auto osBlock = oversampling.processSamplesUp (block); - float* ptrArray[] = {osBlock.getChannelPointer (0), osBlock.getChannelPointer (1)}; - AudioBuffer osBuffer (ptrArray, 2, static_cast (osBlock.getNumSamples())); - - for (int ch = 0; ch < osBuffer.getNumChannels(); ++ch) + for (int ch = 0; ch < osBlock.getNumChannels(); ++ch) { clippingStage[ch].setDrive (*driveParameter); - auto* x = osBuffer.getWritePointer (ch); + auto* x = osBlock.getChannelPointer(ch); - for (int n = 0; n < osBuffer.getNumSamples(); ++n) + for (int n = 0; n < osBlock.getNumSamples(); ++n) x[n] = clippingStage[ch].processSample (x[n]); } diff --git a/Source/PluginProcessor.h b/Source/PluginProcessor.h index 98cb5c0..87942ae 100644 --- a/Source/PluginProcessor.h +++ b/Source/PluginProcessor.h @@ -81,6 +81,8 @@ class TS808UltraAudioProcessor : public juce::AudioProcessor dsp::Gain inputGain; dsp::Gain outputGain; + + AudioBuffer parallelBuffer; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (TS808UltraAudioProcessor) }; diff --git a/TS-808-Ultra.jucer b/TS-808-Ultra.jucer index dc9fe23..0b9d6a3 100644 --- a/TS-808-Ultra.jucer +++ b/TS-808-Ultra.jucer @@ -2,7 +2,7 @@ + cppLanguageStandard="17" displaySplashScreen="1">