Bus des Mix verliert Lautstärke, FX und Ziel, wenn der erste Ton aus dem Song- oder Pattern-Tab kommt #369

Closed
opened 2026-10-09 12:47:39 +02:00 by meleki · 1 comment
Owner

Befund

Gemeldet bei #368: Die Vorschau hat die Lautstärke des Busses nicht genommen. Erst nach einer Änderung am Bus selbst (z. B. Sound FX) stimmte sie.

Ursache

SoundLibrary.bus() hat zuerst in buses nachgesehen und erst danach audio() aufgerufen. Gibt es noch keinen AudioContext, legt audio() ihn an und richtet dabei den ganzen Mix ein, samt dem Bus, nach dem gerade gefragt wurde. bus() hat danach trotzdem einen neuen Bus mit Pegel 1, ohne FX und direkt in den Master angelegt und den richtigen überschrieben.

Da setMix bei gleichem Mix nichts tut, blieb das so, bis sich der Mix änderte.

Ausgelöst wird das, wenn der erste Ton nach dem Laden über setBuses kommt (Song- und Pattern-Tab). Vor #368 traf es den Bus des Songs, seit #368 trifft es den Master: Master-Lautstärke und Master-FX fehlen dann bei der ersten Vorschau.

Fix

bus() holt zuerst den Context und sieht erst dann nach dem Bus.

## Befund Gemeldet bei #368: Die Vorschau hat die Lautstärke des Busses nicht genommen. Erst nach einer Änderung am Bus selbst (z. B. Sound FX) stimmte sie. ## Ursache `SoundLibrary.bus()` hat zuerst in `buses` nachgesehen und erst danach `audio()` aufgerufen. Gibt es noch keinen `AudioContext`, legt `audio()` ihn an und richtet dabei den ganzen Mix ein, samt dem Bus, nach dem gerade gefragt wurde. `bus()` hat danach trotzdem einen neuen Bus mit Pegel 1, ohne FX und direkt in den Master angelegt und den richtigen überschrieben. Da `setMix` bei gleichem Mix nichts tut, blieb das so, bis sich der Mix änderte. Ausgelöst wird das, wenn der erste Ton nach dem Laden über `setBuses` kommt (Song- und Pattern-Tab). Vor #368 traf es den Bus des Songs, seit #368 trifft es den Master: Master-Lautstärke und Master-FX fehlen dann bei der ersten Vorschau. ## Fix `bus()` holt zuerst den Context und sieht erst dann nach dem Bus.
Author
Owner

Erledigt mit db15422.

  • Ursache: bus() hat einen Bus gesucht, bevor es den AudioContext angelegt hat. Der neue Context richtet den ganzen Mix ein, auch diesen Bus, und bus() hat ihn danach mit einem frischen Bus (Pegel 1, ohne FX, direkt in den Master) überschrieben. Weil setMix bei gleichem Mix nichts tut, blieb das so, bis sich am Mix etwas änderte.
  • Ausgelöst, wenn der erste Ton nach dem Laden aus dem Song- oder Pattern-Tab kam. Vor #368 traf es den Bus des Songs, seit #368 Volume und FX des Masters.
  • Fix: bus() legt zuerst den Context an und sucht erst danach den Bus. Das gilt für alle Wege, die einen Bus anlegen.

Tests:

  • Unit sound-library, buses, master-routing: 139 grün, 1 neu. Der neue Test war vor dem Fix rot (mix:b auf 1 in den Master statt 0,25 in mix:a).
  • Gate (melektaus-atx): CHECK EXIT 0, 274 Dateien, 4231 Tests.

Nicht geprüft: der Fehler im Browser und der Klang. Nachgestellt ist er nur im Unit-Test.

Erledigt mit db15422. - Ursache: `bus()` hat einen Bus gesucht, bevor es den `AudioContext` angelegt hat. Der neue Context richtet den ganzen Mix ein, auch diesen Bus, und `bus()` hat ihn danach mit einem frischen Bus (Pegel 1, ohne FX, direkt in den Master) überschrieben. Weil `setMix` bei gleichem Mix nichts tut, blieb das so, bis sich am Mix etwas änderte. - Ausgelöst, wenn der erste Ton nach dem Laden aus dem Song- oder Pattern-Tab kam. Vor #368 traf es den Bus des Songs, seit #368 Volume und FX des Masters. - Fix: `bus()` legt zuerst den Context an und sucht erst danach den Bus. Das gilt für alle Wege, die einen Bus anlegen. Tests: - Unit sound-library, buses, master-routing: 139 grün, 1 neu. Der neue Test war vor dem Fix rot (mix:b auf 1 in den Master statt 0,25 in mix:a). - Gate (melektaus-atx): CHECK EXIT 0, 274 Dateien, 4231 Tests. Nicht geprüft: der Fehler im Browser und der Klang. Nachgestellt ist er nur im Unit-Test.
admin added this to the Development project 2026-10-09 13:45:44 +02:00
admin moved this to Next in Development on 2026-10-09 13:46:00 +02:00
admin moved this to Done in Development on 2026-10-09 13:46:07 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#369