# [chuck-users] allpass filter/delay

Kassen signal.automatique at gmail.com
Tue Jan 8 14:09:28 EST 2013

```On Tue, Jan 08, 2013 at 12:09:02PM -0600, Michael Heuer wrote:
> Hello ChucKers,
>
> I got lost for several hours recently reading Sean Costello's The
> Halls of Valhalla blog
>

Looks nice and friendly.

>
> I can't help but think that if I could figure out the notation of say
> Moorer's Figure 2.30 above to the point where I might translate into
> higher level ChucK delays, gains, and filters I could get lost for
> several hours making strange reverbs in Chuck instead.  Can anyone
> help me get started?

Sure, for that diagram;

x(n) is your input signal

The "+" signs in the circles are points at which signals get summed

v(n) is the signal that enters the delay, it is a sum of x(n) and the
delay's output.

The rectangular block is a delay of M samples length. When DSP people
write "z-1" they are referring to the last sample (typically the last
output of the system). Pronounce; "z minus 1". Why do they write it up
high like it were taking the "-1th power"? I don't know. Maybe they
just want to make it all hard to read to make themselves seem smart,
maybe they just copy each other ;-) y(n) is the output signal (which
we hear).

b0 is the amount of feedforward; basically the amount of v(n) that
ends up in the output. "b" indices are feedforward, b0 means the
signal 0 samples ago.

-aM is the amount of (negative) feedback from the delayed signal. a
indices are as you might guess feedback, this is the output signal M
samples ago. Note that our filters also have member functions like
.a1(), .b0(), etc. Those are like this. If those go above 1 your ears
will hurt. Your ears might otherwise hurt too; please mind your
volume. If you are on OSX and use headphones put a mixer between your
ears and the output to turn down the volume instead of using the
software setting.

The arrows are the travelling signals and their direction. Black dots
are a splitting of the signal as it gets used twice.

It's not clear to me why that text doesn't explain the terms used in
the diagram; otherwise it is quite clear and friendly and if you ran
into those terms and notations before this text might not have that
much new info.

Anyway, you should now also be able to make some sense of our more
low-level filter UGens. As well as the docs and even internal code of