module Csound.Catalog.Wave.Flavio(
amFlavio, fmFlavio, simpleSust, simpleFading
) where
import Csound.Base
icero, icasi :: D
icero :: D
icero = D
0.000001
icasi :: D
icasi = D
0.0001
amFlavio :: D -> Sig -> Sig
amFlavio :: D -> Sig -> Sig
amFlavio D
irel1' Sig
cps = Sig
aout
where
irel1 :: D
irel1 = D
16
iamf :: Sig
iamf = Sig
1
irel2 :: D
irel2 = D
irel1 D -> D -> D
forall a. Num a => a -> a -> a
* D
0.7
kamp :: Sig
kamp = [D] -> D -> D -> Sig
expsegr [D
icero, D
0.05, D
1, D
1, D
0.7, D
irel1', D
icasi, D
irel2, D
icero] D
irel2 D
icero
aam :: Sig
aam = Sig
kamp Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig -> Sig
osc (Sig
iamf Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
cps)
aout :: Sig
aout = Sig
aam Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig -> Sig
osc Sig
cps
fmFlavio :: D -> Sig -> Sig -> Sig
fmFlavio :: D -> Sig -> Sig -> Sig
fmFlavio D
irel1 Sig
ifm Sig
cps = Sig
aout
where
irel2 :: D
irel2 = D
irel1 D -> D -> D
forall a. Num a => a -> a -> a
* D
0.5
idec :: D
idec = D
1
iatt :: D
iatt = D
0.01
(D
iidx1, D
iidx2, D
iidx3, D
iidx4, D
iidx5) = (D
4, D
4, D
4, D
4, D
3)
kamp :: Sig
kamp = [D] -> D -> D -> Sig
expsegr [D
icero, D
iatt, D
1, D
idec, D
0.7, D
irel1, D
icasi, D
irel2, D
icero] D
irel2 D
icero
kidx :: Sig
kidx = [D] -> D -> D -> Sig
linsegr [D
iidx1, D
iatt, D
iidx2, D
idec, D
iidx3, D
irel1, D
iidx4, D
irel2, D
iidx5] D
irel2 D
iidx5
afrq :: Sig
afrq = Sig
kidx Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig -> Sig
osc (Sig
ifm Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
cps)
aout :: Sig
aout = Sig
kamp Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig -> Sig
osc (Sig
cps Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* (Sig
1 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig
afrq))
simpleSust, simpleFading :: D -> (D, D) -> SE Sig2
simpleSust :: D -> (D, D) -> SE Sig2
simpleSust = D -> D -> D -> (D, D) -> SE Sig2
genSimple D
0.25 D
0.1
simpleFading :: D -> (D, D) -> SE Sig2
simpleFading = D -> D -> D -> (D, D) -> SE Sig2
genSimple D
icasi D
icero
genSimple :: D -> D -> D -> (D, D) -> SE Sig2
genSimple :: D -> D -> D -> (D, D) -> SE Sig2
genSimple D
isust1 D
isust2 D
irel (D
amp, D
dcps) = do
Sig
aleft <- (Sig -> Sig) -> SE Sig -> SE Sig
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Sig -> Sig
pureGen (SE Sig -> SE Sig) -> SE Sig -> SE Sig
forall a b. (a -> b) -> a -> b
$ Sig -> Sig -> SE Sig
forall a. SigOrD a => a -> a -> SE a
random Sig
1 (Sig
11 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* D -> Sig
sig D
amp)
Sig
aright <- (Sig -> Sig) -> SE Sig -> SE Sig
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Sig -> Sig
pureGen (SE Sig -> SE Sig) -> SE Sig -> SE Sig
forall a b. (a -> b) -> a -> b
$ Sig -> Sig -> SE Sig
forall a. SigOrD a => a -> a -> SE a
random Sig
1 (Sig
10.5 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* D -> Sig
sig D
amp)
Sig2 -> SE Sig2
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return (Sig
aleft, Sig
aright)
where
cps :: Sig
cps = D -> Sig
sig D
dcps
pureGen :: Sig -> Sig
pureGen Sig
ichr = Sig
aout
where
irel1 :: D
irel1 = D
irel D -> D -> D
forall a. Num a => a -> a -> a
* (D
0.5 D -> D -> D
forall a. Num a => a -> a -> a
+ D
amp)
idec :: D
idec = D
1
irel2 :: D
irel2 = D
0.75 D -> D -> D
forall a. Num a => a -> a -> a
* D
irel1
kamp :: Sig
kamp = [D] -> D -> D -> Sig
expsegr [D
1, D
idec, D
0.7, D
irel1, D
isust1, D
irel2, D
isust2] D
irel2 D
icero
kcf :: Sig
kcf = Sig
2 Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* D -> Sig
sig D
amp Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* [D] -> D -> D -> Sig
linsegr [D
3000, D
irel1 D -> D -> D
forall a. Num a => a -> a -> a
+ D
1, D
500] D
irel2 D
500
a3 :: Sig
a3 = Sig
kamp Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* (Sig -> Sig
osc (Sig
cps Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
- Sig
ichr) Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
+ Sig -> Sig
osc (Sig
cps Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
- Sig
ichr))Sig -> Sig -> Sig
forall a. Num a => a -> a -> a
* Sig
0.5
aout :: Sig
aout = Sig -> Sig -> Sig
blp Sig
kcf Sig
a3