band limited oscillators

Paul Maddox EMAIL HIDDEN
Sat Feb 7 09:25:39 CET 2009


Hi,

   There's a DSP mailing list, not sure if that's what you're after  
though.

Paul

On 6 Feb 2009, at 23:12, Jay Vaughan wrote:

> You are on. It.
>
> ;
> --
> ibi sum
> ::: top quotin' from the pocket :::
>
> On Feb 6, 2009, at 17:07, "M-.-n" <nostromo at arkaos.net> wrote:
>
>> I wish there was a software programming music related mailing list
>> but I've
>> never really seen any. Thanks for the feedback !
>>
>> -----Original Message-----
>> From: music-bar-bounces at lists.music-bar.org
>> [mailto:music-bar-bounces at lists.music-bar.org] On Behalf Of Tom Adam
>> Sent: vendredi 6 février 2009 13:09
>> To: Music-bar
>> Subject: Re: RE: band limited oscillators
>>
>> It is a cool list. Lately there were indeed a lot of SW related
>> topics.
>> If you want SW topics only, there are better list I guess.
>> I would say it's like 85% HW, rest is SW related.
>> There is an archive somewhere, but I don't have the link here. You
>> could
>> check this to see if it's your cup of tea.
>>
>> Cheers,
>> ToAd
>>
>>
>> On Feb 6, 2009 12:57 "M-.-n" <nostromo at arkaos.net> wrote:
>>> Thanks Chris, that’s a really interesting executive summary !
>>>
>>> How’s the list, I always thought it was mainly hw based but it se
>>> ems
>>> there’s some software one too… what’s the ratio between the
>>> two ? Should
>>> I join ?
>>>
>>> M.
>>>
>>> From:music-bar-bounces at lists.music-bar.org
>>> [mailto:music-bar-bounces at lists.music-bar.org] On Behalf OfChris
>>> Strellis
>>> Sent: vendredi 6 février 2009 9:25
>>> To: Music-bar
>>> Subject: RE: band limited oscillators
>>>
>>> I can offer some tips sent into the SDIY list recently from the  
>>> great
>>> Antti Huovilainen
>>>
>>> <http://antti.smartelectronix.com/>
>>>
>>> also <http://www.diy.synth.net/gallery/main.php?g2_itemId=1078>
>>> Synth
>>> DIY UK 2006
>>>
>>> Some DSP theory links here:
>>> http://www.chameleon.synth.net/english/links.shtml
>>>
>>>> I'm curious, what approach are you using to get 'alias free'
>>>> oscillators?
>>>> Simply using a much higher internal sampling rate and then a low
>>>> pass
>>>> FIR filter?  Or something more sophisticated than this.
>>>
>>> Since this question gets asked a lot, I'll list some of the common
>>> methods. Roughly from easy to hard. Oversampling here means proper
>>> oversampling with high quality lowpass filtering before decimating  
>>> to
>>> target samplerate. Simply averaging N samples will not work.
>>>
>>> 1) Trivial saw with oversampling
>>> Pros: Easy, can do any waveshape, allows simple sync and FM
>>> Cons: Requires massive (64..256x) oversampling to sound good
>>>
>>> 2) Sum of sines
>>> Sum nyquist/freq number of sines to produce exactly bandlimited
>>> sawtooth.
>>> Pros: No aliasing
>>> Cons: Too slow to be of use in practise.
>>>
>>> 3a) Differentiated parabole wave
>>> Synthesize parabole (diff(phase^2)*1/freq for -1 <= phase < 1).
>>> Aliasing
>>> falls at 12dB/oct (compared to 6dB/oct for trivial saw).
>>>
>>> Pros: Almost as easy as trivial saw. 1/freq can be derived from
>>> interpolated table lookup (store 1/freq for each note)
>>> Cons: diff(phase^2) can get very small for low frequencies
>>> requiring 24
>>> or
>>> 32 bit resolution. Requires 1.5-2x oversampling to avoid annoying
>>> warble
>>> between 10-20 kHz.
>>>
>>> 3b) Slewrate limited saw
>>> Use a trivial saw-tri pwm oscillator with the pulse width set to
>>> exactly
>>> one sample. Can be shown to be equivalent to 2a.
>>>
>>> Pros: Doesn't require frequency dependent scaling or high resolution
>>> computations.
>>> Cons: Same as 3a
>>>
>>> 3c) Other waveshaping methods
>>> Several other methods can be used to sample a smooth function and
>>> then
>>> warp the spectrum to resemble saw. Generally slower and more
>>> complicated
>>> than 2a or 2b.
>>>
>>> 4) Mipmapped wavetables
>>> Precalculate a version (mipmap) for each octave (or half octave)  
>>> with
>>> exact number of harmonics. Select nearest mipmap and interpolate the
>>> stored waveform on playback.
>>>
>>> Pros: Good quality with higher order interpolator or oversampling
>>> mipmaps.
>>> Can do arbitrary waveforms. Easy FM. Easy phase distortion.
>>> Cons: Needs lots of memory. Number of harmonics limited for low
>>> notes.
>>> Requires oversampling the mipmaps (using longer table than strictly
>>> required by the number of stored harmonics) or using high order  
>>> (FIR)
>>> interpolator. Requires oversampling or more mipmaps (half or quarter
>>> octave) to avoid missing frequencies between 15-20 kHz.
>>>
>>> 5a) BandLimited Impulse Trains (BLIT)
>>> Synthesize bandlimited impulse train and integrate that to produce
>>> saw.
>>>
>>> Pros: Good quality. No oversampling required.
>>> Cons: Complicated, slow, has numerical issues. Difficult to do FM,
>>> PWM
>>> or sync.
>>>
>>> 5b) BandLimited StEps (BLEP)
>>> For each oscillator reset, sum a bandlimited step with the trivial
>>> saw.
>>> The steps are precalculated and stored in a table (can be quite  
>>> short
>>> when interpolation is used between two phases.
>>>
>>> Pros: Very good quality. No oversampling required. Can do  
>>> bandlimited
>>> FM, PWM and sync. Probably the only method that can do audio rate  
>>> PWM
>>> and sync.
>>> Cons: Requires a divide per cycle. Can be complicated: calculating
>>> required table entry is not trivial when using sync or pwm.
>>>
>>> HTH
>>>
>>> Chris
>> _______________________________________________
>> music-bar mailing list
>> music-bar at lists.music-bar.org
>> http://lists.music-bar.org/cgi-bin/mailman/listinfo/music-bar
>>
>> _______________________________________________
>> music-bar mailing list
>> music-bar at lists.music-bar.org
>> http://lists.music-bar.org/cgi-bin/mailman/listinfo/music-bar
> _______________________________________________
> music-bar mailing list
> music-bar at lists.music-bar.org
> http://lists.music-bar.org/cgi-bin/mailman/listinfo/music-bar




More information about the music-bar mailing list