vivid-0.2.0.0: Vivid/UGens/InOut.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE NoIncoherentInstances #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE NoUndecidableInstances #-}
module Vivid.UGens.InOut (
-- This is deprecated in SC:
-- audioIn
--- diskIn
--- , diskOut
--- , in__
aIn
, kIn
--- , inFeedback
--- , inTrig
--- , lagIn
--- , localIn
--- , localOut
--- , maxLocalBufs
--- , offsetOut
, out
, aOut
, kOut
, kOut_mono
--- , replaceOut
-- These 2 have been deprecated in SC:
-- , sharedIn
-- , sharedOut
, soundIn
--- , vDiskIn
--- , xOut
) where
import Vivid.SynthDef
import Vivid.SynthDef.FromUA
import Vivid.UGens.Algebraic
import Vivid.UGens.Args
import Data.Proxy
aIn :: (Args '["bus"] '[] a) => a -> SDBody a Signal
aIn = makeUGen
"In" AR
(Vs::Vs '["bus"])
NoDefaults
--- diskIn ::
--- diskIn =
--- diskOut ::
--- diskOut =
--- in__ ::
--- in__ =
--- inFeedback ::
--- inFeedback =
--- inTrig ::
--- inTrig =
kIn :: (Args '["bus"] '[] a) => a -> SDBody a Signal
kIn = makeUGen
"In" KR
(Vs::Vs '["bus"])
NoDefaults
--- lagIn ::
--- lagIn =
--- localIn ::
--- localIn =
--- localOut ::
--- localOut =
--- maxLocalBufs ::
--- maxLocalBufs =
--- offsetOut ::
--- offsetOut =
out :: (ToSig i a, ToSig busNum a) => busNum -> [i] -> SDBody' a [Signal]
out = aOut
aOut :: (ToSig i a, ToSig busNum a) => busNum -> [i] -> SDBody' a [Signal]
aOut busNum is = do
busNum' <- toSig busNum
is' <- mapM toSig is
addPolyUGen $ UGen (UGName_S "Out") AR (busNum' : is') ((length::[a]->Int) is)
kOut :: (ToSig i a, ToSig busNum a) => busNum -> [i] -> SDBody' a [Signal]
kOut busNum is = do
busNum' <- toSig busNum
is' <- mapM toSig is
addPolyUGen $ UGen (UGName_S "Out") KR (busNum' : is') ((length::[a]->Int) is)
-- | Temporary
kOut_mono :: (ToSig i a) => Int -> i -> SDBody' a Signal
kOut_mono busNum i = do
i' <- toSig i
addUGen $ UGen (UGName_S "Out") KR [Constant (toEnum busNum), i'] 1
-- kIn ::
-- kIn =
--- replaceOut ::
--- replaceOut =
-- | Audio bus input (usually mic)
soundIn :: Args '["bus"] '[] a => a -> SDBody a Signal
soundIn args = do
bus <- args `uaArgVal` (Proxy::Proxy "bus")
nob <- addUGen $ UGen (UGName_S "NumOutputBuses") IR [] 1 {- :: SDBody a Signal -}
inPos <- nob ~+ bus
addUGen $ UGen (UGName_S "In") AR [inPos] 1
--- vDiskIn ::
--- vDiskIn =
-- | "Send signal to a bus, crossfading with previous contents"
--
--
--- xOut ::
--- xOut =