W3C home > Mailing lists > Public > public-audio@w3.org > January to March 2017

Oscillator [square] suffer from severe alias

From: André Michelle <andre.michelle@audiotool.com>
Date: Sat, 4 Mar 2017 10:27:24 +0100
Message-Id: <BC174766-F9FE-4F6D-B9A7-422BC99CD580@audiotool.com>
To: Audio Working Group <public-audio@w3.org>
Hi all,


I am developing a bandlimited oscillator for our synthesiser in www.audiotool.com and could not get it quite right. I tested the web-audio-api as a reference and voila: There is alias as well.
http://jsbin.com/xebozar/edit?js,output

I downloaded the sources from here to reimplement it in Java to find the problem.
https://github.com/WebKit/webkit/blob/master/Source/WebCore/Modules/webaudio/OscillatorNode.cpp
https://github.com/WebKit/webkit/blob/master/Source/WebCore/Modules/webaudio/PeriodicWave.cpp

My port produces the exact same amount of alias at the same frequencies. The code in "PeriodicWave::waveDataForFundamentalFrequency" obviously chooses a table with too much harmonics but I could not find a fix and an obvious error. I could however replace the look-up code for a test, that it always returns the tables with just a single harmonic (sine-wave) and the alias is gone. That means that the wavetable size is big enough and the linear interpolation is working well.

Any thoughts on this?

~
André Michelle
http://www.audiotool.com
Received on Monday, 6 March 2017 10:24:13 UTC

This archive was generated by hypermail 2.3.1 : Monday, 6 March 2017 10:24:14 UTC