ISSUE-85: (Bugzilla 17404) Oscillator folding considerations


(Bugzilla 17404) Oscillator folding considerations

Web Audio API
Raised by:
Philip J├Ągenstedt
Opened on:
It is not defined how the time-domain signal of an oscillator is generated. It would appear that the main reason for WaveTable being defined in the frequency domain is to allow for Nyquist-correct signal synthesis. For example, if the Oscillator frequency is 1000 Hz and the WaveTable has length 4096, the highest frequency component will be 4096 KHz, which could cause folding artifacts.

Depending on how the time-domain signal is generated, the anti-aliasing performed would sound very different.

For example, if the signal is generated in the naive way be looping over the output for each frequency component, one could simply stop before the Nyquist frequency. However, this approach could be very slow.

If nothing is done to prevent folding, the purpose of having a frequency-domain WaveTable at all is questionable.

Finally, should the built-in types (SINE, SQUARE, etc) also be generated using WaveTables internally and be subject to the same folding processing as custom WaveTables?
Related Actions Items:
No related actions
Related emails:
  1. [web-audio-api] (OscillatorFolding): Oscillator folding considerations (#127) (from on 2013-09-11)
  2. Re: [web-audio-api] (OscillatorTypes): Oscillator types are not defined (#104) (from on 2013-09-11)
  3. [Bug 17366] (OscillatorTypes): Oscillator types are not defined (from on 2013-09-03)
  4. Re: third public Working Draft of the Web Audio API available (from on 2012-08-02)
  5. Re: Summary of issues (from on 2012-05-22)
  6. Summary of issues (from on 2012-05-22)
  7. Audio-ISSUE-85 (OscillatorFolding): Oscillator folding considerations [Web Audio API] (from on 2012-05-18)

Related notes:

More detailed background added:

Chris Rogers, 5 Jun 2012, 00:25:50


5 Jun 2012, 13:03:43

Display change log ATOM feed

Matthew Paradis <>, Raymond Toy <>, Chairs, Chris Lilley <>, Staff Contact
Tracker: documentation, (configuration for this group), originally developed by Dean Jackson, is developed and maintained by the Systems Team <>.
$Id: 85.html,v 1.1 2019/11/12 13:32:51 carcone Exp $