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.
Lautstärke (Tremolo) oder Tonhöhe (Vibrato) schwanken lassen, zum Beispiel für Alarm, Sirene, „wackelige“ Sounds oder Retro-Effekte.
Vorschlag:
Ein OscillatorNode als LFO, über einen Gain auf ein AudioParam gesteckt:
Tremolo: auf den Gain der Stimme.
Vibrato: auf playbackRate der Quelle.
Felder: Rate (Hz), Depth (Tremolo in %, Vibrato in Halbtönen), Shape (Sine, Triangle, Square, Saw).
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.
Haken beim Vibrato:
Es läuft über playbackRate, wie heute eine Pitch-Änderung an einer laufenden Stimme. Die Länge schwankt dabei minimal mit, im Mittel gleicht sich das aus.
Mit #317 (Pitch als AudioParam im Worklet) würde der LFO dann auf diesen Pitch gehen.
Rückfragen:
Ein Node mit Umschalter Tremolo / Vibrato, oder zwei Nodes?
Soll der LFO mit dem Start der Stimme bei Phase 0 anfangen (jedes Abspielen klingt gleich) oder frei laufen?
Soll es eine Einblendzeit für die Tiefe geben (Vibrato setzt erst nach x Sekunden ein), oder reicht dafür Set sound FX parameters mit time?
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*.
Lautstärke (Tremolo) oder Tonhöhe (Vibrato) schwanken lassen, zum Beispiel für Alarm, Sirene, „wackelige“ Sounds oder Retro-Effekte.
Vorschlag:
- Ein `OscillatorNode` als LFO, über einen Gain auf ein `AudioParam` gesteckt:
- **Tremolo:** auf den Gain der Stimme.
- **Vibrato:** auf `playbackRate` der Quelle.
- Felder: **Rate** (Hz), **Depth** (Tremolo in %, Vibrato in Halbtönen), **Shape** (Sine, Triangle, Square, Saw).
- 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.
Haken beim Vibrato:
- Es läuft über `playbackRate`, wie heute eine Pitch-Änderung an einer laufenden Stimme. Die Länge schwankt dabei minimal mit, im Mittel gleicht sich das aus.
- Mit #317 (Pitch als `AudioParam` im Worklet) würde der LFO dann auf diesen Pitch gehen.
Rückfragen:
- Ein Node mit Umschalter *Tremolo / Vibrato*, oder zwei Nodes?
- Soll der LFO mit dem Start der Stimme bei Phase 0 anfangen (jedes Abspielen klingt gleich) oder frei laufen?
- Soll es eine Einblendzeit für die Tiefe geben (Vibrato setzt erst nach x Sekunden ein), oder reicht dafür *Set sound FX parameters* mit `time`?
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
Deine Antworten: zwei Nodes, jede Stimme beginnt bei Phase 0, keine Einblendzeit.
Tremolo:Rate (Hz, 0 bis 20), Depth (%, 0 bis 100), Shape (Sine, Triangle, Square, Saw). Die Lautstärke schwankt zwischen voll und 1 - Depth.
Vibrato:Rate (Hz, 0,5 bis 20), Depth (Halbtöne, 0 bis 4), Shape wie oben. Die Form beschreibt den Verlauf der Tonhöhe, bei Square springt sie also zwischen zwei Tönen.
Eine Abweichung vom Issue-Text: Das Issue schlägt Vibrato über playbackRate vor. Auf einem Bus oder Track gibt es aber kein playbackRate. Ich baue es als schwankende kurze Verzögerung, wie den Flanger ohne trockenes Signal. Das geht überall und ändert die Länge nicht.
Die Verzögerung pendelt um einen festen Mittelwert, bei 4 Halbtönen und 0,5 Hz sind das höchstens rund 130 ms. Diese Zeit gleicht dieselbe Logik aus wie beim Pitch: Die Stimme startet um so viel früher.
Beide laufen auf dem FX-Worklet. Die Phase beginnt mit dem ersten Sample der Stimme, auf einem Bus mit dem Aufbau der Kette.
Rate und Depth lassen sich mit Set sound FX parameters samt time und Easing ändern.
## Plan
Deine Antworten: zwei Nodes, jede Stimme beginnt bei Phase 0, keine Einblendzeit.
- **Tremolo:** **Rate** (Hz, 0 bis 20), **Depth** (%, 0 bis 100), **Shape** (Sine, Triangle, Square, Saw). Die Lautstärke schwankt zwischen voll und `1 - Depth`.
- **Vibrato:** **Rate** (Hz, 0,5 bis 20), **Depth** (Halbtöne, 0 bis 4), **Shape** wie oben. Die Form beschreibt den Verlauf der Tonhöhe, bei Square springt sie also zwischen zwei Tönen.
- **Eine Abweichung vom Issue-Text:** Das Issue schlägt Vibrato über `playbackRate` vor. Auf einem Bus oder Track gibt es aber kein `playbackRate`. Ich baue es als schwankende kurze Verzögerung, wie den Flanger ohne trockenes Signal. Das geht überall und ändert die Länge nicht.
- Die Verzögerung pendelt um einen festen Mittelwert, bei 4 Halbtönen und 0,5 Hz sind das höchstens rund 130 ms. Diese Zeit gleicht dieselbe Logik aus wie beim Pitch: Die Stimme startet um so viel früher.
- Beide laufen auf dem FX-Worklet. Die Phase beginnt mit dem ersten Sample der Stimme, auf einem Bus mit dem Aufbau der Kette.
- Rate und Depth lassen sich mit *Set sound FX parameters* samt `time` und Easing ändern.
Erledigt mit 071f194 „Swing the volume or the pitch with Tremolo and Vibrato“.
Gebaut
Tremolo: Rate (0 bis 20 Hz), Depth (0 bis 100 %), Shape (Sine, Triangle, Square, Saw). Die Lautstärke schwingt zwischen voll und 1 - Depth.
Vibrato: Rate (0,5 bis 20 Hz), Depth (0 bis 4 Halbtöne), Shape. Die Form ist die Kurve der Tonhöhe, ein Square springt zwischen zwei Tonhöhen.
Wie entschieden: zwei eigene Nodes, Phase 0 beim ersten Sample der Stimme, keine Einblendzeit. Beide laufen im FX-Worklet, auf einer Stimme und auf einem Bus.
Abweichung vom Issue-Text, wie im Plan angekündigt: Das Vibrato ist eine schwingende Verzögerung, nicht playbackRate. Ein Bus hat kein playbackRate, und der Sound behält seine Länge.
Die Verzögerung schwingt um eine Mitte, die aus den Startwerten kommt. Diese Mitte zählt als Laufzeit des Nodes, die Stimme startet entsprechend früher, Mix und Bus gleichen aus.
Bekannte Grenze (steht im Node-Text und im Wiki): Wird Depth nach dem Start erhöht oder Rate gesenkt, bräuchte es eine Verzögerung unter 0. Die untere Hälfte der Schwingung wird dann flach.
Fund
Der erste e2e-Lauf war am Rand eines Messfensters rot. Die Phase wird aufsummiert, das Rechteck kippt deshalb ein Sample später, als 2400 Schritte zu 10/48000 nahelegen. Der Check hält jetzt 10 Samples Abstand zu den Rändern. Ein Fehler im Node war das nicht.
Gegenproben: Schwingung umgedreht (oben und unten vertauscht), Startzeit nicht ans Worklet gegeben. Jede macht einen Test rot.
e2e 34 (melektaus-atx): ALL PASSED, 80 Checks (1 neu). Chrome offline: Tremolo-Square vor der Stimme still, dann je 50 ms 0,5 und 0. Vibrato-Square 5 Hz, 1 Halbton: 1059,5 Hz und 940,5 Hz.
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.
Wiki: Sounds (Abschnitt Tremolo and Vibrato) und Instruments, Wiki-Commit 892ae19.
Erledigt mit `071f194` „Swing the volume or the pitch with Tremolo and Vibrato“.
## Gebaut
- **Tremolo:** Rate (0 bis 20 Hz), Depth (0 bis 100 %), Shape (Sine, Triangle, Square, Saw). Die Lautstärke schwingt zwischen voll und 1 - Depth.
- **Vibrato:** Rate (0,5 bis 20 Hz), Depth (0 bis 4 Halbtöne), Shape. Die Form ist die Kurve der Tonhöhe, ein Square springt zwischen zwei Tonhöhen.
- Wie entschieden: zwei eigene Nodes, Phase 0 beim ersten Sample der Stimme, keine Einblendzeit. Beide laufen im FX-Worklet, auf einer Stimme und auf einem Bus.
- **Abweichung vom Issue-Text, wie im Plan angekündigt:** Das Vibrato ist eine schwingende Verzögerung, nicht `playbackRate`. Ein Bus hat kein `playbackRate`, und der Sound behält seine Länge.
- Die Verzögerung schwingt um eine Mitte, die aus den Startwerten kommt. Diese Mitte zählt als Laufzeit des Nodes, die Stimme startet entsprechend früher, Mix und Bus gleichen aus.
- **Bekannte Grenze** (steht im Node-Text und im Wiki): Wird Depth nach dem Start erhöht oder Rate gesenkt, bräuchte es eine Verzögerung unter 0. Die untere Hälfte der Schwingung wird dann flach.
## Fund
Der erste e2e-Lauf war am Rand eines Messfensters rot. Die Phase wird aufsummiert, das Rechteck kippt deshalb ein Sample später, als 2400 Schritte zu 10/48000 nahelegen. Der Check hält jetzt 10 Samples Abstand zu den Rändern. Ein Fehler im Node war das nicht.
## Tests
- Unit: lfo (neu) 5, soundfx 53 (2 neu), sound-library 102 (1 neu), grün.
- Gegenproben: Schwingung umgedreht (oben und unten vertauscht), Startzeit nicht ans Worklet gegeben. Jede macht einen Test rot.
- e2e 34 (melektaus-atx): ALL PASSED, 80 Checks (1 neu). Chrome offline: Tremolo-Square vor der Stimme still, dann je 50 ms 0,5 und 0. Vibrato-Square 5 Hz, 1 Halbton: 1059,5 Hz und 940,5 Hz.
- 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.
Wiki: *Sounds* (Abschnitt *Tremolo and Vibrato*) 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.
Lautstärke (Tremolo) oder Tonhöhe (Vibrato) schwanken lassen, zum Beispiel für Alarm, Sirene, „wackelige“ Sounds oder Retro-Effekte.
Vorschlag:
OscillatorNodeals LFO, über einen Gain auf einAudioParamgesteckt:playbackRateder Quelle.timeund Easing an einer laufenden Stimme ändern.Haken beim Vibrato:
playbackRate, wie heute eine Pitch-Änderung an einer laufenden Stimme. Die Länge schwankt dabei minimal mit, im Mittel gleicht sich das aus.AudioParamim Worklet) würde der LFO dann auf diesen Pitch gehen.Rückfragen:
time?Plan
Deine Antworten: zwei Nodes, jede Stimme beginnt bei Phase 0, keine Einblendzeit.
1 - Depth.playbackRatevor. Auf einem Bus oder Track gibt es aber keinplaybackRate. Ich baue es als schwankende kurze Verzögerung, wie den Flanger ohne trockenes Signal. Das geht überall und ändert die Länge nicht.timeund Easing ändern.Erledigt mit
071f194„Swing the volume or the pitch with Tremolo and Vibrato“.Gebaut
playbackRate. Ein Bus hat keinplaybackRate, und der Sound behält seine Länge.Fund
Der erste e2e-Lauf war am Rand eines Messfensters rot. Die Phase wird aufsummiert, das Rechteck kippt deshalb ein Sample später, als 2400 Schritte zu 10/48000 nahelegen. Der Check hält jetzt 10 Samples Abstand zu den Rändern. Ein Fehler im Node war das nicht.
Tests
Nicht geprüft: wie es klingt, die Tests laufen stumm.
Wiki: Sounds (Abschnitt Tremolo and Vibrato) und Instruments, Wiki-Commit
892ae19.