The HRTFPanner works reasonably well, but can have "zipper" artifacts when panning some source material. Interpolation between different panning positions can help this somewhat, with some added performance cost.
Created attachment 124389 [details] Patch
Comment on attachment 124389 [details] Patch Could you fix the Mac build failure?
Comment on attachment 124389 [details] Patch Attachment 124389 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/11349896
Created attachment 124409 [details] Patch
removed wrapDistance() to try to fix build errors.
Comment on attachment 124409 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=124409&action=review Looks fine overall; a few minor nits which you can fix upon landing. r=me > Source/WebCore/platform/audio/HRTFPanner.cpp:47 > +const int UnitializedAzimuth = -1; Typo: should be Uninitialized. > Source/WebCore/platform/audio/HRTFPanner.cpp:65 > + , m_tempL1(128) Please define and use a constant instead of the value 128. Could use it below too. > Source/WebCore/platform/audio/HRTFPanner.cpp:287 > + if (m_crossfadeIncr < 0 && fabs(m_crossfadeX) < -m_crossfadeIncr) { Could use an else if here.
Committed r106173: <http://trac.webkit.org/changeset/106173>