Forums > MaxMSP

Re: Re: The click~ object and band limited impulses…

Oct 15 2007 | 8:35 am

> how do you bandlimit a spike? that is always an interesting question.

from a paper by eli brandt: "A bandlimited impulse is a sinc
function, time-scaled so as to have one zero-crossing
per sample period."
you might want to read it a second time – well, at least, i had to
read it several times to understand…

basically this means, a single bandlimited impulse is identical to a
unit impulse, as the sample points fall on the
zero-crossings of the sinc function (so you don’t "see" it in the
sampled version).

it gets more complicated if you are interested in a series of closely
spaced impulses to generate harmonic sounds
(impulse train). as long as the fundamental period is an integer
multiple of the sampling rate, you are fine.
but with any other period, the impulses naturally will fall inbetween
sampling points, forcing us to interpolate –
otherwise heavy aliasing would occur. and that’s where the underlying
sinc-function becomes visible (and audible).

>> You can be creative about how you limit/modify the
>> bandwidth using any of the array of available filters on the output
>> of [click~].

there certainly is a lot of fun and creative potential in this
if the goal is to produce a bandlimited impulse _train_, though, you
will not get there by generating
a unit impulse and using available filters in msp.

i believe there is more than one way to do it right – i had some
success using DSF (discrete summation formulae).
yet, i haven’t seen an implementation only with native maxmsp objects.


Jan 15 2008 | 11:05 pm

Jan 16 2008 | 1:36 am

> Are impulses related to band limited impulses and how would I go about creating a band limited impulse using the click object if this were the case?

There was an object called blit~ that did that:

It seems like development has stopped, though. Get me the source and I’ll try to port it.


Jan 16 2008 | 2:11 pm

Jan 17 2008 | 12:52 pm

Jan 17 2008 | 6:28 pm

hi volker,

luigi’s blit is indeed more cpu friendly.
i’m curious to see how it runs on my intel machine (it’s in for repair atm)
at a freq of 10k they are about the same on the g4 machine i tested on today, at 1k the difference gets in the region of 400% and at low frequencies the difference runs up to approx 1000%.. Then again, your external actually behaves like it should at low freqs. it also seems to be constant in it’s cpu usage no matter what freq, which could be an advantage in some scenarios

as long a you just need a few blits yours is fine. if you need 50, maybe less fine :)

would be great if you one day could optimize it a bit, and maybe add a signalrate input while you are at it? a phase input to control the freq that way, synced to other oscillators, would be cool too

for now, i’m very happy with it though.
thanks again for sharing this with us.


Jan 18 2008 | 7:43 am

Quote: smill wrote on Wed, 10 October 2007 15:00
> a ‘perfect’ impulse would theoretically contain equal energy across the
> frequency spectrum of human hearing.

White noise also has equal energy across the spectrum. But it doesn’t make sense that an impulse and white noise would have the same spectrum, right? Can anyone explain?


Jan 18 2008 | 10:14 am

Adam Murray schrieb:
> White noise also has equal energy across the spectrum. But it doesn’t
> make sense that an impulse and white noise would have the same
> spectrum, right? Can anyone explain?

It has the same spectrum if you look at the magnitudes, but the impuls
has a defined phase relation between all these added cosines, that zeros
out the signal on all times but the initial moment…

noise has arbitrary phase relations…
The time structure is very dependent on the phases…

Look into literature about the fourier synthesis, its all explained


Stefan Tiedje————x——-
–(_|_ —-|—–|—–()——-
— _|_)—-|—–()————–

Viewing 8 posts - 1 through 8 (of 8 total)

Forums > MaxMSP