- From: Peter van der Noord <peterdunord@gmail.com>
- Date: Mon, 23 Jul 2012 11:17:10 +0200
- To: Marcus Geelnard <mage@opera.com>
- Cc: Ray Bellis <ray@bellis.me.uk>, public-audio@w3.org
- Message-ID: <CAL9tNz9L38YP9sCUyyDcREnkEpPf_9QZZ19-Z0m1Md4-7Bp=8A@mail.gmail.com>
Ah, i see. Thanks for those explanations, i learned something :) Peter 2012/7/23 Marcus Geelnard <mage@opera.com> > 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<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 ASA >
Received on Monday, 23 July 2012 09:17:45 UTC