[Csnd] Re: Re: Re: creating a variable width pulse wave...
Date | 2009-11-10 02:17 |
From | michael.gogins@gmail.com |
Subject | [Csnd] Re: Re: Re: creating a variable width pulse wave... |
It's not that easy to get right, and that's why
there is an opcode. There are several ways.
You can have a set of wavetables, each of which
contains a bandlimited sum of harmonics, i.e. you assign a base frequency to
each table, then add partials to it only until you approach the Nyquist
frequency. This works very well if you use enough tables, and go almost up to
Nyquist with your partials. But it only works for static waveforms.
You can use a bandlimited interpolation (BLIP)
technique, where you shift, scale, and sum copies of a sinc signal to
reconstruct a desired waveform in a bandlimited manner. https://ccrma.stanford.edu/~jos/resample/Theory_Ideal_Bandlimited_Interpolation.html has
the math with a good illustration.
You can generate a bandlimited impulse train (BLIT)
and integrate it with a filter.
A more comprehensive summary is in https://ccrma.stanford.edu/~stilti/papers/blit.pdf.
You can oversample a wavetable, and then
low-pass filter.
There are variations on these themes, as
well.
Hope this helps,
Mike
----- Original Message -----
|