NeuralAmpModelerPlugin

Plugin for Neural Amp Modeler
Log | Files | Refs | Submodules | README | LICENSE

commit 101ffd929b227912611717b832569980f1c0353d
parent 9a67490c4018c998bf8bca025a028805d14b9973
Author: Oli Larkin <olilarkin@googlemail.com>
Date:   Mon, 22 May 2023 14:35:01 +0200

Update NAMKnobControl for new background

Diffstat:
MNeuralAmpModeler/NeuralAmpModeler.cpp | 25++++++++++---------------
MNeuralAmpModeler/NeuralAmpModelerControls.h | 14+++++++-------
MNeuralAmpModeler/config.h | 3+++
ANeuralAmpModeler/resources/img/KnobBackground.png | 0
ANeuralAmpModeler/resources/img/KnobBackground@2x.png | 0
ANeuralAmpModeler/resources/img/KnobBackground@3x.png | 0
6 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/NeuralAmpModeler/NeuralAmpModeler.cpp b/NeuralAmpModeler/NeuralAmpModeler.cpp @@ -99,8 +99,7 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) auto leftArrowSVG = pGraphics->LoadSVG(LEFT_ARROW_FN); const IBitmap irSwitchBitmap = pGraphics->LoadBitmap((TOGGLEIR_FN), 2, true); const IBitmap switchHandleBitmap = pGraphics->LoadBitmap((TOGGLE_HANDLE_FN), true); - const IBitmap knobRotateBitmap = pGraphics->LoadBitmap(KNOB_FN); - + const IBitmap knobBackground = pGraphics->LoadBitmap(KNOBBACKGROUND_FN); const IRECT b = pGraphics->GetBounds(); const IRECT mainArea = b.GetPadded(-20); const auto content = mainArea.GetPadded(-10); @@ -113,9 +112,8 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) // Areas for knobs const float knobsExtraSpaceBelowTitle = 25.0f; - const float knobHalfHeight = 70.0f; - const float knobHeight = 2.0f * knobHalfHeight; - const float singleKnobPad = 12.0f; + const float knobHeight = 120.f; + const float singleKnobPad = -2.0f; const auto knobs = content.GetFromTop(knobHeight) .GetReducedFromLeft(allKnobsPad) .GetReducedFromRight(allKnobsPad) @@ -123,7 +121,7 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) const IRECT inputKnobArea = knobs.GetGridCell(0, kInputLevel, 1, numKnobs).GetPadded(-singleKnobPad); const IRECT noiseGateArea = knobs.GetGridCell(0, kNoiseGateThreshold, 1, numKnobs).GetPadded(-singleKnobPad); const IRECT bassKnobArea = knobs.GetGridCell(0, kToneBass, 1, numKnobs).GetPadded(-singleKnobPad); - const IRECT middleKnobArea = knobs.GetGridCell(0, kToneMid, 1, numKnobs).GetPadded(-singleKnobPad); + const IRECT midKnobArea = knobs.GetGridCell(0, kToneMid, 1, numKnobs).GetPadded(-singleKnobPad); const IRECT trebleKnobArea = knobs.GetGridCell(0, kToneTreble, 1, numKnobs).GetPadded(-singleKnobPad); const IRECT outputKnobArea = knobs.GetGridCell(0, kOutputLevel, 1, numKnobs).GetPadded(-singleKnobPad); @@ -221,16 +219,13 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) pGraphics->AttachControl(new NAMSwitchControl(outNormToggleArea, kOutNorm, "Normalize", style, switchHandleBitmap), kCtrlTagOutNorm); // The knobs - pGraphics->AttachControl(new NAMKnobControl(inputKnobArea, kInputLevel, "", style, knobRotateBitmap)); - pGraphics->AttachControl(new NAMKnobControl(noiseGateArea, kNoiseGateThreshold, "", style, knobRotateBitmap)); - pGraphics->AttachControl(new NAMKnobControl(bassKnobArea, kToneBass, "", style, knobRotateBitmap), -1, "EQ_KNOBS"); - pGraphics->AttachControl(new NAMKnobControl(middleKnobArea, kToneMid, "", style, knobRotateBitmap), -1, "EQ_KNOBS"); + pGraphics->AttachControl(new NAMKnobControl(inputKnobArea, kInputLevel, "", style, knobBackground)); + pGraphics->AttachControl(new NAMKnobControl(noiseGateArea, kNoiseGateThreshold, "", style, knobBackground)); + pGraphics->AttachControl(new NAMKnobControl(bassKnobArea, kToneBass, "", style, knobBackground), -1, "EQ_KNOBS"); + pGraphics->AttachControl(new NAMKnobControl(midKnobArea, kToneMid, "", style, knobBackground), -1, "EQ_KNOBS"); pGraphics->AttachControl( - new NAMKnobControl(trebleKnobArea, kToneTreble, "", style, knobRotateBitmap), -1, "EQ_KNOBS"); - pGraphics->AttachControl(new NAMKnobControl(outputKnobArea, kOutputLevel, "", style, knobRotateBitmap)); - - // toggle IR on / off - pGraphics->AttachControl(new IBSwitchControl(irBypassToggleArea, irSwitchBitmap, kIRToggle)); + new NAMKnobControl(trebleKnobArea, kToneTreble, "", style, knobBackground), -1, "EQ_KNOBS"); + pGraphics->AttachControl(new NAMKnobControl(outputKnobArea, kOutputLevel, "", style, knobBackground)); // The meters const float meterMin = -90.0f; diff --git a/NeuralAmpModeler/NeuralAmpModelerControls.h b/NeuralAmpModeler/NeuralAmpModelerControls.h @@ -46,19 +46,19 @@ public: : IVKnobControl(bounds, paramIdx, label, style, true) , IBitmapBase(bitmap) { - mInnerPointerFrac = 0.6; + mInnerPointerFrac = 0.55; } void DrawWidget(IGraphics& g) override { - float widgetRadius = GetRadius(); - const float cx = mWidgetBounds.MW(), cy = mWidgetBounds.MH(); - IRECT knobHandleBounds = mWidgetBounds.GetCentredInside((widgetRadius - mTrackToHandleDistance) * 2.5f); + float widgetRadius = GetRadius() * 0.73; + auto knobRect = mWidgetBounds.GetCentredInside(mWidgetBounds.W(), mWidgetBounds.W()); + const float cx = knobRect.MW(), cy = knobRect.MH(); const float angle = mAngle1 + (static_cast<float>(GetValue()) * (mAngle2 - mAngle1)); - DrawIndicatorTrack(g, angle, cx, cy, widgetRadius); - g.DrawBitmap(mBitmap, knobHandleBounds.GetTranslated(4, 3), 0, 0); + DrawIndicatorTrack(g, angle, cx+0.5, cy, widgetRadius); + g.DrawFittedBitmap(mBitmap, knobRect); float data[2][2]; - RadialPoints(angle, cx + 1, cy, mInnerPointerFrac * widgetRadius, mInnerPointerFrac * widgetRadius, 2, data); + RadialPoints(angle, cx, cy, mInnerPointerFrac * widgetRadius, mInnerPointerFrac * widgetRadius, 2, data); g.PathCircle(data[1][0], data[1][1], 3); g.PathFill(IPattern::CreateRadialGradient(data[1][0], data[1][1], 4.0f, {{GetColor(mMouseIsOver ? kX3 : kX1), 0.f}, diff --git a/NeuralAmpModeler/config.h b/NeuralAmpModeler/config.h @@ -77,6 +77,9 @@ #define BACKGROUND_FN "Background.jpg" #define BACKGROUND2X_FN "Background@2x.jpg" #define BACKGROUND3X_FN "Background@3x.jpg" +#define KNOBBACKGROUND_FN "KnobBackground.png" +#define KNOBBACKGROUND2X_FN "KnobBackground@2x.png" +#define KNOBBACKGROUND3X_FN "KnobBackground@3x.png" // Issue 291 // On the macOS standalone, we might not have permissions to traverse the file directory, so we have the app ask the diff --git a/NeuralAmpModeler/resources/img/KnobBackground.png b/NeuralAmpModeler/resources/img/KnobBackground.png Binary files differ. diff --git a/NeuralAmpModeler/resources/img/KnobBackground@2x.png b/NeuralAmpModeler/resources/img/KnobBackground@2x.png Binary files differ. diff --git a/NeuralAmpModeler/resources/img/KnobBackground@3x.png b/NeuralAmpModeler/resources/img/KnobBackground@3x.png Binary files differ.