1 Commits

Author SHA1 Message Date
admin c0b3619bcc Fix VU needle direction and keep swing within visible area 2026-04-05 19:13:20 +02:00
+5 -12
View File
@@ -456,11 +456,6 @@ body {
Hüllkurve mit separatem Attack/Release + 2.-Ordnung Nadelmodell<br> Hüllkurve mit separatem Attack/Release + 2.-Ordnung Nadelmodell<br>
Natürliches Einschwingen, weniger Zappeln, weicher Rücklauf. Natürliches Einschwingen, weniger Zappeln, weicher Rücklauf.
</div> </div>
<div class="iec-box" id="natural-box" style="display:none">
<b>Natural+</b> — neue Ballistikformel<br>
Hüllkurve mit separatem Attack/Release + 2.-Ordnung Nadelmodell<br>
Natürliches Einschwingen, weniger Zappeln, weicher Rücklauf.
</div>
<!-- Physics sliders --> <!-- Physics sliders -->
<div id="physics-ctrls"> <div id="physics-ctrls">
@@ -674,11 +669,11 @@ function drawVU(level, peak){
// Center pivot point (inside canvas so needle is always visible) // Center pivot point (inside canvas so needle is always visible)
const cx = w/2; const cx = w/2;
const cy = h - 22; const cy = h - 12;
const radius = Math.min(w * 0.45, h * 0.78); const radius = Math.min(w * 0.45, h * 0.78);
// Scale arc // Scale arc (immer obere Hälfte, links -> rechts)
const arcStart = Math.PI + 0.35; const arcStart = -2.80;
const arcEnd = -0.35; const arcEnd = -0.35;
// Draw scale markings // Draw scale markings
@@ -1081,9 +1076,6 @@ class PhysicsVU:
# Natural+ Formel (neue Ballistik) # Natural+ Formel (neue Ballistik)
self._natural_env = 0.0 self._natural_env = 0.0
# Natural+ Formel (neue Ballistik)
self._natural_env = 0.0
# ── Biquad helpers ── # ── Biquad helpers ──
def _calc_biquad(self, fc): def _calc_biquad(self, fc):
w0 = 2.0 * math.pi * fc / self.sample_rate w0 = 2.0 * math.pi * fc / self.sample_rate
@@ -1492,6 +1484,7 @@ def set_param(param, value):
meter.mode = value meter.mode = value
if value == 'iec_true': if value == 'iec_true':
meter._iec_z[:] = 0 meter._iec_z[:] = 0
meter._iec_fast = meter._latest_peak
if value == 'natural_formula': if value == 'natural_formula':
meter._natural_env = meter.needle_pos meter._natural_env = meter.needle_pos
elif param == 'monitor': elif param == 'monitor':
@@ -1526,7 +1519,7 @@ def reset():
meter.needle_pos=0; meter.needle_vel=0; meter.peak_pos=0 meter.needle_pos=0; meter.needle_vel=0; meter.peak_pos=0
meter.mode='full'; meter.monitor=False; meter.bypass=False; meter.solo='off' meter.mode='full'; meter.monitor=False; meter.bypass=False; meter.solo='off'
meter.band_crossover=250; meter.band_lo_weight=0.6; meter.band_hi_weight=0.4 meter.band_crossover=250; meter.band_lo_weight=0.6; meter.band_hi_weight=0.4
meter._iec_z[:]=0; meter._iec_level=0; meter._natural_env=0 meter._iec_z[:]=0; meter._iec_level=0; meter._iec_fast=0; meter._natural_env=0
return jsonify({"ok": True}) return jsonify({"ok": True})