Sound FX: Reverse, Trim und Start-Offset #321

Closed
opened 2026-10-05 22:37:52 +02:00 by meleki · 3 comments
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.

Einen Sound rückwärts oder nur einen Ausschnitt davon abspielen.

Vorschlag:

  • Reverse: am Puffer rechnen, beim Start, mit Cache wie die verschobene Kopie beim Pitch.
  • Trim: Start und End in Sekunden, über source.start(when, offset, duration) bzw. loopStart/loopEnd beim Loop.
  • Beides gilt nur beim Start einer Stimme, wie der Pitch beim Start. Set sound FX parameters kann es nicht mehr ändern.
  • length an Play sound liefert dann die Länge des Ausschnitts, nicht der Datei.

Rückfragen:

  • Ein Node Trim mit Schalter Reverse, oder zwei Nodes?
  • Wo im Graph? Ein Node nach dem Pitch wirkt trotzdem auf den Sound vor dem Pitch, wie heute ein EQ vor dem Pitch. Soll das erlaubt sein, oder nur direkt hinter Input?
  • Sollen Start und End als Sekunden erscheinen oder als Anteil (0 bis 1) der Länge? Anteile überstehen das Austauschen der Datei besser.
  • Braucht es einen Start-Offset auch an Play sound selbst (zum Beispiel „spiel ab 1,5 s“), unabhängig vom FX?
  • Ein Ausschnitt braucht kurze Fades an den Schnittkanten, sonst knackt es. Feste 5 ms, oder ein Feld dafür?
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*. Einen Sound rückwärts oder nur einen Ausschnitt davon abspielen. Vorschlag: - **Reverse:** am Puffer rechnen, beim Start, mit Cache wie die verschobene Kopie beim Pitch. - **Trim:** **Start** und **End** in Sekunden, über `source.start(when, offset, duration)` bzw. `loopStart`/`loopEnd` beim Loop. - Beides gilt nur beim Start einer Stimme, wie der Pitch beim Start. *Set sound FX parameters* kann es nicht mehr ändern. - `length` an *Play sound* liefert dann die Länge des Ausschnitts, nicht der Datei. Rückfragen: - Ein Node *Trim* mit Schalter *Reverse*, oder zwei Nodes? - Wo im Graph? Ein Node nach dem Pitch wirkt trotzdem auf den Sound vor dem Pitch, wie heute ein EQ vor dem Pitch. Soll das erlaubt sein, oder nur direkt hinter *Input*? - Sollen Start und End als Sekunden erscheinen oder als Anteil (0 bis 1) der Länge? Anteile überstehen das Austauschen der Datei besser. - Braucht es einen Start-Offset auch an *Play sound* selbst (zum Beispiel „spiel ab 1,5 s“), unabhängig vom FX? - Ein Ausschnitt braucht kurze Fades an den Schnittkanten, sonst knackt es. Feste 5 ms, oder ein Feld dafür?
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
Author
Owner

