vivid-0.2.0.0: Vivid/UGens/Convolution.hs
-- | Most of these only run at audio rate ('AR')
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE NoIncoherentInstances #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE NoUndecidableInstances #-}
module Vivid.UGens.Convolution (
convolution
, convolution2
, convolution2L
, convolution3
, partConv
--- , stereoConvolution2L
) where
import Vivid.UGens.Args
import Vivid.SynthDef
import Vivid.SynthDef.FromUA
convolution :: (Args '["in", "kernel"] '["frameSize"] a) => a -> SDBody a Signal
convolution = makeUGen
"Convolution" AR
(Vs::Vs '["in", "kernel", "frameSize"])
(frameSize_ ((512)::Float))
convolution2 :: (Args '["in", "kernel"] '["trigger", "frameSize"] a) => a -> SDBody a Signal
convolution2 = makeUGen
"Convolution2" AR
(Vs::Vs '["in", "kernel", "trigger", "frameSize"])
(trigger_ ((0)::Float), frameSize_ ((2048)::Float))
convolution2L :: (Args '["in", "kernel"] '["trigger", "frameSize", "crossFade"] a) => a -> SDBody a Signal
convolution2L = makeUGen
"Convolution2L" AR
(Vs::Vs '["in", "kernel", "trigger", "frameSize", "crossFade"])
(trigger_ ((0)::Float), frameSize_ ((2048)::Float), crossFade_ (((1)::Float)))
-- | This one can run at control rate ('KR').
-- It's inefficient so only useful for very small kernels or control rate.
convolution3 :: (Args '["in", "kernel"] '["trigger", "frameSize"] a) => a -> SDBody a Signal
convolution3 = makeUGen
"Convolution3" AR
(Vs::Vs '["in", "kernel", "trigger", "frameSize"])
(trigger_ ((0)::Float), frameSize_ ((2048)::Float))
partConv :: (Args '["in", "fftSize", "irBufNum"] '[] a) => a -> SDBody a Signal
partConv = makeUGen
"PartConv" AR
(Vs::Vs '["in", "fftSize", "ifBufNum"])
NoDefaults
--- stereoConvolution2L ::
--- stereoConvolution2L =