{-# 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 =