```
d3
$ note
((scaleP scalePattern
$ (rotR 4)
$ (+ slow 8 "x" <~> ((0.25 ~>) generateMelodicSeed))
-- $ slow 4 \n
$ generateMelodicSeed
))#s "[pe-gtr:8,midi]" #gain 1.2 #orbit 2 #midichan 3
```

```
do
d9 $ midicmd "stop" # s "midi"
hush
```

```
d4
-- $ rev \n
$ note
((scaleP scalePattern
-- $ off 4 ((+ 2 ).slow 2) \n
-- $ off 1 (inversion.slow 2) \n
$(rotR 1.5 )
$(+ slow 8 "x" <~> generateMelodicSeed)
-- $ inversion \n
$ generateMelodicSeed
))#s "[pe-gtr:12,midi]" #gain 1.2 #orbit 3 #midichan 4
```

```
inversion = (* (-1))
```

index > /home/xinniw/Documents/garden/FIR
filter.md

# FIR filter

:cc0: A Finite Impulse Response (FIR) filter is a kind of digital filter that is implemented by a difference equation that references only past values of the input. A general form for a FIR filter is as follows:

$ y[n] = \sum_{i=0}^{p} a_{i}x[n-i] $

The values of the coefficients and the number of terms will determine the character of the filter.

FIR filters are always stable and they will not distort the phase relationships of the signal. However, to achieve steep cutoffs, many terms are required or many FIR filters must be put in series.

index > /home/xinniw/Documents/garden/FIR
filter.md