Flanger, Phaser, Tremolo und Vibrato: Geräte mit fester Größe #398

Closed
opened 2026-10-10 20:37:39 +02:00 by meleki · 2 comments
Owner

Wunsch des Users (2026-10-10):

als nächstes gleich vier aufeinmal: flanger, phaser, tremolo und vibrato, alle fixe größe, visuell überlasse ich dir (hauptsache sinnvoll und ansprechend)

Wie Delay (#393), Saturation (#396) und Limiter (#397): Jeder der vier Nodes zeigt im Graphen ein Gerät fester Größe statt seiner Zeilen, mit Knöpfen, Schaltern und einem Schirm, der zeigt, was der Effekt tut.

Wunsch des Users (2026-10-10): > als nächstes gleich vier aufeinmal: flanger, phaser, tremolo und vibrato, alle fixe größe, visuell überlasse ich dir (hauptsache sinnvoll und ansprechend) Wie Delay (#393), Saturation (#396) und Limiter (#397): Jeder der vier Nodes zeigt im Graphen ein Gerät fester Größe statt seiner Zeilen, mit Knöpfen, Schaltern und einem Schirm, der zeigt, was der Effekt tut.
Author
Owner

Erledigt mit b6749cc und f9a953f, Wiki c257ed9 und 5e81323.

Die Geräte

Alle vier bauen auf demselben Grundgerät auf. Der Schirm zeigt die ersten Sekunden eines Sounds, ein Licht spielt sie in Echtzeit immer wieder ab. Die Lampe RATE neben dem Namen wird im Takt der Schwingung dunkel und hell.

Gerät Größe, Platte Schirm
Tremolo 640 × 280, creme eine Welle, die die Lautstärke formt, mit der Lautstärke als Umriss. „DOWN TO 50%“, „EVERY 200 ms“, „DIPS -6 dB“
Vibrato 640 × 280, pflaume die Tonhöhe in Halbtönen, unten kühl, oben warm. Bei Wet unter 1 steht die trockene Tonhöhe daneben. „UP 0.5 st DOWN 0.51 st“, „LATE 0.93 ms“
Phaser 760 × 280, senfgelb der Frequenzgang von 20 Hz bis 20 kHz mit seinen Notches, darunter eine Spur, wohin sie über die Zeit wandern
Flanger 680 × 280, stahlblau der Kamm von 20 Hz bis 20 kHz, darunter die Verzögerung über die Zeit samt Sweep
  • Bei Phaser und Flanger wird der Frequenzgang dort gezeichnet, wo das Licht gerade steht. Die Notches wandern also, und der Kamm „jetet“.
  • Shape- bzw. Stages-Knöpfe und Chromknöpfe. Jede Änderung ist ein Undo-Schritt, verkabelte Werte sind gesperrt. Bei Wet 0 ist der Rest blass, beim Tremolo und Vibrato auch bei Depth 0.
  • Es wird nichts abgehört, die Bilder rechnen mit den Formeln der Worklets.

Nachbesserung Flanger (f9a953f)

Rückmeldung: Der Kamm flimmerte rechts stark und war pixelig.

  • Ursache: Jede Spalte nahm 6 Stichproben und wurde als scharfes Rechteck gezeichnet. Oben laufen die Zähne schneller, als Frames gezeichnet werden: bei 15 kHz bis zu 0,4 Zähne pro Frame. Jeder Frame erwischte also andere Zähne.
  • Jetzt: Jede Spalte wird exakt gerechnet. Der Frequenzgang hängt nur von der Phase ab, Minimum und Maximum liegen an den Rändern oder genau auf den Zacken. Dazu kommt eine Bewegungsunschärfe über 1/20 s. Wo die Zähne zu schnell sind, steht ein ruhiges Band von der tiefsten Notch bis zur höchsten Spitze, weiter unten bleiben sie scharf und wandern. Ober- und Unterkante sind glatte Linien statt Rechtecke.
  • Gemessen vor der Wahl der Unschärfe, als mittlere Änderung einer Spalte von Frame zu Frame (2–5 / 5–10 / 10–20 kHz):
Stichproben wie vorher   5,6 / 10,6 / 14,3 dB
exakt, ohne Unschärfe    5,5 / 10,2 / 12,9 dB
exakt, 1/60 s            5,0 /  7,6 /  4,0 dB
exakt, 1/20 s            3,9 /  2,6 /  0,04 dB

Unter 5 kHz ist der Rest fast nur die echte Bewegung der Zähne.

Selbst entschieden

  • Animation nur, solange sich etwas bewegt (nicht bei Rate 0, Depth 0 oder Wet 0).
  • Zeitspanne 1, 2, 4 oder 8 s, mindestens zwei LFO-Perioden. Beim Flanger reicht sie so weit, bis der Sweep die 20 ms erreicht.
  • Eine Notch zählt ab -3 dB.
  • Phaser und Flanger bekommen in den Presets 4 Spalten. Bei Phased Pad im Bild nachgesehen, dort überlappt nichts.

Tests

Unit modulation-view (stein2) → 24 Tests grün (neue Datei, 2 davon zum Flanger-Fix)
e2e 34 (atx)                  → ALL PASSED, 142 Checks (4 neu)
Gate (atx)                    → CHECK EXIT 0, 291 Dateien, 4469 Tests
  • Schirm gegen Worklet: Phaser und Flanger liefern auf einem Sinus dieselben dB wie das Worklet, bis auf 0,005 dB. Tremolo und Vibrato stimmen mit den Samples bzw. der Lese-Tonhöhe überein.
  • Flanger-Fix: Die exakten Spalten decken, was 4000 Stichproben je Spalte finden. Ein schneller Sweep zeigt über 16 kHz in drei Frames hintereinander dasselbe Band.
  • Gegenproben: Mit falschem Vorzeichen beim Feedback des Phasers wird genau der Worklet-Vergleich rot. Ohne die Zacken innerhalb einer Spalte werden genau die beiden neuen Flanger-Tests rot.
  • Bilder angesehen: alle vier Geräte, Varianten und Phased Pad. Nach dem Fix den Standard-Flanger und einen mit Sweep bis 20 ms, nah und fern, je zwei Bilder im Abstand von 40 ms: glatte Kanten, das Band gleich.

Nicht geprüft:

  • wie viel Zeit das Zeichnen im Browser kostet (die Rechnung allein 0,5 bis 0,6 ms je Frame in Node, vor dem Fix gemessen)
  • ein verkabelter Wert im Browser
  • die Geräte im Instrument-Graphen per Maus
  • der CI-Lauf zu f9a953f (nicht abgewartet)
Erledigt mit b6749cc und f9a953f, Wiki c257ed9 und 5e81323. ## Die Geräte Alle vier bauen auf demselben Grundgerät auf. Der Schirm zeigt die ersten Sekunden eines Sounds, ein Licht spielt sie in Echtzeit immer wieder ab. Die Lampe *RATE* neben dem Namen wird im Takt der Schwingung dunkel und hell. | Gerät | Größe, Platte | Schirm | |---|---|---| | **Tremolo** | 640 × 280, creme | eine Welle, die die Lautstärke formt, mit der Lautstärke als Umriss. „DOWN TO 50%“, „EVERY 200 ms“, „DIPS -6 dB“ | | **Vibrato** | 640 × 280, pflaume | die Tonhöhe in Halbtönen, unten kühl, oben warm. Bei Wet unter 1 steht die trockene Tonhöhe daneben. „UP 0.5 st DOWN 0.51 st“, „LATE 0.93 ms“ | | **Phaser** | 760 × 280, senfgelb | der Frequenzgang von 20 Hz bis 20 kHz mit seinen Notches, darunter eine Spur, wohin sie über die Zeit wandern | | **Flanger** | 680 × 280, stahlblau | der Kamm von 20 Hz bis 20 kHz, darunter die Verzögerung über die Zeit samt Sweep | - Bei Phaser und Flanger wird der Frequenzgang dort gezeichnet, wo das Licht gerade steht. Die Notches wandern also, und der Kamm „jetet“. - Shape- bzw. Stages-Knöpfe und Chromknöpfe. Jede Änderung ist ein Undo-Schritt, verkabelte Werte sind gesperrt. Bei Wet 0 ist der Rest blass, beim Tremolo und Vibrato auch bei Depth 0. - Es wird nichts abgehört, die Bilder rechnen mit den Formeln der Worklets. ## Nachbesserung Flanger (f9a953f) Rückmeldung: Der Kamm flimmerte rechts stark und war pixelig. - **Ursache:** Jede Spalte nahm 6 Stichproben und wurde als scharfes Rechteck gezeichnet. Oben laufen die Zähne schneller, als Frames gezeichnet werden: bei 15 kHz bis zu 0,4 Zähne pro Frame. Jeder Frame erwischte also andere Zähne. - **Jetzt:** Jede Spalte wird exakt gerechnet. Der Frequenzgang hängt nur von der Phase ab, Minimum und Maximum liegen an den Rändern oder genau auf den Zacken. Dazu kommt eine Bewegungsunschärfe über 1/20 s. Wo die Zähne zu schnell sind, steht ein ruhiges Band von der tiefsten Notch bis zur höchsten Spitze, weiter unten bleiben sie scharf und wandern. Ober- und Unterkante sind glatte Linien statt Rechtecke. - **Gemessen** vor der Wahl der Unschärfe, als mittlere Änderung einer Spalte von Frame zu Frame (2–5 / 5–10 / 10–20 kHz): ``` Stichproben wie vorher 5,6 / 10,6 / 14,3 dB exakt, ohne Unschärfe 5,5 / 10,2 / 12,9 dB exakt, 1/60 s 5,0 / 7,6 / 4,0 dB exakt, 1/20 s 3,9 / 2,6 / 0,04 dB ``` Unter 5 kHz ist der Rest fast nur die echte Bewegung der Zähne. ## Selbst entschieden - Animation nur, solange sich etwas bewegt (nicht bei Rate 0, Depth 0 oder Wet 0). - Zeitspanne 1, 2, 4 oder 8 s, mindestens zwei LFO-Perioden. Beim Flanger reicht sie so weit, bis der Sweep die 20 ms erreicht. - Eine Notch zählt ab -3 dB. - Phaser und Flanger bekommen in den Presets 4 Spalten. Bei *Phased Pad* im Bild nachgesehen, dort überlappt nichts. ## Tests ``` Unit modulation-view (stein2) → 24 Tests grün (neue Datei, 2 davon zum Flanger-Fix) e2e 34 (atx) → ALL PASSED, 142 Checks (4 neu) Gate (atx) → CHECK EXIT 0, 291 Dateien, 4469 Tests ``` - Schirm gegen Worklet: Phaser und Flanger liefern auf einem Sinus dieselben dB wie das Worklet, bis auf 0,005 dB. Tremolo und Vibrato stimmen mit den Samples bzw. der Lese-Tonhöhe überein. - Flanger-Fix: Die exakten Spalten decken, was 4000 Stichproben je Spalte finden. Ein schneller Sweep zeigt über 16 kHz in drei Frames hintereinander dasselbe Band. - Gegenproben: Mit falschem Vorzeichen beim Feedback des Phasers wird genau der Worklet-Vergleich rot. Ohne die Zacken innerhalb einer Spalte werden genau die beiden neuen Flanger-Tests rot. - Bilder angesehen: alle vier Geräte, Varianten und *Phased Pad*. Nach dem Fix den Standard-Flanger und einen mit Sweep bis 20 ms, nah und fern, je zwei Bilder im Abstand von 40 ms: glatte Kanten, das Band gleich. **Nicht geprüft:** - wie viel Zeit das Zeichnen im Browser kostet (die Rechnung allein 0,5 bis 0,6 ms je Frame in Node, vor dem Fix gemessen) - ein verkabelter Wert im Browser - die Geräte im Instrument-Graphen per Maus - der CI-Lauf zu f9a953f (nicht abgewartet)
Author
Owner

Nachtrag: Die Linie des Flangers ist jetzt dünn, mit b145e1f, Wiki 52e85c2.

Warum sie so dick war

Jeder Frame hat das ganze Band gezeigt, das der Kamm in den letzten 1/20 s überstrichen hat, und beide Kanten waren 1,5 breit. Je schneller sich die Verzögerung bewegt, desto breiter wird dieses Band. Deshalb wurde die Linie bei schneller Bewegung dicker.

Was jetzt anders ist

  • Eine dünne Linie (Breite 1) für den Kamm dort, wo das Licht gerade steht. Sie läuft exakt durch die Ränder jeder Spalte und durch die Spitzen und Notches darin (flangerLine).
  • Eine Spur dahinter, die verblasst: zweimal schwach übereinander, über die letzten 1/20 s und die letzten 1/40 s. Dicht an der Linie ist sie also kräftiger, weiter zurück blasser. Ein Flanger, der sich nicht bewegt, hat keine Spur.
  • Die Linie blendet aus, wo sie flimmern würde: Wandern die Zähne innerhalb der Spur um mehr als einen Viertelzahn, wird sie blasser. Ab einem halben Zahn ist sie weg (clearAt). Dort bleibt nur das ruhige Band der Spur stehen.
  • Die Notches werden wieder am scharfen Kamm gezählt, nicht am Band.
  • Der Phaser hat jetzt dieselbe dünne Linie, aber keine Spur.

Tests

Unit modulation-view (stein2) → 26 Tests grün (2 neu)
e2e 34 (atx)                  → ALL PASSED, 142 Checks
Gate (atx)                    → CHECK EXIT 0, 291 Dateien, 4471 Tests
  • Neue Tests: Die Linie trifft an jedem Punkt die dB des Kamms und enthält die geprüften Notches. Bei schneller Schwingung ist sie über 8 kHz ausgeblendet und unter 1 kHz voll da, und die Spur über 16 kHz ist in drei Frames hintereinander dasselbe Band. Ein stehender Flanger hat keine Spur.
  • Gegenprobe: Mit clearAt immer 1 wird genau der Test zum Ausblenden rot. Die Datei ist zurück und per cmp geprüft.
  • Bilder angesehen: Standard-Flanger, ein schneller (2 Hz, 5 ms) und einer mit Sweep bis 20 ms, dazu der Phaser.

Nicht geprüft: wie es in Bewegung wirkt. Ich habe nur Einzelbilder angesehen, und das Flimmern habe ich diesmal nicht neu gemessen. Auch den CI-Lauf zu b145e1f habe ich nicht abgewartet.

Nachtrag: Die Linie des Flangers ist jetzt dünn, mit b145e1f, Wiki 52e85c2. ## Warum sie so dick war Jeder Frame hat das ganze Band gezeigt, das der Kamm in den letzten 1/20 s überstrichen hat, und beide Kanten waren 1,5 breit. Je schneller sich die Verzögerung bewegt, desto breiter wird dieses Band. Deshalb wurde die Linie bei schneller Bewegung dicker. ## Was jetzt anders ist - **Eine dünne Linie (Breite 1)** für den Kamm dort, wo das Licht gerade steht. Sie läuft exakt durch die Ränder jeder Spalte und durch die Spitzen und Notches darin (`flangerLine`). - **Eine Spur dahinter, die verblasst:** zweimal schwach übereinander, über die letzten 1/20 s und die letzten 1/40 s. Dicht an der Linie ist sie also kräftiger, weiter zurück blasser. Ein Flanger, der sich nicht bewegt, hat keine Spur. - **Die Linie blendet aus, wo sie flimmern würde:** Wandern die Zähne innerhalb der Spur um mehr als einen Viertelzahn, wird sie blasser. Ab einem halben Zahn ist sie weg (`clearAt`). Dort bleibt nur das ruhige Band der Spur stehen. - Die Notches werden wieder am scharfen Kamm gezählt, nicht am Band. - Der Phaser hat jetzt dieselbe dünne Linie, aber keine Spur. ## Tests ``` Unit modulation-view (stein2) → 26 Tests grün (2 neu) e2e 34 (atx) → ALL PASSED, 142 Checks Gate (atx) → CHECK EXIT 0, 291 Dateien, 4471 Tests ``` - **Neue Tests:** Die Linie trifft an jedem Punkt die dB des Kamms und enthält die geprüften Notches. Bei schneller Schwingung ist sie über 8 kHz ausgeblendet und unter 1 kHz voll da, und die Spur über 16 kHz ist in drei Frames hintereinander dasselbe Band. Ein stehender Flanger hat keine Spur. - **Gegenprobe:** Mit `clearAt` immer 1 wird genau der Test zum Ausblenden rot. Die Datei ist zurück und per `cmp` geprüft. - **Bilder angesehen:** Standard-Flanger, ein schneller (2 Hz, 5 ms) und einer mit Sweep bis 20 ms, dazu der Phaser. **Nicht geprüft:** wie es in Bewegung wirkt. Ich habe nur Einzelbilder angesehen, und das Flimmern habe ich diesmal nicht neu gemessen. Auch den CI-Lauf zu `b145e1f` habe ich nicht abgewartet.
admin added this to the Development project 2026-10-11 13:04:55 +02:00
admin moved this to Next in Development on 2026-10-11 13:05:04 +02:00
admin moved this to Done in Development on 2026-10-11 13:05:24 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#398