module Csound.Catalog.Wave.Fm( fmBass1, fmBass2 ) where import Csound.Base fmBass1 :: MonoAdsr -> (Sig, Sig) -> Sig fmBass1 :: MonoAdsr -> (Sig, Sig) -> Sig fmBass1 MonoAdsr env (Sig amp, Sig cps) = Sig -> Sig -> Sig bhp Sig 35 (Sig -> Sig) -> Sig -> Sig forall a b. (a -> b) -> a -> b $ MonoAdsr env Sig 0.01 Sig 3 Sig 0.01 Sig 0.05 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * (Sig -> D -> Sig port Sig amp D 0.01) Sig -> Sig -> Sig forall a. Num a => a -> a -> a * (\Sig x -> MonoAdsr fosc Sig 2 Sig 1 (Sig 1.5 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * MonoAdsr env Sig 0.01 Sig 0.5 Sig 0.5 Sig 0.05) Sig x Sig -> Sig -> Sig forall a. Num a => a -> a -> a + Sig 0.4 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig -> Sig osc (Sig x Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig 0.501)) (Sig cps Sig -> Sig -> Sig forall a. Num a => a -> a -> a * (let env1 :: Sig env1 = MonoAdsr env Sig 1.2 Sig 0.1 Sig 0.85 Sig 5 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * MonoAdsr env Sig 1.2 Sig 0.75 Sig 0.25 Sig 0.05 in Sig 1 Sig -> Sig -> Sig forall a. Num a => a -> a -> a + (Sig 0.02 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig env1 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig -> Sig uosc (Sig 3 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig env1)))) fmBass2 :: MonoAdsr -> (Sig, Sig) -> Sig fmBass2 :: MonoAdsr -> (Sig, Sig) -> Sig fmBass2 MonoAdsr adsrEnv (Sig amp, Sig cps) = Sig env1 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * (Sig -> D -> Sig port Sig amp D 0.01) Sig -> Sig -> Sig forall a. Num a => a -> a -> a * (\Sig freq -> MonoAdsr fosc Sig 1 Sig 1 (Sig 1 Sig -> Sig -> Sig forall a. Num a => a -> a -> a + Sig 3.4 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig env2) Sig freq) ((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 0.001 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig -> Sig osc (Sig 2 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig env4) Sig -> Sig -> Sig forall a. Num a => a -> a -> a * Sig env4))) where env1 :: Sig env1 = MonoAdsr adsrEnv Sig 0.015 (Sig 5.2 Sig -> Sig -> Sig forall a. Num a => a -> a -> a + Sig rel) Sig 0.001 Sig 0.5 env2 :: Sig env2 = MonoAdsr adsrEnv Sig 0.015 Sig 1.4 Sig 0.5 Sig 1.2 env4 :: Sig env4 = MonoAdsr adsrEnv Sig 3.2 Sig 0.1 Sig 0.85 Sig 5 rel :: Sig rel = Sig 3 Sig -> Sig -> Sig forall a. Num a => a -> a -> a * (Sig 1 Sig -> Sig -> Sig forall a. Num a => a -> a -> a - (Sig cps Sig -> Sig -> Sig forall a. Num a => a -> a -> a - Sig 50) Sig -> Sig -> Sig forall a. Fractional a => a -> a -> a / Sig 150)