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>

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 -- Marcus Geelnard Core Graphics Developer Opera Software ASAReceived 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
*