module Csound.Air.Filter(
lp1, hp1,
lp, hp, bp, br, alp,
bp2, br2,
blp, bhp, bbp, bbr,
ResonFilter, FlatFilter,
filt, flatFilt, toReson,
mlp, mlp2, mlp3, lp18, ladder,
formant, singA, singO, singE, singU, singO2,
smooth, slide,
alp1, alp2, alp3, alp4, ahp,
zdf1, zlp1, zhp1, zap1,
zdf2, zlp, zhp, zbp, zubp, zbr, zap, zpeak,
zladder,
lpCheb1, lpCheb1', lpCheb2, lpCheb2', clp, clp',
bpCheb1, bpCheb1', bpCheb2, bpCheb2', cbp, cbp',
hpCheb1, hpCheb1', hpCheb2, hpCheb2', chp, chp',
cheb1, cheb2, vcf,
cheb1', cheb2', vcf',
plastic, wobble, trumpy, harsh,
tbf, diode, fdiode, linDiode,
linKorg_lp, linKorg_hp, linKorg_bp, korg_lp, korg_hp, korg_bp,
klp, khp, kbp,
slp, shp, sbp, sbr,
multiStatevar, multiSvfilter
) where
import Csound.Typed
import Csound.SigSpace(bat)
import Csound.Typed.Opcode
lp :: Sig -> Sig -> Sig -> Sig
lp :: Sig -> Sig -> Sig -> Sig
lp Sig
cf Sig
q Sig
a = Sig -> Sig -> Sig -> Sig
bqrez Sig
a Sig
cf Sig
q
hp :: Sig -> Sig -> Sig -> Sig
hp :: Sig -> Sig -> Sig -> Sig
hp Sig
cf Sig
q Sig
a = Sig -> Sig -> Sig -> Sig
bqrez Sig
a Sig
cf Sig
q Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
1
bp :: Sig -> Sig -> Sig -> Sig
bp :: Sig -> Sig -> Sig -> Sig
bp Sig
cf Sig
q Sig
a = Sig -> Sig -> Sig -> Sig
bqrez Sig
a Sig
cf Sig
q Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
2
br :: Sig -> Sig -> Sig -> Sig
br :: Sig -> Sig -> Sig -> Sig
br Sig
cf Sig
q Sig
a = Sig -> Sig -> Sig -> Sig
bqrez Sig
a Sig
cf Sig
q Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
3
alp :: Sig -> Sig -> Sig -> Sig
alp :: Sig -> Sig -> Sig -> Sig
alp Sig
cf Sig
q Sig
a = Sig -> Sig -> Sig -> Sig
bqrez Sig
a Sig
cf Sig
q Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
4
bhp :: Sig -> Sig -> Sig
bhp :: Sig -> Sig -> Sig
bhp = (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig
forall a b c. (a -> b -> c) -> b -> a -> c
flip Sig -> Sig -> Sig
buthp
blp :: Sig -> Sig -> Sig
blp :: Sig -> Sig -> Sig
blp = (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig
forall a b c. (a -> b -> c) -> b -> a -> c
flip Sig -> Sig -> Sig
butlp
bbp :: Sig -> Sig -> Sig -> Sig
bbp :: Sig -> Sig -> Sig -> Sig
bbp Sig
freq Sig
band Sig
a = Sig -> Sig -> Sig -> Sig
butbp Sig
a Sig
freq Sig
band
bbr :: Sig -> Sig -> Sig -> Sig
bbr :: Sig -> Sig -> Sig -> Sig
bbr Sig
freq Sig
band Sig
a = Sig -> Sig -> Sig -> Sig
butbr Sig
a Sig
freq Sig
band
mlp :: Sig -> Sig -> Sig -> Sig
mlp :: Sig -> Sig -> Sig -> Sig
mlp Sig
cf Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
moogvcf Sig
asig Sig
cf Sig
q
slide :: Sig -> Sig -> Sig
slide :: Sig -> Sig -> Sig
slide = (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig
forall a b c. (a -> b -> c) -> b -> a -> c
flip Sig -> Sig -> Sig
lineto
smooth :: Sig -> Sig -> Sig
smooth :: Sig -> Sig -> Sig
smooth = (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig
forall a b c. (a -> b -> c) -> b -> a -> c
flip Sig -> Sig -> Sig
portk
type ResonFilter = Sig -> Sig -> Sig -> Sig
type FlatFilter = Sig -> Sig -> Sig
toReson :: FlatFilter -> ResonFilter
toReson :: (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
toReson Sig -> Sig -> Sig
f = \Sig
cfq Sig
_res -> Sig -> Sig -> Sig
f Sig
cfq
filt :: Int -> ResonFilter -> ResonFilter
filt :: Int -> (Sig -> Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
filt Int
n Sig -> Sig -> Sig -> Sig
f Sig
cfq Sig
q Sig
asig = (((Sig -> Sig) -> (Sig -> Sig) -> Sig -> Sig)
-> (Sig -> Sig) -> [Sig -> Sig] -> Sig -> Sig
forall b a. (b -> a -> b) -> b -> [a] -> b
forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
foldl (Sig -> Sig) -> (Sig -> Sig) -> Sig -> Sig
forall b c a. (b -> c) -> (a -> b) -> a -> c
(.) Sig -> Sig
forall a. a -> a
id ([Sig -> Sig] -> Sig -> Sig) -> [Sig -> Sig] -> Sig -> Sig
forall a b. (a -> b) -> a -> b
$ Int -> (Sig -> Sig) -> [Sig -> Sig]
forall a. Int -> a -> [a]
replicate Int
n (Sig -> Sig -> Sig -> Sig
f Sig
cfq Sig
q)) Sig
asig
flatFilt :: Int -> FlatFilter -> FlatFilter
flatFilt :: Int -> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig
flatFilt Int
n Sig -> Sig -> Sig
f Sig
cfq Sig
asig = (((Sig -> Sig) -> (Sig -> Sig) -> Sig -> Sig)
-> (Sig -> Sig) -> [Sig -> Sig] -> Sig -> Sig
forall b a. (b -> a -> b) -> b -> [a] -> b
forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
foldl (Sig -> Sig) -> (Sig -> Sig) -> Sig -> Sig
forall b c a. (b -> c) -> (a -> b) -> a -> c
(.) Sig -> Sig
forall a. a -> a
id ([Sig -> Sig] -> Sig -> Sig) -> [Sig -> Sig] -> Sig -> Sig
forall a b. (a -> b) -> a -> b
$ Int -> (Sig -> Sig) -> [Sig -> Sig]
forall a. Int -> a -> [a]
replicate Int
n (Sig -> Sig -> Sig
f Sig
cfq)) Sig
asig
lp18 :: Sig -> Sig -> Sig -> Sig -> Sig
lp18 :: Sig -> Sig -> Sig -> Sig -> Sig
lp18 Sig
dist Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig -> Sig
lpf18 Sig
asig Sig
cfq Sig
q Sig
dist
mlp2 :: Sig -> Sig -> Sig -> Sig
mlp2 :: Sig -> Sig -> Sig -> Sig
mlp2 Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
moogladder Sig
asig Sig
cfq Sig
q
mlp3 :: Sig -> Sig -> Sig -> Sig
mlp3 :: Sig -> Sig -> Sig -> Sig
mlp3 = Sig -> Sig -> Sig -> Sig -> Sig
lp18 Sig
0
lp1 :: Sig -> Sig -> Sig
lp1 :: Sig -> Sig -> Sig
lp1 Sig
cfq Sig
asig = Sig -> Sig -> Sig
tone Sig
asig Sig
cfq
hp1 :: Sig -> Sig -> Sig
hp1 :: Sig -> Sig -> Sig
hp1 Sig
cfq Sig
asig = Sig -> Sig -> Sig
atone Sig
asig Sig
cfq
bp2 :: Sig -> Sig -> Sig -> Sig
bp2 :: Sig -> Sig -> Sig -> Sig
bp2 Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
reson Sig
asig Sig
cfq Sig
q
br2 :: Sig -> Sig -> Sig -> Sig
br2 :: Sig -> Sig -> Sig -> Sig
br2 Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
areson Sig
asig Sig
cfq Sig
q
formant :: ResonFilter -> [(Sig, Sig)] -> Sig -> Sig
formant :: (Sig -> Sig -> Sig -> Sig) -> [(Sig, Sig)] -> Sig -> Sig
formant Sig -> Sig -> Sig -> Sig
f [(Sig, Sig)]
qs Sig
asig = [Sig] -> Sig
forall a. Num a => [a] -> a
forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a
sum (((Sig, Sig) -> Sig) -> [(Sig, Sig)] -> [Sig]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (( (Sig -> Sig) -> Sig -> Sig
forall a b. (a -> b) -> a -> b
$ Sig
asig) ((Sig -> Sig) -> Sig)
-> ((Sig, Sig) -> Sig -> Sig) -> (Sig, Sig) -> Sig
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Sig -> Sig -> Sig -> Sig) -> (Sig, Sig) -> Sig -> Sig
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Sig -> Sig -> Sig -> Sig
f) [(Sig, Sig)]
qs)
singA :: Sig -> Sig
singA :: Sig -> Sig
singA = (Sig -> Sig) -> Sig -> AtOut Sig Sig Sig
forall a b. At Sig a b => (Sig -> a) -> b -> AtOut Sig a b
bat ((Sig -> Sig -> Sig -> Sig) -> [(Sig, Sig)] -> Sig -> Sig
formant Sig -> Sig -> Sig -> Sig
bp2 [(Sig, Sig)]
anA)
singO :: Sig -> Sig
singO :: Sig -> Sig
singO = (Sig -> Sig) -> Sig -> AtOut Sig Sig Sig
forall a b. At Sig a b => (Sig -> a) -> b -> AtOut Sig a b
bat ((Sig -> Sig -> Sig -> Sig) -> [(Sig, Sig)] -> Sig -> Sig
formant Sig -> Sig -> Sig -> Sig
bp2 [(Sig, Sig)]
anO)
singE :: Sig -> Sig
singE :: Sig -> Sig
singE = (Sig -> Sig) -> Sig -> AtOut Sig Sig Sig
forall a b. At Sig a b => (Sig -> a) -> b -> AtOut Sig a b
bat ((Sig -> Sig -> Sig -> Sig) -> [(Sig, Sig)] -> Sig -> Sig
formant Sig -> Sig -> Sig -> Sig
bp2 [(Sig, Sig)]
anE)
singU :: Sig -> Sig
singU :: Sig -> Sig
singU = (Sig -> Sig) -> Sig -> AtOut Sig Sig Sig
forall a b. At Sig a b => (Sig -> a) -> b -> AtOut Sig a b
bat ((Sig -> Sig -> Sig -> Sig) -> [(Sig, Sig)] -> Sig -> Sig
formant Sig -> Sig -> Sig -> Sig
bp2 [(Sig, Sig)]
anIY)
singO2 :: Sig -> Sig
singO2 :: Sig -> Sig
singO2 = (Sig -> Sig) -> Sig -> AtOut Sig Sig Sig
forall a b. At Sig a b => (Sig -> a) -> b -> AtOut Sig a b
bat ((Sig -> Sig -> Sig -> Sig) -> [(Sig, Sig)] -> Sig -> Sig
formant Sig -> Sig -> Sig -> Sig
bp2 [(Sig, Sig)]
anO2)
anO, anA, anE, anIY, anO2 :: [(Sig, Sig)]
anO :: [(Sig, Sig)]
anO = [(Sig
280, Sig
20), (Sig
650, Sig
25), (Sig
2200, Sig
30), (Sig
3450, Sig
40), (Sig
4500, Sig
50)]
anA :: [(Sig, Sig)]
anA = [(Sig
650, Sig
50), (Sig
1100, Sig
50), (Sig
2860, Sig
50), (Sig
3300, Sig
50), (Sig
4500, Sig
50)]
anE :: [(Sig, Sig)]
anE = [(Sig
500, Sig
50), (Sig
1750, Sig
50), (Sig
2450, Sig
50), (Sig
3350, Sig
50), (Sig
5000, Sig
50)]
anIY :: [(Sig, Sig)]
anIY = [(Sig
330, Sig
50), (Sig
2000, Sig
50), (Sig
2800, Sig
50), (Sig
3650, Sig
50), (Sig
5000, Sig
50)]
anO2 :: [(Sig, Sig)]
anO2 = [(Sig
400, Sig
50), (Sig
840, Sig
50), (Sig
2800, Sig
50), (Sig
3250, Sig
50), (Sig
4500, Sig
50)]
alp1 :: Sig -> Sig -> Sig -> Sig
alp1 :: Sig -> Sig -> Sig -> Sig
alp1 Sig
freq Sig
resonance Sig
asig = Sig -> Sig -> Sig -> Sig
mvclpf1 Sig
asig Sig
freq Sig
resonance
alp2 :: Sig -> Sig -> Sig -> Sig
alp2 :: Sig -> Sig -> Sig -> Sig
alp2 Sig
freq Sig
resonance Sig
asig = Sig -> Sig -> Sig -> Sig
mvclpf2 Sig
asig Sig
freq Sig
resonance
alp3 :: Sig -> Sig -> Sig -> Sig
alp3 :: Sig -> Sig -> Sig -> Sig
alp3 Sig
freq Sig
resonance Sig
asig = Sig -> Sig -> Sig -> Sig
mvclpf3 Sig
asig Sig
freq Sig
resonance
alp4 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
alp4 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
alp4 Sig
freq Sig
resonance Sig
asig = Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
mvclpf4 Sig
asig Sig
freq Sig
resonance
ahp :: Sig -> Sig -> Sig
ahp :: Sig -> Sig -> Sig
ahp Sig
freq Sig
asig = Sig -> Sig -> Sig
mvchpf Sig
asig Sig
freq
lpCheb1 :: Sig -> Sig -> Sig
lpCheb1 :: Sig -> Sig -> Sig
lpCheb1 = D -> Sig -> Sig -> Sig
lpCheb1' D
2
lpCheb1' :: D -> Sig -> Sig -> Sig
lpCheb1' :: D -> Sig -> Sig -> Sig
lpCheb1' D
npoles Sig
kcf Sig
asig = Sig -> Sig -> D -> D -> Sig
clfilt Sig
asig Sig
kcf D
0 D
npoles Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
1
lpCheb2 :: Sig -> Sig -> Sig
lpCheb2 :: Sig -> Sig -> Sig
lpCheb2 = D -> Sig -> Sig -> Sig
lpCheb2' D
2
lpCheb2' :: D -> Sig -> Sig -> Sig
lpCheb2' :: D -> Sig -> Sig -> Sig
lpCheb2' D
npoles Sig
kcf Sig
asig = Sig -> Sig -> D -> D -> Sig
clfilt Sig
asig Sig
kcf D
0 D
npoles Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
2
clp :: Sig -> Sig -> Sig
clp :: Sig -> Sig -> Sig
clp = D -> Sig -> Sig -> Sig
clp' D
2
clp' :: D -> Sig -> Sig -> Sig
clp' :: D -> Sig -> Sig -> Sig
clp' D
npoles Sig
kcf Sig
asig = Sig -> Sig -> D -> D -> Sig
clfilt Sig
asig Sig
kcf D
0 D
npoles Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
0
hpCheb1 :: Sig -> Sig -> Sig
hpCheb1 :: Sig -> Sig -> Sig
hpCheb1 = D -> Sig -> Sig -> Sig
hpCheb1' D
2
hpCheb1' :: D -> Sig -> Sig -> Sig
hpCheb1' :: D -> Sig -> Sig -> Sig
hpCheb1' D
npoles Sig
kcf Sig
asig = Sig -> Sig -> D -> D -> Sig
clfilt Sig
asig Sig
kcf D
1 D
npoles Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
1
hpCheb2 :: Sig -> Sig -> Sig
hpCheb2 :: Sig -> Sig -> Sig
hpCheb2 = D -> Sig -> Sig -> Sig
hpCheb2' D
2
hpCheb2' :: D -> Sig -> Sig -> Sig
hpCheb2' :: D -> Sig -> Sig -> Sig
hpCheb2' D
npoles Sig
kcf Sig
asig = Sig -> Sig -> D -> D -> Sig
clfilt Sig
asig Sig
kcf D
1 D
npoles Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
2
chp :: Sig -> Sig -> Sig
chp :: Sig -> Sig -> Sig
chp = D -> Sig -> Sig -> Sig
clp' D
2
chp' :: D -> Sig -> Sig -> Sig
chp' :: D -> Sig -> Sig -> Sig
chp' D
npoles Sig
kcf Sig
asig = Sig -> Sig -> D -> D -> Sig
clfilt Sig
asig Sig
kcf D
1 D
npoles Sig -> D -> Sig
forall a. Tuple a => a -> D -> a
`withD` D
0
mkBp :: FlatFilter -> FlatFilter -> Sig -> Sig -> Sig -> Sig
mkBp :: (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkBp Sig -> Sig -> Sig
lowPass Sig -> Sig -> Sig
highPass Sig
cfq Sig
bw Sig
asig = Sig -> Sig -> Sig
highPass (Sig
cfq Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
- Sig
rad) (Sig -> Sig) -> Sig -> Sig
forall a b. (a -> b) -> a -> b
$ Sig -> Sig -> Sig
lowPass (Sig
cfq Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
rad) Sig
asig
where rad :: Sig
rad = Sig
bw Sig -> Sig -> Sig
forall a. Fractional a => a -> a -> a
/ Sig
2
bpCheb1 :: Sig -> Sig -> Sig -> Sig
bpCheb1 :: Sig -> Sig -> Sig -> Sig
bpCheb1 = D -> Sig -> Sig -> Sig -> Sig
bpCheb1' D
2
bpCheb1' :: D -> Sig -> Sig -> Sig -> Sig
bpCheb1' :: D -> Sig -> Sig -> Sig -> Sig
bpCheb1' D
npoles = (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkBp (D -> Sig -> Sig -> Sig
lpCheb1' D
npoles) (D -> Sig -> Sig -> Sig
hpCheb1' D
npoles)
bpCheb2 :: Sig -> Sig -> Sig -> Sig
bpCheb2 :: Sig -> Sig -> Sig -> Sig
bpCheb2 = D -> Sig -> Sig -> Sig -> Sig
bpCheb2' D
2
bpCheb2' :: D -> Sig -> Sig -> Sig -> Sig
bpCheb2' :: D -> Sig -> Sig -> Sig -> Sig
bpCheb2' D
npoles = (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkBp (D -> Sig -> Sig -> Sig
lpCheb2' D
npoles) (D -> Sig -> Sig -> Sig
hpCheb2' D
npoles)
cbp :: Sig -> Sig -> Sig -> Sig
cbp :: Sig -> Sig -> Sig -> Sig
cbp = D -> Sig -> Sig -> Sig -> Sig
cbp' D
2
cbp' :: D -> Sig -> Sig -> Sig -> Sig
cbp' :: D -> Sig -> Sig -> Sig -> Sig
cbp' D
npoles = (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkBp (D -> Sig -> Sig -> Sig
clp' D
npoles) (D -> Sig -> Sig -> Sig
chp' D
npoles)
mkReson :: FlatFilter -> FlatFilter -> ResonFilter
mkReson :: (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkReson Sig -> Sig -> Sig
lowPass Sig -> Sig -> Sig
highPass Sig
kcf Sig
res Sig
asig = Sig
0.5 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* (Sig -> Sig -> Sig
lowPass (Sig
kcf Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
2) Sig
asig Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig -> Sig -> Sig -> Sig
bandPass Sig
bw Sig
kcf Sig
asig)
where
bw :: Sig
bw = Sig
kcf Sig -> Sig -> Sig
forall a. Fractional a => a -> a -> a
/ (Sig
0.001 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig -> Sig
forall a. Num a => a -> a
abs Sig
res)
bandPass :: Sig -> Sig -> Sig -> Sig
bandPass = (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkBp Sig -> Sig -> Sig
lowPass Sig -> Sig -> Sig
highPass
cheb1 :: Sig -> Sig -> Sig -> Sig
cheb1 :: Sig -> Sig -> Sig -> Sig
cheb1 = D -> Sig -> Sig -> Sig -> Sig
cheb1' D
2
cheb1' :: D -> Sig -> Sig -> Sig -> Sig
cheb1' :: D -> Sig -> Sig -> Sig -> Sig
cheb1' D
npoles = (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkReson (D -> Sig -> Sig -> Sig
lpCheb1' D
npoles) (D -> Sig -> Sig -> Sig
hpCheb1' D
npoles)
cheb2 :: Sig -> Sig -> Sig -> Sig
cheb2 :: Sig -> Sig -> Sig -> Sig
cheb2 = D -> Sig -> Sig -> Sig -> Sig
cheb2' D
2
cheb2' :: D -> Sig -> Sig -> Sig -> Sig
cheb2' :: D -> Sig -> Sig -> Sig -> Sig
cheb2' D
npoles = (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkReson (D -> Sig -> Sig -> Sig
lpCheb2' D
npoles) (D -> Sig -> Sig -> Sig
hpCheb2' D
npoles)
vcf :: Sig -> Sig -> Sig -> Sig
vcf :: Sig -> Sig -> Sig -> Sig
vcf = D -> Sig -> Sig -> Sig -> Sig
cbp' D
2
vcf' :: D -> Sig -> Sig -> Sig -> Sig
vcf' :: D -> Sig -> Sig -> Sig -> Sig
vcf' D
npoles = (Sig -> Sig -> Sig)
-> (Sig -> Sig -> Sig) -> Sig -> Sig -> Sig -> Sig
mkReson (D -> Sig -> Sig -> Sig
clp' D
npoles) (D -> Sig -> Sig -> Sig
chp' D
npoles)
ladder :: Sig -> Sig -> Sig -> Sig
ladder :: Sig -> Sig -> Sig -> Sig
ladder Sig
kcf Sig
res Sig
asig = Sig -> Sig -> Sig -> Sig
moogladder Sig
asig Sig
kcf Sig
res
plastic :: Sig -> Sig -> Sig -> Sig
plastic :: Sig -> Sig -> Sig -> Sig
plastic Sig
kcf Sig
res Sig
asig = Sig -> Sig -> Sig -> Sig
rezzy Sig
asig Sig
kcf (Sig
1 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
99 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
res)
wobble :: Sig -> Sig -> Sig -> Sig
wobble :: Sig -> Sig -> Sig -> Sig
wobble Sig
kcf Sig
res Sig
asig = Sig -> Sig -> Sig -> Sig
lowres Sig
asig Sig
kcf Sig
res
trumpy :: Sig -> Sig -> Sig -> Sig
trumpy :: Sig -> Sig -> Sig -> Sig
trumpy Sig
kcf Sig
res Sig
asig = Sig -> Sig -> Sig -> D -> Sig -> Sig
vlowres Sig
asig Sig
kcf (Sig
resSig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
0.15) D
6 (Sig
4 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
res Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
20)
harsh :: Sig -> Sig -> Sig -> Sig
harsh :: Sig -> Sig -> Sig -> Sig
harsh Sig
kcf Sig
res Sig
asig = (Sig -> Sig) -> Sig -> AtOut Sig Sig Sig
forall a b. At Sig a b => (Sig -> a) -> b -> AtOut Sig a b
bat (\Sig
x -> Sig -> Sig -> Sig -> Sig
bqrez Sig
x Sig
kcf (Sig
1 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
90 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
res)) Sig
asig
tbf :: Sig -> Sig -> Sig -> Sig -> Sig
tbf :: Sig -> Sig -> Sig -> Sig -> Sig
tbf Sig
dist Sig
kcf Sig
res Sig
asig = Sig -> Sig -> Sig -> Sig -> Sig -> Sig
tbvcf Sig
asig (Sig
1010 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
kcf) Sig
res (Sig
0.5 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
3.5 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
dist) Sig
0.5
slp :: Sig -> Sig -> Sig -> Sig
slp :: Sig -> Sig -> Sig -> Sig
slp Sig
kcf Sig
res Sig
asig = Sig
lows
where (Sig
_, Sig
lows, Sig
_, Sig
_) = Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
statevar Sig
asig Sig
kcf Sig
res
shp :: Sig -> Sig -> Sig -> Sig
shp :: Sig -> Sig -> Sig -> Sig
shp Sig
kcf Sig
res Sig
asig = Sig
highs
where (Sig
highs, Sig
_, Sig
_, Sig
_) = Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
statevar Sig
asig Sig
kcf Sig
res
sbp :: Sig -> Sig -> Sig -> Sig
sbp :: Sig -> Sig -> Sig -> Sig
sbp Sig
kcf Sig
res Sig
asig = Sig
mids
where (Sig
_, Sig
_, Sig
mids, Sig
_) = Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
statevar Sig
asig Sig
kcf Sig
res
sbr :: Sig -> Sig -> Sig -> Sig
sbr :: Sig -> Sig -> Sig -> Sig
sbr Sig
kcf Sig
res Sig
asig = Sig
sides
where (Sig
_, Sig
_, Sig
_, Sig
sides) = Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
statevar Sig
asig Sig
kcf Sig
res
multiStatevar :: (Sig, Sig, Sig) -> Sig -> Sig -> Sig -> Sig
multiStatevar :: (Sig, Sig, Sig) -> Sig -> Sig -> Sig -> Sig
multiStatevar (Sig
weightLows, Sig
wieghtHighs, Sig
weightMids) Sig
kcf Sig
res Sig
asig = Sig
weightLows Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
lows Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
wieghtHighs Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
highs Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
weightMids Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
mids
where (Sig
highs, Sig
lows, Sig
mids, Sig
_) = Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
statevar Sig
asig Sig
kcf Sig
res
multiSvfilter :: (Sig, Sig, Sig) -> Sig -> Sig -> Sig -> Sig
multiSvfilter :: (Sig, Sig, Sig) -> Sig -> Sig -> Sig -> Sig
multiSvfilter (Sig
weightLows, Sig
wieghtHighs, Sig
weightMids) Sig
kcf Sig
res Sig
asig = Sig
weightLows Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
lows Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
wieghtHighs Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
highs Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
weightMids Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
mids
where (Sig
highs, Sig
lows, Sig
mids) = Sig -> Sig -> Sig -> (Sig, Sig, Sig)
svfilter Sig
asig Sig
kcf Sig
res
zdf1 :: Sig -> Sig -> (Sig, Sig)
zdf1 :: Sig -> Sig -> (Sig, Sig)
zdf1 Sig
cfq Sig
asig = Sig -> Sig -> (Sig, Sig)
zdf_1pole_mode Sig
asig Sig
cfq
zlp1 :: Sig -> Sig -> Sig
zlp1 :: Sig -> Sig -> Sig
zlp1 Sig
cfq Sig
asig = Sig -> Sig -> Sig
zdf_1pole Sig
asig Sig
cfq Sig -> Sig -> Sig
forall a. Tuple a => a -> Sig -> a
`withSig` Sig
0
zhp1 :: Sig -> Sig -> Sig
zhp1 :: Sig -> Sig -> Sig
zhp1 Sig
cfq Sig
asig = Sig -> Sig -> Sig
zdf_1pole Sig
asig Sig
cfq Sig -> Sig -> Sig
forall a. Tuple a => a -> Sig -> a
`withSig` Sig
1
zap1 :: Sig -> Sig -> Sig
zap1 :: Sig -> Sig -> Sig
zap1 Sig
cfq Sig
asig = Sig -> Sig -> Sig
zdf_1pole Sig
asig Sig
cfq Sig -> Sig -> Sig
forall a. Tuple a => a -> Sig -> a
`withSig` Sig
2
zdf2 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig)
zdf2 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig)
zdf2 Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> (Sig, Sig, Sig)
zdf_2pole_mode Sig
asig Sig
cfq (Sig -> Sig -> Sig -> Sig
forall a. SigSpace a => Sig -> Sig -> a -> a
uon Sig
0.5 Sig
25 Sig
q)
zpole2 :: Sig -> Sig -> Sig -> Sig -> Sig
zpole2 :: Sig -> Sig -> Sig -> Sig -> Sig
zpole2 Sig
n Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
zdf_2pole Sig
asig Sig
cfq (Sig -> Sig -> Sig -> Sig
forall a. SigSpace a => Sig -> Sig -> a -> a
uon Sig
0.5 Sig
25 Sig
q) Sig -> Sig -> Sig
forall a. Tuple a => a -> Sig -> a
`withSig` Sig
n
zlp :: Sig -> Sig -> Sig -> Sig
zlp :: Sig -> Sig -> Sig -> Sig
zlp = Sig -> Sig -> Sig -> Sig -> Sig
zpole2 Sig
0
zhp :: Sig -> Sig -> Sig -> Sig
zhp :: Sig -> Sig -> Sig -> Sig
zhp = Sig -> Sig -> Sig -> Sig -> Sig
zpole2 Sig
1
zbp :: Sig -> Sig -> Sig -> Sig
zbp :: Sig -> Sig -> Sig -> Sig
zbp = Sig -> Sig -> Sig -> Sig -> Sig
zpole2 Sig
2
zubp :: Sig -> Sig -> Sig -> Sig
zubp :: Sig -> Sig -> Sig -> Sig
zubp = Sig -> Sig -> Sig -> Sig -> Sig
zpole2 Sig
3
zbr :: Sig -> Sig -> Sig -> Sig
zbr :: Sig -> Sig -> Sig -> Sig
zbr = Sig -> Sig -> Sig -> Sig -> Sig
zpole2 Sig
4
zap :: Sig -> Sig -> Sig -> Sig
zap :: Sig -> Sig -> Sig -> Sig
zap = Sig -> Sig -> Sig -> Sig -> Sig
zpole2 Sig
5
zpeak :: Sig -> Sig -> Sig -> Sig
zpeak :: Sig -> Sig -> Sig -> Sig
zpeak = Sig -> Sig -> Sig -> Sig -> Sig
zpole2 Sig
6
zladder :: Sig -> Sig -> Sig -> Sig
zladder :: Sig -> Sig -> Sig -> Sig
zladder Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
zdf_ladder Sig
asig Sig
cfq (Sig -> Sig -> Sig -> Sig
forall a. SigSpace a => Sig -> Sig -> a -> a
uon Sig
0.5 Sig
25 Sig
q)
diode :: D -> Sig -> Sig -> Sig -> Sig
diode :: D -> Sig -> Sig -> Sig -> Sig
diode D
isaturation Sig
cfq Sig
fbk Sig
asig = Sig -> Sig -> Sig -> Sig
diode_ladder Sig
asig Sig
cfq (Sig
17 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
fbk) Sig -> [D] -> Sig
forall a. Tuple a => a -> [D] -> a
`withDs` [D
1, D
isaturation]
fdiode :: D -> Sig -> Sig -> Sig -> Sig
fdiode :: D -> Sig -> Sig -> Sig -> Sig
fdiode D
isaturation Sig
cfq Sig
fbk Sig
asig = Sig -> Sig -> Sig -> Sig
diode_ladder Sig
asig Sig
cfq (Sig
17 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
fbk) Sig -> [D] -> Sig
forall a. Tuple a => a -> [D] -> a
`withDs` [D
2, D
isaturation]
linDiode :: Sig -> Sig -> Sig -> Sig
linDiode :: Sig -> Sig -> Sig -> Sig
linDiode Sig
cfq Sig
fbk Sig
asig = Sig -> Sig -> Sig -> Sig
diode_ladder Sig
asig Sig
cfq (Sig
17 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
fbk) Sig -> [D] -> Sig
forall a. Tuple a => a -> [D] -> a
`withDs` [D
0]
korg_lp :: D -> Sig -> Sig -> Sig -> Sig
korg_lp :: D -> Sig -> Sig -> Sig -> Sig
korg_lp D
isaturation Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
k35_lpf Sig
asig Sig
cfq (Sig -> Sig -> Sig -> Sig
forall a. SigSpace a => Sig -> Sig -> a -> a
uon Sig
1 Sig
10 Sig
q) Sig -> [D] -> Sig
forall a. Tuple a => a -> [D] -> a
`withDs` [D
1, D
isaturation]
korg_hp :: D -> Sig -> Sig -> Sig -> Sig
korg_hp :: D -> Sig -> Sig -> Sig -> Sig
korg_hp D
isaturation Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
k35_hpf Sig
asig Sig
cfq (Sig -> Sig -> Sig -> Sig
forall a. SigSpace a => Sig -> Sig -> a -> a
uon Sig
1 Sig
10 Sig
q) Sig -> [D] -> Sig
forall a. Tuple a => a -> [D] -> a
`withDs` [D
1, D
isaturation]
korg_bp :: D -> Sig -> Sig -> Sig -> Sig
korg_bp :: D -> Sig -> Sig -> Sig -> Sig
korg_bp D
isaturation Sig
cfq Sig
q Sig
asig = D -> Sig -> Sig -> Sig -> Sig
korg_hp D
isaturation Sig
cfq Sig
q (Sig -> Sig) -> Sig -> Sig
forall a b. (a -> b) -> a -> b
$ D -> Sig -> Sig -> Sig -> Sig
korg_lp D
isaturation Sig
cfq Sig
q Sig
asig
linKorg_lp :: Sig -> Sig -> Sig -> Sig
linKorg_lp :: Sig -> Sig -> Sig -> Sig
linKorg_lp Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
k35_lpf Sig
asig Sig
cfq (Sig -> Sig -> Sig -> Sig
forall a. SigSpace a => Sig -> Sig -> a -> a
uon Sig
1 Sig
10 Sig
q) Sig -> [D] -> Sig
forall a. Tuple a => a -> [D] -> a
`withDs` [D
0]
linKorg_hp :: Sig -> Sig -> Sig -> Sig
linKorg_hp :: Sig -> Sig -> Sig -> Sig
linKorg_hp Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
k35_hpf Sig
asig Sig
cfq (Sig -> Sig -> Sig -> Sig
forall a. SigSpace a => Sig -> Sig -> a -> a
uon Sig
1 Sig
10 Sig
q) Sig -> [D] -> Sig
forall a. Tuple a => a -> [D] -> a
`withDs` [D
0]
linKorg_bp :: Sig -> Sig -> Sig -> Sig
linKorg_bp :: Sig -> Sig -> Sig -> Sig
linKorg_bp Sig
cfq Sig
q Sig
asig = Sig -> Sig -> Sig -> Sig
linKorg_hp Sig
cfq Sig
q (Sig -> Sig) -> Sig -> Sig
forall a b. (a -> b) -> a -> b
$ Sig -> Sig -> Sig -> Sig
linKorg_lp Sig
cfq Sig
q Sig
asig
klp :: D -> Sig -> Sig -> Sig -> Sig
klp :: D -> Sig -> Sig -> Sig -> Sig
klp = D -> Sig -> Sig -> Sig -> Sig
korg_lp
khp :: D -> Sig -> Sig -> Sig -> Sig
khp :: D -> Sig -> Sig -> Sig -> Sig
khp = D -> Sig -> Sig -> Sig -> Sig
korg_hp
kbp :: D -> Sig -> Sig -> Sig -> Sig
kbp :: D -> Sig -> Sig -> Sig -> Sig
kbp = D -> Sig -> Sig -> Sig -> Sig
korg_bp