v1.1 — Improved metering, transformer, and optical cell tuning

- Needle VU meters with spring-mass-damper physics (analog inertia)
- Swappable meter modes: GR needles + input bars, or input needles + GR bars
- GR bar meters fill right-to-left (0dB=empty, -30dB=full)
- Input bar meters fill left-to-right with green color
- Optical cell: normalized parameters (eta=50) for proper audio-level response
- Transformer: removed 3-band crossover artifacts, simplified waveshaping with dry/wet mix
- Nickel/Iron/Steel with distinct but subtle harmonic character
- Layout: optical left, discrete right, meters center, transformer+output bottom center
This commit is contained in:
hariel1985
2026-03-27 17:46:25 +01:00
szülő 1c8b8012f6
commit d750716608
7 fájl változott, egészen pontosan 244 új sor hozzáadva és 123 régi sor törölve

Fájl megtekintése

@@ -9,7 +9,7 @@
#include "GRMeter.h"
#include "NeedleVuMeter.h"
static constexpr const char* kInstaShadowVersion = "v1.0";
static constexpr const char* kInstaShadowVersion = "v1.1";
class InstaShadowEditor : public juce::AudioProcessorEditor,
public juce::Timer
@@ -38,11 +38,15 @@ private:
OpticalPanel opticalPanel;
DiscretePanel discretePanel;
// Center: needle VU meters + GR bars
NeedleVuMeter vuMeterL;
NeedleVuMeter vuMeterR;
GRMeter optoGrMeter;
GRMeter vcaGrMeter;
// Center: needle meters + bar meters (swappable)
NeedleVuMeter needleMeterL;
NeedleVuMeter needleMeterR;
GRMeter barMeterL;
GRMeter barMeterR;
// Meter swap toggle
juce::TextButton meterSwapButton { "GR / INPUT" };
bool metersSwapped = false; // false: needle=GR, bar=input | true: needle=input, bar=GR
// Bottom panels
TransformerPanel transformerPanel;