W3C home > Mailing lists > Public > public-audio@w3.org > July to September 2012

Re: Wavetable example?

From: Marcus Geelnard <mage@opera.com>
Date: Mon, 23 Jul 2012 09:34:01 +0200
To: "Peter van der Noord" <peterdunord@gmail.com>, "Ray Bellis" <ray@bellis.me.uk>
Cc: public-audio@w3.org
Message-ID: <op.whv1yzh4m77heq@mage-desktop>
Den 2012-07-22 20:17:06 skrev Ray Bellis <ray@bellis.me.uk>:

> On 22/07/2012 13:58, Peter van der Noord wrote:
>> Hmmm, my math knowledge isnt of the level that i have an immediate idea
>> about how that would work :)
> OK, here's a more concrete example.
> A square wave is defined as a series of the *odd* harmonics where the  
> contribution of each harmonic is inversely proportional to its harmonic  
> number.
> So the second, fourth, etc harmonics are all *zero*.
> The third harmonic is 1/3 the amplitude of the fundamental, and the  
> fifth is 1/5, etc.
> See http://en.wikipedia.org/wiki/Square_wave
> So the input "cos" table would just look like:
> [ 0, 1, 0, 1/3, 0, 1/5, 0, 1/7, 0, 1/9, ... ]
> The sin table for a square wave doesn't need any values because the  
> harmonics are all in phase.  So just use all zeroes.

That's right. Another way of thinking of it is that the WaveTable is  
essentially the Fourier transform of a time domain periodic signal. So, if  
you have a single period of a time domain signal that you want to use as a  
WaveTable, take the FFT of that signal and use the real portion as the cos  
table, and the imaginary portion as the sin table (haven't tried it, but  
it should work).


Marcus Geelnard
Core Graphics Developer
Opera Software ASA
Received on Monday, 23 July 2012 07:35:10 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 July 2012 07:35:11 GMT