diff --git a/Source/DSP/Voice.h b/Source/DSP/Voice.h index 65cfd3f..0ed929d 100644 --- a/Source/DSP/Voice.h +++ b/Source/DSP/Voice.h @@ -186,7 +186,7 @@ public: keyTrack = kTrack; pan = p; drive = std::max(drv, 1.001f); - outputLevel = outLvl; + outputLevel = outLvl * outLvl; lfo1Depth = l1Depth; lfo1Dest = static_cast(l1Dest); diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 24a4111..fbb9bf8 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -167,10 +167,9 @@ void VuMeter::paint(juce::Graphics& g) { juce::Path clipPath; clipPath.addRoundedRectangle(bounds, 9.0f); g.reduceClipRegion(clipPath); - g.setOpacity(0.7f); - juce::ColourGradient grad(juce::Colour(0xff00cc44), 0.0f, bounds.getBottom(), - juce::Colour(0xffcc2200), 0.0f, bounds.getY(), false); + juce::ColourGradient grad(juce::Colour(0xff00cc44).withAlpha(0.4f), 0.0f, bounds.getBottom(), + juce::Colour(0xffcc2200).withAlpha(0.4f), 0.0f, bounds.getY(), false); g.setGradientFill(grad); g.fillRoundedRectangle(innerBar, 2.0f); } @@ -230,15 +229,14 @@ void WaveformDisplay::paint(juce::Graphics& g) { juce::Path clipPath; clipPath.addRoundedRectangle(bounds, 9.0f); g.reduceClipRegion(clipPath); - g.setOpacity(0.7f); - juce::ColourGradient waveGrad(juce::Colour(0xff00ff88), 0.0f, bounds.getY(), - juce::Colour(0xff005522), 0.0f, bounds.getBottom(), false); + juce::ColourGradient waveGrad(juce::Colour(0xff00ff88).withAlpha(0.33f), 0.0f, bounds.getY(), + juce::Colour(0xff005522).withAlpha(0.12f), 0.0f, bounds.getBottom(), false); g.setGradientFill(waveGrad); g.fillPath(filledPath); - g.setColour(juce::Colour(0xff00ff88).withAlpha(0.8f)); - g.strokePath(wavePath, juce::PathStrokeType(1.5f)); + g.setColour(juce::Colour(0xff00ff88).withAlpha(0.7f)); + g.strokePath(wavePath, juce::PathStrokeType(0.7f)); } g.setColour(juce::Colour(0xffccaa44)); @@ -248,7 +246,7 @@ void WaveformDisplay::paint(juce::Graphics& g) { // --- Spectrum Analyzer --- void SpectrumAnalyzer::paint(juce::Graphics& g) { - auto bounds = getLocalBounds().toFloat().reduced(0.5f); + auto bounds = getLocalBounds().toFloat().reduced(0.7f); juce::ColourGradient bgGrad(juce::Colour(0xBB222222), bounds.getCentreX(), bounds.getY(), juce::Colour(0xBB111111), bounds.getCentreX(), bounds.getBottom(), false); @@ -311,13 +309,8 @@ void SpectrumAnalyzer::paint(juce::Graphics& g) { float bx = x + 1.0f; float by = barBottom - barH; - { - juce::Graphics::ScopedSaveState saved(g); - g.setOpacity(0.7f); - - g.setColour(juce::Colour(0xff00ff88)); - g.fillRect(bx, by, bw, barH); - } + g.setColour(juce::Colour(0xff00ff88).withAlpha(0.3f)); + g.fillRect(bx, by, bw, barH); } g.setColour(juce::Colour(0xffccaa44)); @@ -1081,7 +1074,7 @@ void PianoRollComponent::paint(juce::Graphics& g) { whiteKeyWidth = keysWidth / numWhiteKeys; // Draw pitch bend strip background - g.setColour(juce::Colour(0xff222222)); + g.setColour(juce::Colour(0xff222222).withAlpha(0.7f)); g.fillRect(10, 0, pbRight - 10, whiteKeyHeight); // Right edge border to separate from keys @@ -1133,10 +1126,10 @@ void PianoRollComponent::paint(juce::Graphics& g) { bool pressed = processor.isNoteActive(note); if (pressed) { - g.setColour(juce::Colour(0xffccaa44)); + g.setColour(juce::Colour(0xffccaa44).withAlpha(0.8f)); } else { - juce::ColourGradient grad(juce::Colour(0xffe4e4e4), static_cast(kx), 0.0f, - juce::Colour(0xffc8c8c8), static_cast(kx), static_cast(whiteKeyHeight), false); + juce::ColourGradient grad(juce::Colour(0xffe4e4e4).withAlpha(0.7f), static_cast(kx), 0.0f, + juce::Colour(0xffc8c8c8).withAlpha(0.7f), static_cast(kx), static_cast(whiteKeyHeight), false); g.setGradientFill(grad); } g.fillRect(rect);