{-# LANGUAGE DataKinds #-}
{-# LANGUAGE ExtendedDefaultRules #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE NoIncoherentInstances #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE NoUndecidableInstances #-}
module Vivid.UGens.Reverbs (
freeVerb
, gVerb
) where
import Vivid.SC.SynthDef.Types (CalculationRate(..))
import Vivid.SynthDef
import Vivid.SynthDef.FromUA
import Vivid.UGens.Args
freeVerb :: (Args '["in"] '["mix", "room", "damp"] a) => a -> SDBody a Signal
freeVerb = makeUGen
"FreeVerb" AR
(Vs::Vs '["in", "mix", "room", "damp"])
(mix_ (1/3::Float), room_ (0.5::Float), damp_ (0.5::Float))
gVerb :: Args '["in"] '["roomSize", "revTime", "damping", "inputBW", "spread", "dryLevel", "earlyRefLevel", "tailLevel", "maxRoomSize"] a => a -> SDBody a [Signal]
gVerb = makePolyUGen 2
"GVerb" AR
(Vs::Vs '["in", "roomSize", "revTime", "damping", "inputBW", "spread", "dryLevel", "earlyRefLevel", "tailLevel", "maxRoomSize"])
(roomSize_ (10::Float), revTime_ (3::Float), damping_ (0.5::Float), inputBW_ (0.5::Float), spread_ (15::Float), dryLevel_ (1::Float), earlyRefLevel_ (0.7::Float), tailLevel_ (0.5::Float), maxRoomSize_ (300::Float))