diff --git a/Source/MainComponent.cpp b/Source/MainComponent.cpp index 5eae3d7..7595c21 100644 --- a/Source/MainComponent.cpp +++ b/Source/MainComponent.cpp @@ -151,8 +151,7 @@ void MainComponent::resized() { frequencyLabel.setBounds(bounds.removeFromTop(20)); bounds.removeFromTop(padding); - openOscilloscope.setBounds(bounds.removeFromBottom(buttonHeight).withSizeKeepingCentre(160, buttonHeight)); - bounds.removeFromBottom(padding); + // openOscilloscope.setBounds(bounds.removeFromBottom(buttonHeight).withSizeKeepingCentre(160, buttonHeight)); auto minDim = juce::jmin(bounds.getWidth(), bounds.getHeight()); visualiser.setBounds(bounds.withSizeKeepingCentre(minDim, minDim)); } diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index caf30f8..b7d8a3d 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -578,11 +578,9 @@ void OscirenderAudioProcessor::processBlock(juce::AudioBuffer& buffer, ju for (auto i = 0; i < totalNumInputChannels; ++i) { buffer.clear(i, 0, buffer.getNumSamples()); } - if (volume > EPSILON) { - juce::SpinLock::ScopedLockType lock1(parsersLock); - juce::SpinLock::ScopedLockType lock2(effectsLock); - synth.renderNextBlock(buffer, midiMessages, 0, buffer.getNumSamples()); - } + juce::SpinLock::ScopedLockType lock1(parsersLock); + juce::SpinLock::ScopedLockType lock2(effectsLock); + synth.renderNextBlock(buffer, midiMessages, 0, buffer.getNumSamples()); } diff --git a/Source/audio/ShapeVoice.cpp b/Source/audio/ShapeVoice.cpp index 1c02ebf..ee4e53e 100644 --- a/Source/audio/ShapeVoice.cpp +++ b/Source/audio/ShapeVoice.cpp @@ -11,6 +11,7 @@ bool ShapeVoice::canPlaySound(juce::SynthesiserSound* sound) { } void ShapeVoice::startNote(int midiNoteNumber, float velocity, juce::SynthesiserSound* sound, int currentPitchWheelPosition) { + this->velocity = velocity; auto* shapeSound = dynamic_cast(sound); currentlyPlaying = true; @@ -89,7 +90,6 @@ void ShapeVoice::renderNextBlock(juce::AudioSampleBuffer& outputBuffer, int star double traceMax = traceMaxEnabled ? actualTraceMax : 1.0; double traceMin = traceMinEnabled ? actualTraceMin : 0.0; double proportionalLength = (traceMax - traceMin) * frameLength; - // double frequency = audioProcessor.frequencyEffect->getActualValue(); lengthIncrement = juce::jmax(proportionalLength / (audioProcessor.currentSampleRate / frequency), MIN_LENGTH_INCREMENT); Vector2 channels; @@ -126,6 +126,7 @@ void ShapeVoice::renderNextBlock(juce::AudioSampleBuffer& outputBuffer, int star } double gain = audioProcessor.midiEnabled->getBoolValue() ? adsr.lookup(time) : 1.0; + gain *= velocity; if (numChannels >= 2) { outputBuffer.addSample(0, sample, x * gain); diff --git a/Source/audio/ShapeVoice.h b/Source/audio/ShapeVoice.h index d7f030e..5809042 100644 --- a/Source/audio/ShapeVoice.h +++ b/Source/audio/ShapeVoice.h @@ -36,6 +36,7 @@ private: bool currentlyPlaying = false; double frequency = 1.0; + double velocity = 1.0; lua_State* L = nullptr; long step = 1; diff --git a/Source/components/VisualiserComponent.cpp b/Source/components/VisualiserComponent.cpp index a766b73..edaa326 100644 --- a/Source/components/VisualiserComponent.cpp +++ b/Source/components/VisualiserComponent.cpp @@ -123,7 +123,7 @@ void VisualiserComponent::paintXY(juce::Graphics& g, juce::Rectangle area } double strength = 15; - double widthDivisor = 130; + double widthDivisor = 160; double lengthIntensityScale = 700; juce::Colour waveColor = waveformColour;