-- | Duration Control Statements module CsoundExpr.Opcodes.Control.Durctl (ihold, turnoff, turnoff2, turnon) where import CsoundExpr.Base.Types import CsoundExpr.Base.MultiOut import CsoundExpr.Base.SideEffect import CsoundExpr.Base.UserDefined -- | * opcode : ihold -- -- -- * syntax : -- -- > ihold -- -- -- * description : -- -- Causes a finite-duration note to become a held note -- -- -- * url : ihold :: SignalOut ihold = outOpcode "ihold" args where args = [] -- | * opcode : turnoff -- -- -- * syntax : -- -- > turnoff -- -- -- * description : -- -- Enables an instrument to turn itself off. -- -- -- * url : turnoff :: SignalOut turnoff = outOpcode "turnoff" args where args = [] -- | * opcode : turnoff2 -- -- -- * syntax : -- -- > turnoff2 kinsno, kmode, krelease -- -- -- * description : -- -- Turn off instance(s) of other instruments at performance time. -- -- -- * url : turnoff2 :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SignalOut turnoff2 k0insno k1mode k2release = outOpcode "turnoff2" args where args = [to k0insno, to k1mode, to k2release] -- | * opcode : turnon -- -- -- * syntax : -- -- > turnon insnum [, itime] -- -- -- * description : -- -- Activate an instrument for an indefinite time. -- -- -- * url : turnon :: [Irate] -> Irate -> SignalOut turnon i0init i1nsnum = outOpcode "turnon" args where args = [to i1nsnum] ++ map to i0init