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.
Ein Sound wird angezerrt, wärmer und lauter wirkend, bis hin zur Verzerrung.
Vorschlag:
WaveShaperNode mit fester tanh-Kurve und oversample = '4x' gegen Aliasing.
Drive (dB) ist ein Gain vor der Kurve, nicht ein Tausch der Kurve. Dadurch lässt er sich rampen.
Ein Gain nach der Kurve gleicht die Lautstärke aus, dazu kommt 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.
Rückfragen:
Reicht eine weiche Sättigung (tanh), oder soll es Typen geben, etwa Hard clip, Tube (asymmetrisch) oder Foldback? Jeder Typ ist eine eigene feste Kurve und billig.
Soll die Lautstärke automatisch ausgeglichen werden, oder lieber ein eigenes Feld Output (dB)?
Soll ein Filter nach der Kurve (Tone) dabei sein, oder baut man das mit dem Filter-Node #318 selbst dahinter?
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*.
Ein Sound wird angezerrt, wärmer und lauter wirkend, bis hin zur Verzerrung.
Vorschlag:
- `WaveShaperNode` mit fester `tanh`-Kurve und `oversample = '4x'` gegen Aliasing.
- **Drive** (dB) ist ein Gain *vor* der Kurve, nicht ein Tausch der Kurve. Dadurch lässt er sich rampen.
- Ein Gain *nach* der Kurve gleicht die Lautstärke aus, dazu kommt **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.
Rückfragen:
- Reicht eine weiche Sättigung (`tanh`), oder soll es Typen geben, etwa *Hard clip*, *Tube* (asymmetrisch) oder *Foldback*? Jeder Typ ist eine eigene feste Kurve und billig.
- Soll die Lautstärke automatisch ausgeglichen werden, oder lieber ein eigenes Feld **Output** (dB)?
- Soll ein Filter nach der Kurve (*Tone*) dabei sein, oder baut man das mit dem Filter-Node #318 selbst dahinter?
meleki
added the new label 2026-10-05 22:37:52 +02:00
admin
added this to the Development project 2026-10-06 15:56:09 +02:00
admin
moved this to Next in Development on 2026-10-07 14:01:14 +02:00
beides, wie potentiell beim compressor, auto-gain als weight 0-1, output feld soll es aber auch geben => auto-gain blendet dann einfach zwischen output-gain und errechnet dem gain
ich denke tone brauchen wir beim compressor nicht, oder ist es sinnvoll wenn das mit integriert ist?
- je mehr typen desto besser
- beides, wie potentiell beim compressor, auto-gain als weight 0-1, output feld soll es aber auch geben => auto-gain blendet dann einfach zwischen output-gain und errechnet dem gain
- ich denke tone brauchen wir beim compressor nicht, oder ist es sinnvoll wenn das mit integriert ist?
admin
removed the new label 2026-10-07 15:30:24 +02:00
Deine Antworten: möglichst viele Typen, Auto-gain als Gewicht von 0 bis 1 zusätzlich zu Output. Tone baue ich ein, so wie ich es empfohlen habe („passt alles“).
Neuer Node Saturation auf einem WaveShaperNode mit oversample = '4x'.
Type: Soft (tanh), Cubic, Hard clip, Tube (asymmetrisch), Fuzz, Foldback, Sine fold, Rectify. Jeder Typ ist eine feste Kurve, die einmal gerechnet wird.
Drive (dB, 0 bis 48) ist ein Gain vor der Kurve und lässt sich rampen.
Tone (0 bis 1, Standard 1 = offen): ein sanfter Tiefpass hinter der Kurve, von 1 kHz bei 0 bis 20 kHz bei 1.
Output (dB) und Auto-gain (0 bis 1): Hinter der Kurve gilt (1 - Auto-gain) · Output + Auto-gain · berechneter Wert. Der berechnete Wert hält einen Sinus bei -12 dBFS so laut, wie er hereinkam.
Mix (0 bis 1): Anteil des gesättigten Klangs, der Rest ist der trockene Klang.
Asymmetrische Kurven erzeugen Gleichspannung. Ein Hochpass bei 10 Hz nimmt sie heraus.
Falls das Oversampling im Browser verzögert, messe ich das und verzögere den trockenen Weg genauso, damit beim Mischen kein Kammfilter entsteht.
Alle Zahlen kommen auf Wunsch von einem Parameter des Inputs und lassen sich mit Set sound FX parameters samt time und Easing ändern.
## Plan
Deine Antworten: möglichst viele Typen, Auto-gain als Gewicht von 0 bis 1 zusätzlich zu *Output*. *Tone* baue ich ein, so wie ich es empfohlen habe („passt alles“).
- Neuer Node **Saturation** auf einem `WaveShaperNode` mit `oversample = '4x'`.
- **Type:** Soft (tanh), Cubic, Hard clip, Tube (asymmetrisch), Fuzz, Foldback, Sine fold, Rectify. Jeder Typ ist eine feste Kurve, die einmal gerechnet wird.
- **Drive** (dB, 0 bis 48) ist ein Gain vor der Kurve und lässt sich rampen.
- **Tone** (0 bis 1, Standard 1 = offen): ein sanfter Tiefpass hinter der Kurve, von 1 kHz bei 0 bis 20 kHz bei 1.
- **Output** (dB) und **Auto-gain** (0 bis 1): Hinter der Kurve gilt `(1 - Auto-gain) · Output + Auto-gain · berechneter Wert`. Der berechnete Wert hält einen Sinus bei -12 dBFS so laut, wie er hereinkam.
- **Mix** (0 bis 1): Anteil des gesättigten Klangs, der Rest ist der trockene Klang.
- Asymmetrische Kurven erzeugen Gleichspannung. Ein Hochpass bei 10 Hz nimmt sie heraus.
- Falls das Oversampling im Browser verzögert, messe ich das und verzögere den trockenen Weg genauso, damit beim Mischen kein Kammfilter entsteht.
- Alle Zahlen kommen auf Wunsch von einem Parameter des Inputs und lassen sich mit *Set sound FX parameters* samt `time` und Easing ändern.
Erledigt mit d3a4cb7 „Warm up or distort a sound with a Saturation node“.
Gebaut
Acht Typen, jeder eine feste, einmal gerechnete Kurve: Soft (tanh), Cubic, Hard clip, Tube, Fuzz, Foldback, Sine fold und Rectify.
Drive (0 bis 48 dB) verstärkt vor der Kurve. Die Kurve reicht bis zum 256-Fachen der Vollaussteuerung, Drive gleitet also wie jeder Gain.
Output und Auto-gain werden übergeblendet wie beim Compressor. Auto-gain bringt einen Sinus mit -12 dBFS auf den RMS zurück, mit dem er hineinging.
Tone (deine Rückfrage, wie im Plan empfohlen): ein Tiefpass nach der Kurve, 1 kHz bei 0 bis 20 kHz bei 1. Ein Hochpass bei 10 Hz nimmt den Gleichanteil heraus, den die schiefen Typen erzeugen.
Mix blendet mit dem trockenen Signal. Das 4-fache Oversampling ist in Chrome 192 Samples spät, der trockene Weg wird um genau so viel verzögert. Für Stimmen, Mix und Busse zählt der Node mit dieser Laufzeit.
Gegenproben: trockener Weg ohne Verzögerung (1 rot), Level ohne Auto-gain (2 rot).
e2e 34 (melektaus-atx): ALL PASSED, 79 Checks (1 neu). Chrome offline: 192 Samples spät bei 48 und 44,1 kHz. Halb trocken bei 1125 Hz (dort würden 192 Samples Versatz auslöschen): 0,00 dB. Sinus mit -12 dBFS, 24 dB in Soft gefahren, kommt mit vollem Auto-gain bei 0,00 dB heraus.
Gate (melektaus-atx) über den Endstand der Serie: CHECK EXIT 0, 267 Dateien, 4134 Tests.
Nicht geprüft: wie es klingt, die Tests laufen stumm. Die 192 Samples sind nur in Chrome gemessen.
Wiki: Sounds (Abschnitt Saturation) und Instruments, Wiki-Commit 892ae19.
Erledigt mit `d3a4cb7` „Warm up or distort a sound with a Saturation node“.
## Gebaut
- **Acht Typen**, jeder eine feste, einmal gerechnete Kurve: Soft (tanh), Cubic, Hard clip, Tube, Fuzz, Foldback, Sine fold und Rectify.
- **Drive** (0 bis 48 dB) verstärkt vor der Kurve. Die Kurve reicht bis zum 256-Fachen der Vollaussteuerung, Drive gleitet also wie jeder Gain.
- **Output** und **Auto-gain** werden übergeblendet wie beim Compressor. Auto-gain bringt einen Sinus mit -12 dBFS auf den RMS zurück, mit dem er hineinging.
- **Tone** (deine Rückfrage, wie im Plan empfohlen): ein Tiefpass nach der Kurve, 1 kHz bei 0 bis 20 kHz bei 1. Ein Hochpass bei 10 Hz nimmt den Gleichanteil heraus, den die schiefen Typen erzeugen.
- **Mix** blendet mit dem trockenen Signal. Das 4-fache Oversampling ist in Chrome 192 Samples spät, der trockene Weg wird um genau so viel verzögert. Für Stimmen, Mix und Busse zählt der Node mit dieser Laufzeit.
## Tests
- Unit: saturation (neu) 5, soundfx 51 (2 neu), sound-library 101 (1 neu), grün.
- Gegenproben: trockener Weg ohne Verzögerung (1 rot), Level ohne Auto-gain (2 rot).
- e2e 34 (melektaus-atx): ALL PASSED, 79 Checks (1 neu). Chrome offline: 192 Samples spät bei 48 **und** 44,1 kHz. Halb trocken bei 1125 Hz (dort würden 192 Samples Versatz auslöschen): 0,00 dB. Sinus mit -12 dBFS, 24 dB in Soft gefahren, kommt mit vollem Auto-gain bei 0,00 dB heraus.
- Gate (melektaus-atx) über den Endstand der Serie: CHECK EXIT 0, 267 Dateien, 4134 Tests.
**Nicht geprüft:** wie es klingt, die Tests laufen stumm. Die 192 Samples sind nur in Chrome gemessen.
Wiki: *Sounds* (Abschnitt *Saturation*) und *Instruments*, Wiki-Commit `892ae19`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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.
Ein Sound wird angezerrt, wärmer und lauter wirkend, bis hin zur Verzerrung.
Vorschlag:
WaveShaperNodemit festertanh-Kurve undoversample = '4x'gegen Aliasing.timeund Easing an einer laufenden Stimme ändern.Rückfragen:
tanh), oder soll es Typen geben, etwa Hard clip, Tube (asymmetrisch) oder Foldback? Jeder Typ ist eine eigene feste Kurve und billig.Plan
Deine Antworten: möglichst viele Typen, Auto-gain als Gewicht von 0 bis 1 zusätzlich zu Output. Tone baue ich ein, so wie ich es empfohlen habe („passt alles“).
WaveShaperNodemitoversample = '4x'.(1 - Auto-gain) · Output + Auto-gain · berechneter Wert. Der berechnete Wert hält einen Sinus bei -12 dBFS so laut, wie er hereinkam.timeund Easing ändern.Erledigt mit
d3a4cb7„Warm up or distort a sound with a Saturation node“.Gebaut
Tests
Nicht geprüft: wie es klingt, die Tests laufen stumm. Die 192 Samples sind nur in Chrome gemessen.
Wiki: Sounds (Abschnitt Saturation) und Instruments, Wiki-Commit
892ae19.