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.
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).
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.
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.
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 inbusesnachgesehen und erst danachaudio()aufgerufen. Gibt es noch keinenAudioContext, legtaudio()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
setMixbei gleichem Mix nichts tut, blieb das so, bis sich der Mix änderte.Ausgelöst wird das, wenn der erste Ton nach dem Laden über
setBuseskommt (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.Erledigt mit
db15422.bus()hat einen Bus gesucht, bevor es denAudioContextangelegt hat. Der neue Context richtet den ganzen Mix ein, auch diesen Bus, undbus()hat ihn danach mit einem frischen Bus (Pegel 1, ohne FX, direkt in den Master) überschrieben. WeilsetMixbei gleichem Mix nichts tut, blieb das so, bis sich am Mix etwas änderte.bus()legt zuerst den Context an und sucht erst danach den Bus. Das gilt für alle Wege, die einen Bus anlegen.Tests:
Nicht geprüft: der Fehler im Browser und der Klang. Nachgestellt ist er nur im Unit-Test.