The integrtator is an IIR LP filter, so it will produce a signal with a certain amount of DC as it has a pole at 0Hz. The code assumes this to be about 0.5 and tries to remove it. I'd say a more robust approach is to use a DC blocker.
Victor
----- Original Message -----
From: ebmtranceboy <ebmtranceboy@gmail.com>
Date: Wednesday, September 21, 2011 6:37 pm
Subject: [Csnd] unexpected integ offset
To: csound@lists.bath.ac.uk
> Hi all,
> Sorry in advance if this is not the right place to ask this kind of
> question.
> I'm trying to understand the following instrument and I'm
> puzzled by the
> "asaw = asawdc - .5" line
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> instr 1; band limited sawtooth wave
> ; coded by Josep M Comajuncosas / jan98
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> iamp
> = 10000; intended max. amplitude
> kenv linen 1, .2,p3,.2; volume envelope
> kfreq
> = cpspch(p4)
> ibound = sr/4;
> set it to sr/2 for true BL square wave
> apulse buzz 1, kfreq, ibound/kfreq, 1
> asawdc integ apulse
> asaw
> = asawdc - .5
> out asawdc*iamp*kenv
> endin
>
> Indeed, if the fundamental period is 2pi and N the number of required
> harmonics (ibound/kfreq in instr 1), buzz opcode provides a
> signal (assumely
> continuous)
>
> b(t) = (sum { cos(kt), k = 1.. N}) / N
>
> so, by integration,
>
> saw(t) = integ [b(u)du, u = 0..t]
> saw(t) = (sum { sin(kt) / k, k = 1.. N}) / N
>
> which is precisely the reconstruction of the signal whose Fourier
> coefficients are (N times smaller than) (1,1/2,1/3,...,1/N) that
> is just the
> asaw signal we're trying to build and I don't understand where
> the 1/2
> offset comes from.
>
> Is it a numerical (discrete signal) consequence ? If so, why
> this 1/2
> coefficient doesn't depend of N (setting ibound to sr/2 for
> example still
> requires the offset set to 1/2 to get the asaw expected).
>
> Help me with my maths please!
>
>
>
> --
> View this message in context:
> http://csound.1045644.n5.nabble.com/unexpected-integ-offset-
> tp4827197p4827197.htmlSent from the Csound - General mailing
> list archive at Nabble.com.
>
>
> Send bugs reports to the Sourceforge bug tracker
> https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body
> "unsubscribe csound"
>
Dr Victor Lazzarini, Senior Lecturer, Dept. of Music,
National University of Ireland, Maynooth