Envelope node as a device with its ADSR curve #388

Closed
opened 2026-10-10 15:09:24 +02:00 by meleki · 1 comment
Owner

Wunsch des Users: Das Node Envelope soll im Instrument-Graphen wie Compressor, Gain und Chip ein eigenes Gerät mit fester Größe zeigen, dazu eine Visualisierung des ADSR-Verlaufs.

  • Platte in eigenem Stil, feste Größe
  • Bildschirm mit der Kurve über eine Note: Attack, Decay, Sustain, Release
  • Knöpfe für Attack, Decay, Sustain und Release direkt im Node, From/To ebenfalls im Node bedienbar
  • Verkabelte Werte gesperrt, wirkungslose Einstellungen ausgegraut, wie beim Chip (#386)
Wunsch des Users: Das Node **Envelope** soll im Instrument-Graphen wie Compressor, Gain und Chip ein eigenes Gerät mit fester Größe zeigen, dazu eine Visualisierung des ADSR-Verlaufs. - Platte in eigenem Stil, feste Größe - Bildschirm mit der Kurve über eine Note: Attack, Decay, Sustain, Release - Knöpfe für Attack, Decay, Sustain und Release direkt im Node, `From`/`To` ebenfalls im Node bedienbar - Verkabelte Werte gesperrt, wirkungslose Einstellungen ausgegraut, wie beim Chip (#386)
Author
Owner

Erledigt mit c75e72d, Wiki e7379d3.

Was gebaut ist

  • Envelope-Gerät im Graphen: feste Größe 520 × 280 in blassem Meergrün, Schrauben und die Gravur „ENVELOPE“. Die Eingänge sitzen links, out und value rechts.
  • Schirm „Level over a note“: dunkles Glas mit der Kurve in Bernstein. Über jeder Stufe steht ein Buchstabe (A, D, S, R), darunter ihre Zeit, über der Sustain-Linie der Wert in Prozent. Bei Sustain 0 gibt es nur A und D, und oben steht „NOTE ENDS“. Die Abfälle rechnen mit SETTLE wie der Player.
  • Vier Chromknöpfe für Attack, Decay, Sustain und Release. Ziehen ist ein Undo-Schritt, ein Doppelklick setzt den Standardwert, das Mausrad zoomt den Graphen.
  • From und To als Felder (tippen oder seitlich ziehen).
  • Grau wie beim Chip: Decay ist blass bei Sustain 1, From/To, solange nichts an value hängt. Verkabelte Werte sind gesperrt. Hängt ein Kabel an value, steht über dem Schirm z. B. „VALUE 400 TO 3500“.
  • Aufbau: EnvelopePanel, EnvelopeFace, envelopeView (reine Regeln), Test-Hook __gm.envelope.panel(nodeId).

Selbst entschieden

  • Gestauchte Zeitachse: Jede Stufe ist so breit wie die Wurzel ihrer Sekunden (mindestens 3 %), der Hold bekommt fest ein Fünftel. Sonst wären 5 ms Attack neben 3 s Release unsichtbar. Die echten Zeiten stehen unter jeder Stufe.
  • Felder statt Knöpfe für From/To: Diese Werte haben keinen Bereich, den ein Knopf abfahren könnte.
  • Drehweg der Zeitknöpfe (Taper 4): 5 ms bei einem Achtel der Drehung, 1 s knapp vor der Hälfte, Bereich bis 30 s.
  • Der Schirm wird aus den Einstellungen gerechnet, wie beim Chip. Ein mitlaufender Punkt beim Spielen ist nicht dabei.
  • Instrument-Presets geben dem Envelope 3 Spalten Platz.

Tests

Unit envelope-view → 6 neu, grün
e2e 34 (atx)       → ALL PASSED, 132 Checks (1 neu)
Gate (atx)         → CHECK EXIT 0, 286 Dateien, 4383 Tests
  • Neuer e2e-Check am Laser-Preset: Gerät zwischen den Ports, Kurve endet mit dem Decay, Decay-Knopf und To-Feld ziehen sind je ein Undo-Schritt.
  • Der erste Gate-Lauf war rot an meinem Pfeil → im Text über dem Schirm (die UI-Schrift hat ihn nicht, Font-Test aus #214). Jetzt steht dort „TO“.
  • Gegenprobe: Ein linearer statt exponentieller Decay macht genau die zwei Kurven-Tests rot.
  • Bilder angesehen: Synth Brass, Pad, Pluck, Organ und ein Envelope, dessen value einen Chip steuert.

Nicht geprüft:

  • ein verkabelter Envelope-Wert im Browser
  • Zahlen im Feld tippen (geprüft ist nur das Ziehen)
  • CI-Lauf zu c75e72d (nicht abgewartet)
Erledigt mit c75e72d, Wiki e7379d3. ## Was gebaut ist - **Envelope-Gerät im Graphen:** feste Größe 520 × 280 in blassem Meergrün, Schrauben und die Gravur „ENVELOPE“. Die Eingänge sitzen links, `out` und `value` rechts. - **Schirm „Level over a note“:** dunkles Glas mit der Kurve in Bernstein. Über jeder Stufe steht ein Buchstabe (A, D, S, R), darunter ihre Zeit, über der Sustain-Linie der Wert in Prozent. Bei Sustain 0 gibt es nur A und D, und oben steht „NOTE ENDS“. Die Abfälle rechnen mit `SETTLE` wie der Player. - **Vier Chromknöpfe** für Attack, Decay, Sustain und Release. Ziehen ist ein Undo-Schritt, ein Doppelklick setzt den Standardwert, das Mausrad zoomt den Graphen. - **From und To als Felder** (tippen oder seitlich ziehen). - **Grau wie beim Chip:** Decay ist blass bei Sustain 1, From/To, solange nichts an `value` hängt. Verkabelte Werte sind gesperrt. Hängt ein Kabel an `value`, steht über dem Schirm z. B. „VALUE 400 TO 3500“. - Aufbau: `EnvelopePanel`, `EnvelopeFace`, `envelopeView` (reine Regeln), Test-Hook `__gm.envelope.panel(nodeId)`. ## Selbst entschieden - **Gestauchte Zeitachse:** Jede Stufe ist so breit wie die Wurzel ihrer Sekunden (mindestens 3 %), der Hold bekommt fest ein Fünftel. Sonst wären 5 ms Attack neben 3 s Release unsichtbar. Die echten Zeiten stehen unter jeder Stufe. - **Felder statt Knöpfe für From/To:** Diese Werte haben keinen Bereich, den ein Knopf abfahren könnte. - **Drehweg der Zeitknöpfe** (Taper 4): 5 ms bei einem Achtel der Drehung, 1 s knapp vor der Hälfte, Bereich bis 30 s. - **Der Schirm wird aus den Einstellungen gerechnet**, wie beim Chip. Ein mitlaufender Punkt beim Spielen ist nicht dabei. - **Instrument-Presets** geben dem Envelope 3 Spalten Platz. ## Tests ``` Unit envelope-view → 6 neu, grün e2e 34 (atx) → ALL PASSED, 132 Checks (1 neu) Gate (atx) → CHECK EXIT 0, 286 Dateien, 4383 Tests ``` - Neuer e2e-Check am Laser-Preset: Gerät zwischen den Ports, Kurve endet mit dem Decay, Decay-Knopf und `To`-Feld ziehen sind je ein Undo-Schritt. - Der erste Gate-Lauf war rot an meinem Pfeil `→` im Text über dem Schirm (die UI-Schrift hat ihn nicht, Font-Test aus #214). Jetzt steht dort „TO“. - Gegenprobe: Ein linearer statt exponentieller Decay macht genau die zwei Kurven-Tests rot. - Bilder angesehen: *Synth Brass*, Pad, Pluck, Organ und ein Envelope, dessen `value` einen Chip steuert. **Nicht geprüft:** - ein verkabelter Envelope-Wert im Browser - Zahlen im Feld tippen (geprüft ist nur das Ziehen) - CI-Lauf zu c75e72d (nicht abgewartet)
admin added this to the Development project 2026-10-10 16:47:14 +02:00
admin moved this to Next in Development on 2026-10-10 16:47:29 +02:00
admin moved this to Done in Development on 2026-10-10 16:47:46 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#388