{-# LANGUAGE DataKinds #-}
{-# LANGUAGE NoIncoherentInstances #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE NoUndecidableInstances #-}
module Vivid.UGens.Filters.BEQSuite (
bAllpass
, bBandPass
, bBandStop
, bHiPass
, bHiShelf
, bLowPass
, bLowPass4
, bLowShelf
, bPeakEQ
) where
import Vivid.SC.SynthDef.Types (CalculationRate(..))
import Vivid.SynthDef
import Vivid.SynthDef.FromUA
import Vivid.UGens.Args
import Vivid.UGens.Algebraic
import Vivid.UGens.Filters.Linear (sos)
import Vivid.UGens.Info (sampleRate, sampleDur)
import Data.Proxy
bAllpass :: (Args '["in"] '["freq", "rq"] a) => a -> SDBody a Signal
bAllpass = makeUGen
"BAllPass" AR
(Vs::Vs '["in", "freq", "rq"])
(freq_ (1200::Float), rq_ (1::Float))
bBandPass :: (Args '["in"] '["freq", "bw"] a) => a -> SDBody a Signal
bBandPass = makeUGen
"BBandPass" AR
(Vs::Vs '["in", "freq", "bw"])
(freq_ (1200::Float), bw_ (1::Float))
bBandStop :: (Args '["in"] '["freq", "bw"] a) => a -> SDBody a Signal
bBandStop = makeUGen
"BBandStop" AR
(Vs::Vs '["in", "freq", "bw"])
(freq_ (1200::Float), bw_ (1::Float))
bHiPass :: (Args '["in"] '["freq", "rq"] a) => a -> SDBody a Signal
bHiPass = makeUGen
"BHiPass" AR
(Vs::Vs '["in", "freq", "rq"])
(freq_ (1200::Float), rq_ (1::Float))
bHiShelf :: (Args '["in"] '["freq", "rs", "db"] a) => a -> SDBody a Signal
bHiShelf = makeUGen
"BHiShelf" AR
(Vs::Vs '["in", "freq", "rs", "db"])
(freq_ (1200::Float), rs_ (1::Float), db_ (0::Float))
bLowPass :: (Args '["in"] '["freq", "rq"] a) => a -> SDBody a Signal
bLowPass = makeUGen
"BLowPass" AR
(Vs::Vs '["in", "freq", "rq"])
(freq_ (1200::Float), rq_ (1::Float))
bLowPass4 :: (Args '["in"] '["freq","rq"] a) => a -> SDBody a Signal
bLowPass4 as = do
freq <- uaArgValWDefault (1200::Float) as (Proxy::Proxy "freq")
rq <- uaArgValWDefault (1::Float) as (Proxy::Proxy "rq")
in' <- as `uaArgVal` (Proxy::Proxy "in")
_sRate <- sampleRate
sDur <- sampleDur
four <- (Constant $ 2*pi)~*sDur~*freq
five <- uOp Cos four
six <- (Constant 1) ~- five
seven <- six ~* (Constant 0.5)
eight <- five ~* (Constant 2)
nine <- uOp Sin four
ten <- nine ~* (Constant 0.5)
eleven <- ten ~* uOp Sqrt rq
twelve <- Constant 1 ~+ eleven
thirteen <- uOp Recip twelve
fourteen <- seven ~* thirteen
fifteen <- six ~* thirteen
sixteen <- eight ~* thirteen
seventeen <- uOp Neg thirteen
eighteen <- Constant 1 ~- eleven
nineteen <- eighteen ~* seventeen
twenty <- sos (in_ in', a0_ fourteen, a1_ fifteen, a2_ fourteen, b1_ sixteen, b2_ nineteen)
twentyOne <- sos (in_ twenty, a0_ fourteen, a1_ fifteen, a2_ fourteen, b1_ sixteen, b2_ nineteen)
return twentyOne
bLowShelf :: (Args '["in"] '["freq", "rs", "db"] a) => a -> SDBody a Signal
bLowShelf = makeUGen
"BLowShelf" AR
(Vs::Vs '["in", "freq", "rs", "db"])
(freq_ (1200::Float), rs_ (1::Float), db_ (0::Float))
bPeakEQ :: (Args '["in"] '["freq", "rq", "db"] a) => a -> SDBody a Signal
bPeakEQ = makeUGen
"BPeakEQ" AR
(Vs::Vs '["in", "freq", "rq", "db"])
(freq_ (1200::Float), rq_ (1::Float), db_ (0::Float))