retro.logidroflex.com -The sound starts to crackle when playing Rayman
Categories
(Core :: Web Audio, defect)
Tracking
()
People
(Reporter: rbucata, Unassigned)
References
(Depends on 1 open bug, )
Details
Environment:
Operating system: Windows 11
Firefox version: Firefox 128.0
Preconditions:
See Github report for credentials
Steps to reproduce:
- Navigate to: https://retro.logidroflex.com
- Search for Rayman and launch the game
- Observe the audio once the game starts
Expected Behavior:
Normal sound
Actual Behavior:
Crackling sounds
Notes:
- Reproduces regardless of the status of ETP
- Reproduces in Firefox Nightly, Firefox Release
- Does not reproduce in Chrome
Created from https://github.com/webcompat/web-bugs/issues/137516
Reporter | ||
Updated•6 months ago
|
Comment 1•6 months ago
|
||
Thank you very much, I'll give you identifiers here so you don't have to search in the previous conversation.
Username : supportmozilla
Password : 1D8@f4hdP
Website : https://retro.logidroflex.com/
Comment 2•6 months ago
|
||
This sounds like something the media team should look at.
Comment 3•6 months ago
|
||
Thanks for the report. I can see that AudioBufferSourceNode is used for sound. At currentTime=251.805333, an AudioBufferSourceNode is scheduled on the JS thread to start at 251.805333. By the time the audio rendering thread receives the message to start, it has likely already rendered for that time, and so the AudioBufferSourceNode starts late and does not align as intended with adjacent buffers.
D/WebAudioAPI 251.805333: GainNode 2 Connect() to GainNode 1
D/WebAudioAPI 251.805333: detune for 27912 SetValue value=0 time=0.000000 constant=0
D/WebAudioAPI 251.805333: playbackRate for 27912 SetValue value=1 time=0.000000 constant=0
D/WebAudioAPI 251.805333: playbackRate for 27912 SetValue value=1 time=0.000000 constant=0
D/WebAudioAPI 251.805333: AudioBufferSourceNode 27912 Connect() to GainNode 2
D/WebAudioAPI 251.805333: AudioBufferSourceNode 27912 Start(251.805333, 0, 2.22507e-308)
D/WebAudioAPI 251.805333: detune for 27913 SetValue value=0 time=0.000000 constant=0
D/WebAudioAPI 251.805333: playbackRate for 27913 SetValue value=1 time=0.000000 constant=0
D/WebAudioAPI 251.805333: playbackRate for 27913 SetValue value=1 time=0.000000 constant=0
D/WebAudioAPI 251.805333: AudioBufferSourceNode 27913 Connect() to GainNode 2
D/WebAudioAPI 251.805333: AudioBufferSourceNode 27913 Start(251.811138, 0, 2.22507e-308)
D/WebAudioAPI 251.805333: detune for 27914 SetValue value=0 time=0.000000 constant=0
D/WebAudioAPI 251.805333: playbackRate for 27914 SetValue value=1 time=0.000000 constant=0
D/WebAudioAPI 251.805333: playbackRate for 27914 SetValue value=1 time=0.000000 constant=0
I expect the sound would be better if the AudioBufferSourceNodes were always scheduled far enough in the future that they would render on time.
However, AudioWorkletNode would be a better way to render audio.
Updated•6 months ago
|
Comment 4•6 months ago
|
||
(In reply to Karl Tomlinson (:karlt) from comment #3)
Thanks for the report. I can see that AudioBufferSourceNode is used for sound. At currentTime=251.805333, an AudioBufferSourceNode is scheduled on the JS thread to start at 251.805333. By the time the audio rendering thread receives the message to start, it has likely already rendered for that time, and so the AudioBufferSourceNode starts late and does not align as intended with adjacent buffers.
D/WebAudioAPI 251.805333: GainNode 2 Connect() to GainNode 1 D/WebAudioAPI 251.805333: detune for 27912 SetValue value=0 time=0.000000 constant=0 D/WebAudioAPI 251.805333: playbackRate for 27912 SetValue value=1 time=0.000000 constant=0 D/WebAudioAPI 251.805333: playbackRate for 27912 SetValue value=1 time=0.000000 constant=0 D/WebAudioAPI 251.805333: AudioBufferSourceNode 27912 Connect() to GainNode 2 D/WebAudioAPI 251.805333: AudioBufferSourceNode 27912 Start(251.805333, 0, 2.22507e-308) D/WebAudioAPI 251.805333: detune for 27913 SetValue value=0 time=0.000000 constant=0 D/WebAudioAPI 251.805333: playbackRate for 27913 SetValue value=1 time=0.000000 constant=0 D/WebAudioAPI 251.805333: playbackRate for 27913 SetValue value=1 time=0.000000 constant=0 D/WebAudioAPI 251.805333: AudioBufferSourceNode 27913 Connect() to GainNode 2 D/WebAudioAPI 251.805333: AudioBufferSourceNode 27913 Start(251.811138, 0, 2.22507e-308) D/WebAudioAPI 251.805333: detune for 27914 SetValue value=0 time=0.000000 constant=0 D/WebAudioAPI 251.805333: playbackRate for 27914 SetValue value=1 time=0.000000 constant=0 D/WebAudioAPI 251.805333: playbackRate for 27914 SetValue value=1 time=0.000000 constant=0
I expect the sound would be better if the AudioBufferSourceNodes were always scheduled far enough in the future that they would render on time.
However, AudioWorkletNode would be a better way to render audio.
I don't know much about it but it's clear enough to be understood by a beginner like me.
nevertheless I find this subject very interesting.
Description
•