dsp blog for xoxos.net

BLIT oscillators

leave a comment »

i was quite happy to achieve rapid success with BLIT (bandlimited impulse train) oscillators. i didn’t run into a pitfall i’d heard about.

or maybe i misheard – my instant success was frustrated by the realisation that pitch transitions to triangles (and other twice-integrated contours, eg. hyperbola) generate nasty artifacts – BIG transients in the integrator resulting in significant dc offsets.

so i have a few notes on BLITs:

itfp, what i have not seen mentioned elsewhere is scaling the integrator by the ratio of old omega and new omega. that’s fairly obvious, and thankfully, as simple as one could want.

it may be somewhat unfair of meto compare my implementation to another. i recorded the output to compare how triangle pitch transitions were handled. i discovered that that instrument only updated pitch between wavecycles – this may have been a contemporary method of reducing cpu, i misinterpreted it as a way of stabilising the integration. it’s not, at least as far as it seems to me.

what i do seem to have improved is an application of a high pass filter to the triangle integrator instead of to the signal. there are still artifacts on some note transitions (depending on phase and pitch) but they never offset the dc by more than half the amplitude of the wavecycle (which can probably be improved with a stronger filter).

so try that 🙂

top waveform is my first attempt at highpassing the integrator. lower waveform is a bad instance of another BLIT algorithm making a pitch transition, presumably with the signal highpassed (images captured separately, pitch is not to scale).


a nice example of the working algorithm. worst cases oscillate instead of having a single-sided dc offset, but rarely even halfway to clipping.


Written by xoxosvst

August 25, 2011 at 5:32 am

Posted in Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: