Sound FX: Delay-Node #327

Closed
opened 2026-10-05 22:37:52 +02:00 by meleki · 1 comment
Owner

Aus der Einschätzung der Sound-FX-Nodes nach #317 (Gespräch 2026-10-05). Heute gibt es Input, Output, Gain, Pitch, 5-Band-EQ und Mix.

Echo: der Sound wiederholt sich leiser werdend.

Vorschlag:

  • DelayNode mit Rückkopplung über einen Gain.
  • Felder: Time (s), Feedback (0 bis 0,95, nie 1, sonst schaukelt es sich auf), Mix (dry/wet).
  • Wie bei Gain und 5-Band-EQ: Jeder Wert kann von einem Parameter des Input-Nodes kommen und lässt sich mit Set sound FX parameters samt time und Easing an einer laufenden Stimme ändern.
  • Voraussetzung: Nachklang einer Stimme (#324). Ohne das wird das Echo beim Ende der Quelle abgeschnitten oder klingt nach Stop sound weiter.

Rückfragen:

  • Soll ein Filter in der Rückkopplung dabei sein (Damping, jedes Echo wird dumpfer), wie bei einem Tape-Delay?
  • Braucht es Ping-Pong (Echos abwechselnd links und rechts)?
  • Soll die Zeit auch in Schlägen gehen (1/4, 1/8 bei einem Tempo), oder reichen Sekunden?
  • Ändert sich Time mitten im Sound, verschiebt sich die Tonhöhe des Echos kurz. Das ist normal bei einem Delay. Passt das, oder soll Time nur beim Start gelten?
Aus der Einschätzung der Sound-FX-Nodes nach #317 (Gespräch 2026-10-05). Heute gibt es *Input*, *Output*, *Gain*, *Pitch*, *5-Band-EQ* und *Mix*. Echo: der Sound wiederholt sich leiser werdend. Vorschlag: - `DelayNode` mit Rückkopplung über einen Gain. - Felder: **Time** (s), **Feedback** (0 bis 0,95, nie 1, sonst schaukelt es sich auf), **Mix** (dry/wet). - Wie bei *Gain* und *5-Band-EQ*: Jeder Wert kann von einem Parameter des Input-Nodes kommen und lässt sich mit *Set sound FX parameters* samt `time` und Easing an einer laufenden Stimme ändern. - **Voraussetzung:** Nachklang einer Stimme (#324). Ohne das wird das Echo beim Ende der Quelle abgeschnitten oder klingt nach *Stop sound* weiter. Rückfragen: - Soll ein Filter in der Rückkopplung dabei sein (*Damping*, jedes Echo wird dumpfer), wie bei einem Tape-Delay? - Braucht es **Ping-Pong** (Echos abwechselnd links und rechts)? - Soll die Zeit auch in Schlägen gehen (1/4, 1/8 bei einem Tempo), oder reichen Sekunden? - Ändert sich **Time** mitten im Sound, verschiebt sich die Tonhöhe des Echos kurz. Das ist normal bei einem Delay. Passt das, oder soll Time nur beim Start gelten?
meleki added the new label 2026-10-05 22:37:52 +02:00
Author
Owner

Umgesetzt mit cf6799a („Let echoes ring on with a Delay node in sound FX #324 #327“). Der Nachklang der Stimme, den der Delay braucht, kam im selben Commit mit #324. Wiki: c11e310, Seite Sounds.

Entscheidungen (aus der Fragerunde)

  1. Damping: Feld Damping, ein Tiefpass in der Rückkopplung. 0 ist 20 kHz (nichts zu hören), 1 ist 500 Hz, gleichmäßig in Oktaven. Jedes Echo wird dumpfer als das davor.
  2. Ping-pong: Schalter am Node. Der Sound geht nur links in die Leitung (Stereo wird dafür gemischt), jede Runde tauscht die Seiten. Gilt nur beim Start, weil er die Verdrahtung ändert.
  3. Zeit in Schlägen: jetzt nur Sekunden, Schläge kommen mit #332 (dort vermerkt).
  4. Time mitten im Sound: wie ein Tape-Delay, die Echos unterwegs verschieben kurz ihre Tonhöhe. Mit time und Easing gleichmäßig.
  5. Mix als Send: Das Original bleibt voll laut, Mix ist die Lautstärke der Echos (0,5 = Echos halb so laut).

Felder

  • Time 0,01 bis 2 s (Standard 0,25), Feedback 0 bis 0,95 (0,4), Damping 0 bis 1 (0,3), Mix 0 bis 1 (0,5), Ping-pong aus.
  • Alle Zahlen lassen sich über Parameter füttern und mit Set sound FX parameters samt time und Easing ändern. Damping rampt in Oktaven.
  • Ein Mix von fest 0 lässt den Delay ganz weg, über einen Parameter gefüttert bleibt er.

Befund

In Chrome kommt jedes Echo ab dem zweiten 128 Samples (2,7 ms bei 48 kHz) später als gerechnet, und zwar pro Runde: gemessen 0, 128, 256, 384 Samples bei den ersten vier Echos. Jede Runde durch die Rückkopplungsschleife kostet ein Render-Quantum. Nach zehn Echos bei 0,3 s sind das 27 ms. Nicht ausgeglichen, weil ein Browser ohne diesen Versatz die Echos dann zu früh hätte. Steht im Wiki.

Tests

  • Unit: Verdrahtung von Echo und Ping-Pong, Regler des Delays, Kompilieren der Stufe, tail-Summen (in den 489 grünen Tests aus #324).
  • e2e 34 (melektaus-atx): ALL PASSED, 37 Checks. Offline mit der echten Verdrahtung des Players gerendert: Echos 0,25 links, 0,125 rechts, 0,063 links.
  • Gate (melektaus-atx): CHECK EXIT 0, 242 Testdateien, 3713 Tests.

Nicht geprüft

  • Gehört hat niemand etwas, vor allem Damping und Ping-pong nicht.
  • Den Delay-Node im FX-Tab (Inspector, Schalter) habe ich nicht im Browser angesehen.
  • In Firefox lief nichts.
  • Der CI-Lauf zu cf6799a war beim Schließen noch nicht gelesen.
Umgesetzt mit `cf6799a` („Let echoes ring on with a Delay node in sound FX #324 #327“). Der Nachklang der Stimme, den der Delay braucht, kam im selben Commit mit #324. Wiki: `c11e310`, Seite *Sounds*. ## Entscheidungen (aus der Fragerunde) 1. **Damping:** Feld *Damping*, ein Tiefpass in der Rückkopplung. 0 ist 20 kHz (nichts zu hören), 1 ist 500 Hz, gleichmäßig in Oktaven. Jedes Echo wird dumpfer als das davor. 2. **Ping-pong:** Schalter am Node. Der Sound geht nur links in die Leitung (Stereo wird dafür gemischt), jede Runde tauscht die Seiten. Gilt nur beim Start, weil er die Verdrahtung ändert. 3. **Zeit in Schlägen:** jetzt nur Sekunden, Schläge kommen mit #332 (dort vermerkt). 4. **Time mitten im Sound:** wie ein Tape-Delay, die Echos unterwegs verschieben kurz ihre Tonhöhe. Mit `time` und Easing gleichmäßig. 5. **Mix als Send:** Das Original bleibt voll laut, *Mix* ist die Lautstärke der Echos (0,5 = Echos halb so laut). ## Felder - *Time* 0,01 bis 2 s (Standard 0,25), *Feedback* 0 bis 0,95 (0,4), *Damping* 0 bis 1 (0,3), *Mix* 0 bis 1 (0,5), *Ping-pong* aus. - Alle Zahlen lassen sich über Parameter füttern und mit *Set sound FX parameters* samt `time` und Easing ändern. Damping rampt in Oktaven. - Ein *Mix* von fest 0 lässt den Delay ganz weg, über einen Parameter gefüttert bleibt er. ## Befund In Chrome kommt jedes Echo ab dem zweiten **128 Samples (2,7 ms bei 48 kHz) später** als gerechnet, und zwar pro Runde: gemessen 0, 128, 256, 384 Samples bei den ersten vier Echos. Jede Runde durch die Rückkopplungsschleife kostet ein Render-Quantum. Nach zehn Echos bei 0,3 s sind das 27 ms. Nicht ausgeglichen, weil ein Browser ohne diesen Versatz die Echos dann zu früh hätte. Steht im Wiki. ## Tests - Unit: Verdrahtung von Echo und Ping-Pong, Regler des Delays, Kompilieren der Stufe, `tail`-Summen (in den 489 grünen Tests aus #324). - e2e 34 (melektaus-atx): ALL PASSED, 37 Checks. Offline mit der echten Verdrahtung des Players gerendert: Echos 0,25 links, 0,125 rechts, 0,063 links. - Gate (melektaus-atx): CHECK EXIT 0, 242 Testdateien, 3713 Tests. ## Nicht geprüft - Gehört hat niemand etwas, vor allem *Damping* und *Ping-pong* nicht. - Den Delay-Node im FX-Tab (Inspector, Schalter) habe ich nicht im Browser angesehen. - In Firefox lief nichts. - Der CI-Lauf zu `cf6799a` war beim Schließen noch nicht gelesen.
admin added this to the Development project 2026-10-06 15:42:50 +02:00
admin removed the new label 2026-10-06 15:43:01 +02:00
admin moved this to Next in Development on 2026-10-06 15:43:10 +02:00
admin moved this to Done in Development on 2026-10-06 15:43:16 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#327