Entscheidung des Users (2026-10-06, bei #343): Trim ist mit dem neuen Sound-Tab (#343) erledigt. Der Schnitt gehört dort zum Sound-Asset selbst (Start, Ende, Fade an den Kanten) und gilt damit in Song, Play sound und Sample, statt als FX-Node.

Dieses Issue bleibt offen für Reverse. Den Start-Offset deckt der Start des Schnitts ab.

Entscheidung des Users (2026-10-06, bei #343): **Trim ist mit dem neuen Sound-Tab (#343) erledigt.** Der Schnitt gehört dort zum Sound-Asset selbst (Start, Ende, Fade an den Kanten) und gilt damit in Song, *Play sound* und *Sample*, statt als FX-Node. Dieses Issue bleibt offen für **Reverse**. Den Start-Offset deckt der Start des Schnitts ab.
admin moved this to Next in Development on 2026-10-07 11:15:50 +02:00

hier fehlt somit nur noch "reverse"

  • ich würde sagen beim sound selbst ein toggle mit dem man reverse aktivieren kann
  • und ein node "Reverse" für den sound fx graph wäre auch noch gut
hier fehlt somit nur noch "reverse" - ich würde sagen beim sound selbst ein toggle mit dem man reverse aktivieren kann - und ein node "Reverse" für den sound fx graph wäre auch noch gut
admin removed the new label 2026-10-07 14:58:04 +02:00
Author
Owner

Erledigt in 101b125, Wiki in 133af19 (Sounds → Playing it backwards).

Was dazukommt

  • Schalter Reverse am Sound-Asset: im Inspector als Zeile Reverse, im Sound-Tab als Knopf hinter Whole file (Play-Dreieck nach links, leuchtet, wenn an).
  • Gilt überall, wo der Sound spielt: Play sound, Song-Items, Sample im Instrument und ein Pitch im Sound FX. Die umgedrehte Kopie entsteht einmal beim Laden, wie bei jedem Schnitt. Der Cut-Name endet auf ~reverse.
  • length und die Runden eines Song-Items bleiben gleich. Die Wellenform eines Song-Items wird rückwärts gezeichnet, so wie man sie hört.

Entscheidungen

  • Kein Reverse-Node im Sound-FX-Graph, wie du entschieden hast. Rückwärts braucht den ganzen Klang im Voraus, den haben Busse und Chip nicht.
  • Frage 1 habe ich mit a entschieden (meine Empfehlung): Start und Ende markieren weiter dasselbe Stück der Datei. Fade in liegt am End-Handle, Fade out am Start-Handle, die Wellenansicht zeichnet die Rampen dort. Der Playhead läuft von rechts nach links.
  • Header: Mit dem neuen Knopf war die Anzeige bei 1280 px abgeschnitten („0.03 s of 0…“). Das Label heißt jetzt „Fade in“ statt „Fade in (ms)“, die Felder sind 8 px schmaler. Im Inspector steht die Einheit weiter.

Tests

Unit sounds                  → 22 grün (1 neu); 2 Gegenproben rot
Unit sound-library           → 85 grün (1 neu); Gegenprobe rot
e2e 34 (melektaus-atx)       → ALL PASSED – 72 Checks (2 neu)
Gate (melektaus-atx)         → CHECK EXIT 0, 260 Dateien, 4031 Tests
  • e2e 34: Der umgedrehte Ausschnitt beginnt mit den letzten Samples des vorwärts gespielten. Über die ganze Datei lief der Playhead 0.75 → 0.60 → 0.45 → 0.30 → 0.15.
  • Der erste Gate-Lauf war rot (1 von 4031), weil das Icon zuerst bei den Icons der oberen Leiste lag. Jetzt liegt es bei den Schaltern der Tab-Köpfe.

Nicht geprüft

  • wie es klingt
  • Song-Item und Sample mit Reverse im Browser, das deckt nur der Unit-Test ab
  • eine Gegenprobe für die e2e-Checks
Erledigt in 101b125, Wiki in 133af19 (*Sounds* → *Playing it backwards*). ## Was dazukommt - **Schalter *Reverse* am Sound-Asset:** im Inspector als Zeile *Reverse*, im Sound-Tab als Knopf hinter *Whole file* (Play-Dreieck nach links, leuchtet, wenn an). - **Gilt überall, wo der Sound spielt:** *Play sound*, Song-Items, *Sample* im Instrument und ein *Pitch* im Sound FX. Die umgedrehte Kopie entsteht einmal beim Laden, wie bei jedem Schnitt. Der Cut-Name endet auf `~reverse`. - `length` und die Runden eines Song-Items bleiben gleich. Die Wellenform eines Song-Items wird rückwärts gezeichnet, so wie man sie hört. ## Entscheidungen - **Kein *Reverse*-Node** im Sound-FX-Graph, wie du entschieden hast. Rückwärts braucht den ganzen Klang im Voraus, den haben Busse und Chip nicht. - **Frage 1 habe ich mit a entschieden (meine Empfehlung):** Start und Ende markieren weiter dasselbe Stück der Datei. *Fade in* liegt am End-Handle, *Fade out* am Start-Handle, die Wellenansicht zeichnet die Rampen dort. Der Playhead läuft von rechts nach links. - **Header:** Mit dem neuen Knopf war die Anzeige bei 1280 px abgeschnitten („0.03 s of 0…“). Das Label heißt jetzt „Fade in“ statt „Fade in (ms)“, die Felder sind 8 px schmaler. Im Inspector steht die Einheit weiter. ## Tests ``` Unit sounds → 22 grün (1 neu); 2 Gegenproben rot Unit sound-library → 85 grün (1 neu); Gegenprobe rot e2e 34 (melektaus-atx) → ALL PASSED – 72 Checks (2 neu) Gate (melektaus-atx) → CHECK EXIT 0, 260 Dateien, 4031 Tests ``` - e2e 34: Der umgedrehte Ausschnitt beginnt mit den letzten Samples des vorwärts gespielten. Über die ganze Datei lief der Playhead 0.75 → 0.60 → 0.45 → 0.30 → 0.15. - Der erste Gate-Lauf war rot (1 von 4031), weil das Icon zuerst bei den Icons der oberen Leiste lag. Jetzt liegt es bei den Schaltern der Tab-Köpfe. ## Nicht geprüft - wie es klingt - Song-Item und *Sample* mit *Reverse* im Browser, das deckt nur der Unit-Test ab - eine Gegenprobe für die e2e-Checks
admin moved this to Done in Development on 2026-10-07 16:56:10 +02:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#321