[Webkit-unassigned] [Bug 100885] New: Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Oct 31 14:07:25 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=100885

           Summary: Automating gain AudioParam with
                    linearRampToValueAtTime introduces buzzing distortion
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
        OS/Version: All
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: Web Audio
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: matt.grounds at gmail.com
                CC: crogers at google.com, rtoy at chromium.org


Created an attachment (id=171716)
 --> (https://bugs.webkit.org/attachment.cgi?id=171716&action=review)
Regression HTML page with debug FFT and time output to show distortion.

There seems to be a problem with the implementation of linearRampToValueAtTime in AudioParamTimeline.cpp, which on the GainNode causes a buzzing distortion to begin when audioContext.currentTime reaches certain powers of 2. This suggests it has something to do with representing time as a floating point number during the for loop which calculates the sample accurate values.

I have confirmed the bug with the nightly build on the following platforms:
Windows XP - Intel Core 4 Quad 6600
Mac OS X Snow Leopard - Intel Core 2 Duo

The problem is significantly worse on the Windows platform. On both platforms, distortion can be seen in the FFT view after 128.0s. But on Windows, after 256.0s an extremely audible buzzing begins. I presume this is because there are differences in the floating point code generated by the Visual Studio and gcc compilers?

This makes it next to impossible to use ADSR style envelopes on parameters, since they cannot be relied upon without introducing distortion.

I have attached a regression HTML page which demonstrates the problem.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list