csound-expression 0.0.3 → 0.1.0
raw patch · 14 files changed
+343/−84 lines, 14 filesdep +BooleanPVP ok
version bump matches the API change (PVP)
Dependencies added: Boolean
API changes (from Hackage documentation)
- CsoundExpr.Base.Arithmetic: (<*) :: (X a) => Irate -> a -> a
- CsoundExpr.Base.Imperative: instance (Assign a) => Assign [a]
- CsoundExpr.Base.SideEffect: instance (IM CsTree a) => IM CsTree (SideEffect a)
+ CsoundExpr.Base.Arithmetic: (<%>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
+ CsoundExpr.Base.Arithmetic: (<^>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
+ CsoundExpr.Base.Arithmetic: (^*) :: X a => Irate -> a -> a
+ CsoundExpr.Base.Boolean: (&&*) :: BoolRate -> BoolRate -> BoolRate
+ CsoundExpr.Base.Boolean: (/=*) :: (K a, K b) => a -> b -> BoolRate
+ CsoundExpr.Base.Boolean: (<*) :: (K a, K b) => a -> b -> BoolRate
+ CsoundExpr.Base.Boolean: (<=*) :: (K a, K b) => a -> b -> BoolRate
+ CsoundExpr.Base.Boolean: (==*) :: (K a, K b) => a -> b -> BoolRate
+ CsoundExpr.Base.Boolean: (>*) :: (K a, K b) => a -> b -> BoolRate
+ CsoundExpr.Base.Boolean: (>=*) :: (K a, K b) => a -> b -> BoolRate
+ CsoundExpr.Base.Boolean: (||*) :: BoolRate -> BoolRate -> BoolRate
+ CsoundExpr.Base.Boolean: cond :: (Applicative f, K a) => f BoolRate -> f a -> f a -> f a
+ CsoundExpr.Base.Boolean: crop :: (Applicative f, Monoid (f a), K a) => f BoolRate -> f a -> f a
+ CsoundExpr.Base.Boolean: data BoolRate
+ CsoundExpr.Base.Boolean: false :: BoolRate
+ CsoundExpr.Base.Boolean: ifB :: X a => BoolRate -> a -> a -> a
+ CsoundExpr.Base.Boolean: maxB :: K a => a -> a -> a
+ CsoundExpr.Base.Boolean: minB :: K a => a -> a -> a
+ CsoundExpr.Base.Boolean: notB :: BoolRate -> BoolRate
+ CsoundExpr.Base.Boolean: true :: BoolRate
+ CsoundExpr.Base.Imperative: instance Assign a => Assign [a]
+ CsoundExpr.Base.SideEffect: instance IM CsTree a => IM CsTree (SideEffect a)
+ CsoundExpr.Base.UserDefined: operation :: IM CsTree a => [String] -> [CsTree] -> a
+ CsoundExpr.Base.UserDefined: unaryInfixOperation :: IM CsTree a => String -> CsTree -> a
- CsoundExpr.Base.Arithmetic: neg :: (X a) => a -> a
+ CsoundExpr.Base.Arithmetic: neg :: X a => a -> a
- CsoundExpr.Base.Imperative: (<=>) :: (Assign a) => a -> a -> SignalOut
+ CsoundExpr.Base.Imperative: (<=>) :: Assign a => a -> a -> SignalOut
- CsoundExpr.Base.MultiOut: mo :: (X a) => Int -> MultiOut -> [a]
+ CsoundExpr.Base.MultiOut: mo :: X a => Int -> MultiOut -> [a]
- CsoundExpr.Base.MultiOut: mo1 :: (X a0) => MultiOut -> (a0)
+ CsoundExpr.Base.MultiOut: mo1 :: X a0 => MultiOut -> (a0)
- CsoundExpr.Base.Score: (+:+) :: (Arrangeable a) => a -> a -> a
+ CsoundExpr.Base.Score: (+:+) :: Arrangeable a => a -> a -> a
- CsoundExpr.Base.Score: (=:=) :: (Arrangeable a) => a -> a -> a
+ CsoundExpr.Base.Score: (=:=) :: Arrangeable a => a -> a -> a
- CsoundExpr.Base.Score: chord :: (Arrangeable a) => [a] -> a
+ CsoundExpr.Base.Score: chord :: Arrangeable a => [a] -> a
- CsoundExpr.Base.Score: dur :: (Temporal Dur a) => a -> Dur
+ CsoundExpr.Base.Score: dur :: Temporal Dur a => a -> Dur
- CsoundExpr.Base.Score: line :: (Arrangeable a) => [a] -> a
+ CsoundExpr.Base.Score: line :: Arrangeable a => [a] -> a
- CsoundExpr.Base.Score: loop :: (Arrangeable a) => Int -> a -> a
+ CsoundExpr.Base.Score: loop :: Arrangeable a => Int -> a -> a
- CsoundExpr.Base.Score: rest :: (Temporal Dur a) => Dur -> a
+ CsoundExpr.Base.Score: rest :: Temporal Dur a => Dur -> a
- CsoundExpr.Base.Score: stretch :: (Stretchable Dur a) => Dur -> a -> a
+ CsoundExpr.Base.Score: stretch :: Stretchable Dur a => Dur -> a -> a
- CsoundExpr.Base.SideEffect: se :: (IM CsTree a) => Int -> SideEffect a -> ([a], SideEffect a)
+ CsoundExpr.Base.SideEffect: se :: IM CsTree a => Int -> SideEffect a -> ([a], SideEffect a)
- CsoundExpr.Base.SideEffect: se1 :: (IM CsTree a) => SideEffect a -> (a, SideEffect a)
+ CsoundExpr.Base.SideEffect: se1 :: IM CsTree a => SideEffect a -> (a, SideEffect a)
- CsoundExpr.Base.SideEffect: se2 :: (IM CsTree a) => SideEffect a -> ((a, a), SideEffect a)
+ CsoundExpr.Base.SideEffect: se2 :: IM CsTree a => SideEffect a -> ((a, a), SideEffect a)
- CsoundExpr.Base.SideEffect: se3 :: (IM CsTree a) => SideEffect a -> ((a, a, a), SideEffect a)
+ CsoundExpr.Base.SideEffect: se3 :: IM CsTree a => SideEffect a -> ((a, a, a), SideEffect a)
- CsoundExpr.Base.SideEffect: se4 :: (IM CsTree a) => SideEffect a -> ((a, a, a, a), SideEffect a)
+ CsoundExpr.Base.SideEffect: se4 :: IM CsTree a => SideEffect a -> ((a, a, a, a), SideEffect a)
- CsoundExpr.Base.Types: arate :: (X a) => a -> Arate
+ CsoundExpr.Base.Types: arate :: X a => a -> Arate
- CsoundExpr.Base.Types: class (X a) => K a
+ CsoundExpr.Base.Types: class X a => K a
- CsoundExpr.Base.Types: irate :: (X a) => a -> Irate
+ CsoundExpr.Base.Types: irate :: X a => a -> Irate
- CsoundExpr.Base.Types: krate :: (X a) => a -> Krate
+ CsoundExpr.Base.Types: krate :: X a => a -> Krate
- CsoundExpr.Base.UserDefined: from :: (IM a b) => a -> b
+ CsoundExpr.Base.UserDefined: from :: IM a b => a -> b
- CsoundExpr.Base.UserDefined: infixOperation :: (IM CsTree a) => String -> [CsTree] -> a
+ CsoundExpr.Base.UserDefined: infixOperation :: IM CsTree a => String -> [CsTree] -> a
- CsoundExpr.Base.UserDefined: opcode :: (IM CsTree a) => String -> [CsTree] -> a
+ CsoundExpr.Base.UserDefined: opcode :: IM CsTree a => String -> [CsTree] -> a
- CsoundExpr.Base.UserDefined: prefixOperation :: (IM CsTree a) => String -> [CsTree] -> a
+ CsoundExpr.Base.UserDefined: prefixOperation :: IM CsTree a => String -> [CsTree] -> a
- CsoundExpr.Base.UserDefined: to :: (IM a b) => b -> a
+ CsoundExpr.Base.UserDefined: to :: IM a b => b -> a
- CsoundExpr.Opcodes.Control.FltkOther: flButBank :: (K k0) => Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
+ CsoundExpr.Opcodes.Control.FltkOther: flButBank :: K k0 => Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
- CsoundExpr.Opcodes.Control.FltkOther: flButton :: (K k0) => String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
+ CsoundExpr.Opcodes.Control.FltkOther: flButton :: K k0 => String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
- CsoundExpr.Opcodes.Control.FltkOther: flPrintk :: (K k0) => Irate -> k0 -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Control.FltkOther: flPrintk :: K k0 => Irate -> k0 -> Irate -> SignalOut
- CsoundExpr.Opcodes.Control.FltkOther: flPrintk2 :: (K k0) => k0 -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Control.FltkOther: flPrintk2 :: K k0 => k0 -> Irate -> SignalOut
- CsoundExpr.Opcodes.Control.FltkOther: flSlidBnk2Setk :: (K k0) => [Irate] -> k0 -> Irate -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Control.FltkOther: flSlidBnk2Setk :: K k0 => [Irate] -> k0 -> Irate -> Irate -> SignalOut
- CsoundExpr.Opcodes.Control.FltkValuators: flCount :: (K k0) => String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
+ CsoundExpr.Opcodes.Control.FltkValuators: flCount :: K k0 => String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
- CsoundExpr.Opcodes.Control.Invocat: scoreline :: (K k0) => String -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Control.Invocat: scoreline :: K k0 => String -> k0 -> SignalOut
- CsoundExpr.Opcodes.Control.Realtime: activeK :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Control.Realtime: activeK :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Control.Sensing: button :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Control.Sensing: button :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Control.Sensing: changed :: (K k0) => [k0] -> Krate
+ CsoundExpr.Opcodes.Control.Sensing: changed :: K k0 => [k0] -> Krate
- CsoundExpr.Opcodes.Control.Sensing: checkbox :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Control.Sensing: checkbox :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Control.Sensing: control :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Control.Sensing: control :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Control.Sensing: peakK :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Control.Sensing: peakK :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Control.Sensing: tempest :: (K k0) => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
+ CsoundExpr.Opcodes.Control.Sensing: tempest :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
- CsoundExpr.Opcodes.Control.Sensing: tempo :: (K k0) => k0 -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Control.Sensing: tempo :: K k0 => k0 -> Irate -> SignalOut
- CsoundExpr.Opcodes.Control.Stacks: push :: (X x0) => [x0] -> SignalOut
+ CsoundExpr.Opcodes.Control.Stacks: push :: X x0 => [x0] -> SignalOut
- CsoundExpr.Opcodes.Math.Amp: ampdb :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Amp: ampdb :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Amp: ampdbfs :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Amp: ampdbfs :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Amp: db :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Amp: db :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Amp: dbamp :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Math.Amp: dbamp :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Math.Amp: dbfsamp :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Math.Amp: dbfsamp :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Math.Matfunc: abs' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Matfunc: abs' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Matfunc: ceil :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Matfunc: ceil :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Matfunc: exp' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Matfunc: exp' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Matfunc: floor' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Matfunc: floor' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Matfunc: frac :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Math.Matfunc: frac :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Math.Matfunc: int :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Math.Matfunc: int :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Math.Matfunc: log' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Matfunc: log' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Matfunc: log10 :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Matfunc: log10 :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Matfunc: logbtwo :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Math.Matfunc: logbtwo :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Math.Matfunc: powA :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Math.Matfunc: powA :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Math.Matfunc: powoftwo :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Math.Matfunc: powoftwo :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Math.Matfunc: round' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Matfunc: round' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Matfunc: sqrt' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Matfunc: sqrt' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Rndfunc: birnd :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Math.Rndfunc: birnd :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Math.Rndfunc: rnd :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Math.Rndfunc: rnd :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Math.SigmodCompaccum: maxK :: (K k0) => [k0] -> Krate
+ CsoundExpr.Opcodes.Math.SigmodCompaccum: maxK :: K k0 => [k0] -> Krate
- CsoundExpr.Opcodes.Math.SigmodCompaccum: max_k :: (K k0) => Arate -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Math.SigmodCompaccum: max_k :: K k0 => Arate -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Math.SigmodCompaccum: maxabsK :: (K k0) => [k0] -> Krate
+ CsoundExpr.Opcodes.Math.SigmodCompaccum: maxabsK :: K k0 => [k0] -> Krate
- CsoundExpr.Opcodes.Math.SigmodCompaccum: minK :: (K k0) => [k0] -> Krate
+ CsoundExpr.Opcodes.Math.SigmodCompaccum: minK :: K k0 => [k0] -> Krate
- CsoundExpr.Opcodes.Math.SigmodCompaccum: minabsK :: (K k0) => [k0] -> Krate
+ CsoundExpr.Opcodes.Math.SigmodCompaccum: minabsK :: K k0 => [k0] -> Krate
- CsoundExpr.Opcodes.Math.Trig: cos' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: cos' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Trig: cosh' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: cosh' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Trig: cosinv :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: cosinv :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Trig: sin' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: sin' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Trig: sinh' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: sinh' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Trig: sininv :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: sininv :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Trig: tan' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: tan' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Trig: tanh' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: tanh' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Math.Trig: taninv :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Math.Trig: taninv :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Midi.Interop: midichannelaftertouch :: (X x0) => [Irate] -> x0 -> SignalOut
+ CsoundExpr.Opcodes.Midi.Interop: midichannelaftertouch :: X x0 => [Irate] -> x0 -> SignalOut
- CsoundExpr.Opcodes.Midi.Interop: midipitchbend :: (X x0) => [Irate] -> x0 -> SignalOut
+ CsoundExpr.Opcodes.Midi.Interop: midipitchbend :: X x0 => [Irate] -> x0 -> SignalOut
- CsoundExpr.Opcodes.Midi.Interop: midiprogramchange :: (X x0) => x0 -> SignalOut
+ CsoundExpr.Opcodes.Midi.Interop: midiprogramchange :: X x0 => x0 -> SignalOut
- CsoundExpr.Opcodes.Miscopcodes.Top: modmatrix :: (K k0) => Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Miscopcodes.Top: modmatrix :: K k0 => Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> SignalOut
- CsoundExpr.Opcodes.MixerOpcodes.MixerOpcodes: mixerSetLevel :: (K k0) => Irate -> Irate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.MixerOpcodes.MixerOpcodes: mixerSetLevel :: K k0 => Irate -> Irate -> k0 -> SignalOut
- CsoundExpr.Opcodes.OSCNetwork.OSC: oscListen :: (X x0) => Irate -> Irate -> Irate -> [x0] -> Krate
+ CsoundExpr.Opcodes.OSCNetwork.OSC: oscListen :: X x0 => Irate -> Irate -> Irate -> [x0] -> Krate
- CsoundExpr.Opcodes.Pitch.Funcs: cent :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Pitch.Funcs: cent :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Pitch.Funcs: cpsmidinn :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Pitch.Funcs: cpsmidinn :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Pitch.Funcs: cpsoct :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Pitch.Funcs: cpsoct :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Pitch.Funcs: cpspch :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Pitch.Funcs: cpspch :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Pitch.Funcs: octave :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Pitch.Funcs: octave :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Pitch.Funcs: octcps :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Pitch.Funcs: octcps :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Pitch.Funcs: octmidinn :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Pitch.Funcs: octmidinn :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Pitch.Funcs: octpch :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Pitch.Funcs: octpch :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Pitch.Funcs: pchmidinn :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Pitch.Funcs: pchmidinn :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Pitch.Funcs: pchoct :: (K k0) => k0 -> k0
+ CsoundExpr.Opcodes.Pitch.Funcs: pchoct :: K k0 => k0 -> k0
- CsoundExpr.Opcodes.Pitch.Funcs: semitone :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Pitch.Funcs: semitone :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Plugin.Dssi4cs: dssiactivate :: (K k0) => Irate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Plugin.Dssi4cs: dssiactivate :: K k0 => Irate -> k0 -> SignalOut
- CsoundExpr.Opcodes.Plugin.Vst4cs: vstprogset :: (K k0) => Irate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Plugin.Vst4cs: vstprogset :: K k0 => Irate -> k0 -> SignalOut
- CsoundExpr.Opcodes.Siggen.Basic: osciln :: (K k0) => k0 -> Irate -> Irate -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Basic: osciln :: K k0 => k0 -> Irate -> Irate -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Basic: poscilAAK :: (K k0) => [Irate] -> Arate -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Basic: poscilAAK :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Basic: poscilAKA :: (K k0) => [Irate] -> k0 -> Arate -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Basic: poscilAKA :: K k0 => [Irate] -> k0 -> Arate -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Dynamic: vco2ft :: (K k0) => [Irate] -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Dynamic: vco2ft :: K k0 => [Irate] -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Envelope: envlpxA :: (X x0) => [Irate] -> x0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Envelope: envlpxA :: X x0 => [Irate] -> x0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Envelope: envlpxK :: (K k0) => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Envelope: envlpxK :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Envelope: envlpxrA :: (X x0) => [Irate] -> x0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Envelope: envlpxrA :: X x0 => [Irate] -> x0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Envelope: envlpxrK :: (K k0) => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Envelope: envlpxrK :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Envelope: linenA :: (X x0) => x0 -> Irate -> Irate -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Envelope: linenA :: X x0 => x0 -> Irate -> Irate -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Envelope: linenK :: (K k0) => k0 -> Irate -> Irate -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Envelope: linenK :: K k0 => k0 -> Irate -> Irate -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Envelope: linenrA :: (X x0) => x0 -> Irate -> Irate -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Envelope: linenrA :: X x0 => x0 -> Irate -> Irate -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Envelope: linenrK :: (K k0) => k0 -> Irate -> Irate -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Envelope: linenrK :: K k0 => k0 -> Irate -> Irate -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Hvs: hvs1 :: (K k0) => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Siggen.Hvs: hvs1 :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
- CsoundExpr.Opcodes.Siggen.Hvs: vphaseseg :: (K k0) => k0 -> Irate -> Irate -> [Irate] -> SignalOut
+ CsoundExpr.Opcodes.Siggen.Hvs: vphaseseg :: K k0 => k0 -> Irate -> Irate -> [Irate] -> SignalOut
- CsoundExpr.Opcodes.Siggen.Lineexp: gainslider :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Lineexp: gainslider :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Models: bamboo :: (K k0) => [Irate] -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Models: bamboo :: K k0 => [Irate] -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Models: dripwater :: (K k0) => [Irate] -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Models: dripwater :: K k0 => [Irate] -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Models: guiro :: (K k0) => [Irate] -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Models: guiro :: K k0 => [Irate] -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Models: sleighbells :: (K k0) => [Irate] -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Models: sleighbells :: K k0 => [Irate] -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Models: tambourine :: (K k0) => [Irate] -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Models: tambourine :: K k0 => [Irate] -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: bexprndA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: bexprndA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: bexprndA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: bexprndA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: bexprndI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: bexprndI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: bexprndI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: bexprndI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: bexprndK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: bexprndK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: bexprndK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: bexprndK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: cauchyA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: cauchyA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: cauchyA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: cauchyA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: cauchyI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: cauchyI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: cauchyI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: cauchyI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: cauchyK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: cauchyK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: cauchyK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: cauchyK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: duserrndA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: duserrndA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: duserrndA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: duserrndA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: duserrndK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: duserrndK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: duserrndK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: duserrndK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: exprandA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: exprandA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: exprandA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: exprandA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: exprandI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: exprandI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: exprandI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: exprandI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: exprandK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: exprandK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: exprandK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: exprandK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: gaussA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: gaussA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: gaussA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: gaussA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: gaussI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: gaussI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: gaussI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: gaussI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: gaussK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: gaussK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: gaussK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: gaussK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: linrandA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: linrandA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: linrandA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: linrandA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: linrandI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: linrandI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: linrandI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: linrandI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: linrandK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: linrandK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: linrandK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: linrandK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: pcauchyA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: pcauchyA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: pcauchyA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: pcauchyA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: pcauchyI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: pcauchyI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: pcauchyI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: pcauchyI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: pcauchyK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: pcauchyK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: pcauchyK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: pcauchyK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: pinkish :: (X x0) => [Irate] -> x0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: pinkish :: X x0 => [Irate] -> x0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: pinkish' :: (X x0) => [Irate] -> x0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: pinkish' :: X x0 => [Irate] -> x0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: poissonA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: poissonA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: poissonA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: poissonA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: poissonI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: poissonI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: poissonI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: poissonI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: poissonK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: poissonK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: poissonK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: poissonK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: randA :: (X x0) => [Irate] -> x0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: randA :: X x0 => [Irate] -> x0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: randK :: (X x0) => [Irate] -> x0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: randK :: X x0 => [Irate] -> x0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: trirandA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: trirandA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: trirandA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: trirandA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: trirandI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: trirandI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: trirandI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: trirandI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: trirandK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: trirandK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: trirandK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: trirandK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: unirandA :: (K k0) => k0 -> SideEffect Arate
+ CsoundExpr.Opcodes.Siggen.Noise: unirandA :: K k0 => k0 -> SideEffect Arate
- CsoundExpr.Opcodes.Siggen.Noise: unirandA' :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Noise: unirandA' :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Noise: unirandI :: (K k0) => k0 -> SideEffect Irate
+ CsoundExpr.Opcodes.Siggen.Noise: unirandI :: K k0 => k0 -> SideEffect Irate
- CsoundExpr.Opcodes.Siggen.Noise: unirandI' :: (K k0) => k0 -> Irate
+ CsoundExpr.Opcodes.Siggen.Noise: unirandI' :: K k0 => k0 -> Irate
- CsoundExpr.Opcodes.Siggen.Noise: unirandK :: (K k0) => k0 -> SideEffect Krate
+ CsoundExpr.Opcodes.Siggen.Noise: unirandK :: K k0 => k0 -> SideEffect Krate
- CsoundExpr.Opcodes.Siggen.Noise: unirandK' :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Noise: unirandK' :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Noise: urdA :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Siggen.Noise: urdA :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Siggen.Noise: urdA' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Siggen.Noise: urdA' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Siggen.Noise: urdI :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Siggen.Noise: urdI :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Siggen.Noise: urdI' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Siggen.Noise: urdI' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Siggen.Noise: urdK :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Siggen.Noise: urdK :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Siggen.Noise: urdK' :: (X x0) => x0 -> x0
+ CsoundExpr.Opcodes.Siggen.Noise: urdK' :: X x0 => x0 -> x0
- CsoundExpr.Opcodes.Siggen.Phasors: phasorA :: (X x0) => [Irate] -> x0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Phasors: phasorA :: X x0 => [Irate] -> x0 -> Arate
- CsoundExpr.Opcodes.Siggen.Phasors: phasorK :: (K k0) => [Irate] -> k0 -> Krate
+ CsoundExpr.Opcodes.Siggen.Phasors: phasorK :: K k0 => [Irate] -> k0 -> Krate
- CsoundExpr.Opcodes.Siggen.Phasors: syncphasor :: (X x0) => [Irate] -> x0 -> Arate -> MultiOut
+ CsoundExpr.Opcodes.Siggen.Phasors: syncphasor :: X x0 => [Irate] -> x0 -> Arate -> MultiOut
- CsoundExpr.Opcodes.Siggen.Sample: fluidCCk :: (K k0) => Irate -> Irate -> Irate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Siggen.Sample: fluidCCk :: K k0 => Irate -> Irate -> Irate -> k0 -> SignalOut
- CsoundExpr.Opcodes.Siggen.Sample: lphasor :: (X x0) => [Irate] -> x0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Sample: lphasor :: X x0 => [Irate] -> x0 -> Arate
- CsoundExpr.Opcodes.Siggen.Sample: waveset :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Siggen.Sample: waveset :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Siggen.Tableacc: oscil1 :: (K k0) => Irate -> k0 -> Irate -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Tableacc: oscil1 :: K k0 => Irate -> k0 -> Irate -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Tableacc: oscil1i :: (K k0) => Irate -> k0 -> Irate -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Tableacc: oscil1i :: K k0 => Irate -> k0 -> Irate -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Tableacc: tabA :: (X x0) => [Irate] -> x0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Siggen.Tableacc: tabA :: X x0 => [Irate] -> x0 -> Irate -> Arate
- CsoundExpr.Opcodes.Siggen.Tableacc: tabK :: (K k0) => [Irate] -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Tableacc: tabK :: K k0 => [Irate] -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Tableacc: table3K :: (K k0) => [Irate] -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Tableacc: table3K :: K k0 => [Irate] -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Tableacc: tableK :: (K k0) => [Irate] -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Tableacc: tableK :: K k0 => [Irate] -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Tableacc: tableiK :: (K k0) => [Irate] -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Siggen.Tableacc: tableiK :: K k0 => [Irate] -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Siggen.Wavguide: wgpluck :: (K k0) => Irate -> Irate -> k0 -> Irate -> Irate -> Irate -> Arate -> Arate
+ CsoundExpr.Opcodes.Siggen.Wavguide: wgpluck :: K k0 => Irate -> Irate -> k0 -> Irate -> Irate -> Irate -> Arate -> Arate
- CsoundExpr.Opcodes.Sigio.FileIO: dumpk :: (K k0) => k0 -> Irate -> Irate -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Sigio.FileIO: dumpk :: K k0 => k0 -> Irate -> Irate -> Irate -> SignalOut
- CsoundExpr.Opcodes.Sigio.FileIO: fink :: (K k0) => String -> Irate -> Irate -> [k0] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.FileIO: fink :: K k0 => String -> Irate -> Irate -> [k0] -> SignalOut
- CsoundExpr.Opcodes.Sigio.FileIO: foutk :: (K k0) => String -> Irate -> [k0] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.FileIO: foutk :: K k0 => String -> Irate -> [k0] -> SignalOut
- CsoundExpr.Opcodes.Sigio.FileIO: fprintks :: (K k0) => String -> String -> [k0] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.FileIO: fprintks :: K k0 => String -> String -> [k0] -> SignalOut
- CsoundExpr.Opcodes.Sigio.Input: diskin :: (K k0) => [Irate] -> String -> k0 -> MultiOut
+ CsoundExpr.Opcodes.Sigio.Input: diskin :: K k0 => [Irate] -> String -> k0 -> MultiOut
- CsoundExpr.Opcodes.Sigio.Input: diskin2 :: (K k0) => [Irate] -> String -> k0 -> MultiOut
+ CsoundExpr.Opcodes.Sigio.Input: diskin2 :: K k0 => [Irate] -> String -> k0 -> MultiOut
- CsoundExpr.Opcodes.Sigio.Input: inch :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Sigio.Input: inch :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Sigio.Input: inrg :: (K k0) => k0 -> [Arate] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Input: inrg :: K k0 => k0 -> [Arate] -> SignalOut
- CsoundExpr.Opcodes.Sigio.Input: inz :: (K k0) => k0 -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Input: inz :: K k0 => k0 -> SignalOut
- CsoundExpr.Opcodes.Sigio.Output: outc :: (K k0) => k0 -> [Arate] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Output: outc :: K k0 => k0 -> [Arate] -> SignalOut
- CsoundExpr.Opcodes.Sigio.Output: outch :: (K k0) => k0 -> [Arate] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Output: outch :: K k0 => k0 -> [Arate] -> SignalOut
- CsoundExpr.Opcodes.Sigio.Output: outrg :: (K k0) => k0 -> [Arate] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Output: outrg :: K k0 => k0 -> [Arate] -> SignalOut
- CsoundExpr.Opcodes.Sigio.Output: outvalueK :: (K k0) => String -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Output: outvalueK :: K k0 => String -> k0 -> SignalOut
- CsoundExpr.Opcodes.Sigio.Output: outz :: (K k0) => k0 -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Output: outz :: K k0 => k0 -> SignalOut
- CsoundExpr.Opcodes.Sigio.Pdisplay: dispfft :: (X x0) => [Irate] -> x0 -> Irate -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Pdisplay: dispfft :: X x0 => [Irate] -> x0 -> Irate -> Irate -> SignalOut
- CsoundExpr.Opcodes.Sigio.Pdisplay: display :: (X x0) => [Irate] -> x0 -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Pdisplay: display :: X x0 => [Irate] -> x0 -> Irate -> SignalOut
- CsoundExpr.Opcodes.Sigio.Pdisplay: printk :: (K k0) => [Irate] -> Irate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Pdisplay: printk :: K k0 => [Irate] -> Irate -> k0 -> SignalOut
- CsoundExpr.Opcodes.Sigio.Pdisplay: printk2 :: (K k0) => [Irate] -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Pdisplay: printk2 :: K k0 => [Irate] -> k0 -> SignalOut
- CsoundExpr.Opcodes.Sigio.Pdisplay: printks :: (K k0) => String -> Irate -> [k0] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Pdisplay: printks :: K k0 => String -> Irate -> [k0] -> SignalOut
- CsoundExpr.Opcodes.Sigio.Pdisplay: prints :: (K k0) => String -> [k0] -> SignalOut
+ CsoundExpr.Opcodes.Sigio.Pdisplay: prints :: K k0 => String -> [k0] -> SignalOut
- CsoundExpr.Opcodes.Sigio.SoftwareBus: chnsendK :: (K k0) => k0 -> String -> SignalOut
+ CsoundExpr.Opcodes.Sigio.SoftwareBus: chnsendK :: K k0 => k0 -> String -> SignalOut
- CsoundExpr.Opcodes.Sigio.SoftwareBus: chnsetK :: (K k0) => k0 -> String -> SignalOut
+ CsoundExpr.Opcodes.Sigio.SoftwareBus: chnsetK :: K k0 => k0 -> String -> SignalOut
- CsoundExpr.Opcodes.Sigmod.Delay: delayk :: (K k0) => [Irate] -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Sigmod.Delay: delayk :: K k0 => [Irate] -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Sigmod.Delay: deltap :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Delay: deltap :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Delay: deltap3 :: (X x0) => x0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Delay: deltap3 :: X x0 => x0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Delay: deltapi :: (X x0) => x0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Delay: deltapi :: X x0 => x0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Delay: deltapn :: (X x0) => x0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Delay: deltapn :: X x0 => x0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Panspatl: pan2 :: (X x0) => [Irate] -> Arate -> x0 -> MultiOut
+ CsoundExpr.Opcodes.Sigmod.Panspatl: pan2 :: X x0 => [Irate] -> Arate -> x0 -> MultiOut
- CsoundExpr.Opcodes.Sigmod.Reverbtn: alpass :: (K k0) => [Irate] -> Arate -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Sigmod.Reverbtn: alpass :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Sigmod.Reverbtn: comb :: (K k0) => [Irate] -> Arate -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Sigmod.Reverbtn: comb :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Sigmod.Reverbtn: reverb :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Reverbtn: reverb :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Sample: diffK :: (K k0) => [Irate] -> k0 -> Krate
+ CsoundExpr.Opcodes.Sigmod.Sample: diffK :: K k0 => [Irate] -> k0 -> Krate
- CsoundExpr.Opcodes.Sigmod.Sample: fold :: (K k0) => Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Sample: fold :: K k0 => Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Sample: integK :: (K k0) => [Irate] -> k0 -> Krate
+ CsoundExpr.Opcodes.Sigmod.Sample: integK :: K k0 => [Irate] -> k0 -> Krate
- CsoundExpr.Opcodes.Sigmod.Sample: interp :: (K k0) => [Irate] -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Sample: interp :: K k0 => [Irate] -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Sample: ntrpolA :: (K k0) => [Irate] -> Arate -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Sample: ntrpolA :: K k0 => [Irate] -> Arate -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Sample: upsamp :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Sample: upsamp :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Sample: vaget :: (K k0) => k0 -> Arate -> Krate
+ CsoundExpr.Opcodes.Sigmod.Sample: vaget :: K k0 => k0 -> Arate -> Krate
- CsoundExpr.Opcodes.Sigmod.SigProcAmpMod: dam :: (K k0) => Arate -> k0 -> Irate -> Irate -> Irate -> Irate -> Arate
+ CsoundExpr.Opcodes.Sigmod.SigProcAmpMod: dam :: K k0 => Arate -> k0 -> Irate -> Irate -> Irate -> Irate -> Arate
- CsoundExpr.Opcodes.Sigmod.SigProcAmpMod: gain :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.SigProcAmpMod: gain :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.SigProcConmorph: cross2 :: (K k0) => Arate -> Arate -> Irate -> Irate -> Irate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.SigProcConmorph: cross2 :: K k0 => Arate -> Arate -> Irate -> Irate -> Irate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.SigProcConmorph: ftmorf :: (K k0) => k0 -> Irate -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Sigmod.SigProcConmorph: ftmorf :: K k0 => k0 -> Irate -> Irate -> SignalOut
- CsoundExpr.Opcodes.Sigmod.Speciale: distort :: (K k0) => [Irate] -> Arate -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Sigmod.Speciale: distort :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Sigmod.Speciale: flanger :: (K k0) => [Irate] -> Arate -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Speciale: flanger :: K k0 => [Irate] -> Arate -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Speciali: filter2K :: (K k0) => k0 -> Irate -> Irate -> [Irate] -> [Irate] -> Krate
+ CsoundExpr.Opcodes.Sigmod.Speciali: filter2K :: K k0 => k0 -> Irate -> Irate -> [Irate] -> [Irate] -> Krate
- CsoundExpr.Opcodes.Sigmod.Standard: atone :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: atone :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Standard: atonex :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: atonex :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Standard: buthp :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: buthp :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Standard: butlp :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: butlp :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Standard: butterhp :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: butterhp :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Standard: butterlp :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: butterlp :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Standard: clfilt :: (K k0) => [Irate] -> Arate -> k0 -> Irate -> Irate -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: clfilt :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Irate -> Arate
- CsoundExpr.Opcodes.Sigmod.Standard: port :: (K k0) => [Irate] -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Sigmod.Standard: port :: K k0 => [Irate] -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Sigmod.Standard: tone :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: tone :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Standard: tonex :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Standard: tonex :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Wavguide: streson :: (K k0) => Arate -> k0 -> Irate -> Arate
+ CsoundExpr.Opcodes.Sigmod.Wavguide: streson :: K k0 => Arate -> k0 -> Irate -> Arate
- CsoundExpr.Opcodes.Sigmod.Wavshape: chebyshevpoly :: (K k0) => Arate -> [k0] -> Arate
+ CsoundExpr.Opcodes.Sigmod.Wavshape: chebyshevpoly :: K k0 => Arate -> [k0] -> Arate
- CsoundExpr.Opcodes.Sigmod.Wavshape: pdhalf :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Wavshape: pdhalf :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Wavshape: pdhalfy :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Wavshape: pdhalfy :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Sigmod.Wavshape: polynomial :: (K k0) => Arate -> [k0] -> Arate
+ CsoundExpr.Opcodes.Sigmod.Wavshape: polynomial :: K k0 => Arate -> [k0] -> Arate
- CsoundExpr.Opcodes.Sigmod.Wavshape: powershape :: (K k0) => [Irate] -> Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Sigmod.Wavshape: powershape :: K k0 => [Irate] -> Arate -> k0 -> Arate
- CsoundExpr.Opcodes.SignalFlowGraphOpcodes.SignalFlowGraphOpcodes: outletk :: (K k0) => String -> k0 -> SignalOut
+ CsoundExpr.Opcodes.SignalFlowGraphOpcodes.SignalFlowGraphOpcodes: outletk :: K k0 => String -> k0 -> SignalOut
- CsoundExpr.Opcodes.Spectral.ATS: atsAddnz :: (K k0) => [Irate] -> k0 -> Irate -> Irate -> Arate
+ CsoundExpr.Opcodes.Spectral.ATS: atsAddnz :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Arate
- CsoundExpr.Opcodes.Spectral.ATS: atsInterpread :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Spectral.ATS: atsInterpread :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Spectral.ATS: atsRead :: (K k0) => k0 -> Irate -> Irate -> MultiOut
+ CsoundExpr.Opcodes.Spectral.ATS: atsRead :: K k0 => k0 -> Irate -> Irate -> MultiOut
- CsoundExpr.Opcodes.Spectral.ATS: atsReadnz :: (K k0) => k0 -> Irate -> Irate -> Krate
+ CsoundExpr.Opcodes.Spectral.ATS: atsReadnz :: K k0 => k0 -> Irate -> Irate -> Krate
- CsoundExpr.Opcodes.Spectral.Lpcresyn: lpfreson :: (K k0) => Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Spectral.Lpcresyn: lpfreson :: K k0 => Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Spectral.Lpcresyn: lpinterp :: (K k0) => Irate -> Irate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Spectral.Lpcresyn: lpinterp :: K k0 => Irate -> Irate -> k0 -> SignalOut
- CsoundExpr.Opcodes.Spectral.Lpcresyn: lpread :: (K k0) => [Irate] -> k0 -> String -> MultiOut
+ CsoundExpr.Opcodes.Spectral.Lpcresyn: lpread :: K k0 => [Irate] -> k0 -> String -> MultiOut
- CsoundExpr.Opcodes.Spectral.SiggenStft: pvbufread :: (K k0) => k0 -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Spectral.SiggenStft: pvbufread :: K k0 => k0 -> Irate -> SignalOut
- CsoundExpr.Opcodes.Spectral.SiggenStft: pvread :: (K k0) => k0 -> Irate -> Irate -> MultiOut
+ CsoundExpr.Opcodes.Spectral.SiggenStft: pvread :: K k0 => k0 -> Irate -> Irate -> MultiOut
- CsoundExpr.Opcodes.Table.Queries: tablengK :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Table.Queries: tablengK :: K k0 => k0 -> Krate
- CsoundExpr.Opcodes.Table.Readwrit: ftloadk :: (K k0) => String -> k0 -> Irate -> [Irate] -> SignalOut
+ CsoundExpr.Opcodes.Table.Readwrit: ftloadk :: K k0 => String -> k0 -> Irate -> [Irate] -> SignalOut
- CsoundExpr.Opcodes.Table.Readwrit: ftsavek :: (K k0) => String -> k0 -> Irate -> [Irate] -> SignalOut
+ CsoundExpr.Opcodes.Table.Readwrit: ftsavek :: K k0 => String -> k0 -> Irate -> [Irate] -> SignalOut
- CsoundExpr.Opcodes.Table.Readwrit: tablegpw :: (K k0) => k0 -> SignalOut
+ CsoundExpr.Opcodes.Table.Readwrit: tablegpw :: K k0 => k0 -> SignalOut
- CsoundExpr.Opcodes.Table.Readwrit: tablewktA :: (K k0) => [Irate] -> Arate -> Arate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Table.Readwrit: tablewktA :: K k0 => [Irate] -> Arate -> Arate -> k0 -> SignalOut
- CsoundExpr.Opcodes.Vectorial.Vectorialdelay: vdelayk :: (K k0) => [Irate] -> Irate -> k0 -> Irate -> Krate
+ CsoundExpr.Opcodes.Vectorial.Vectorialdelay: vdelayk :: K k0 => [Irate] -> Irate -> k0 -> Irate -> Krate
- CsoundExpr.Opcodes.Vectorial.Vectorialdelay: vport :: (K k0) => [Irate] -> Irate -> k0 -> Irate -> SignalOut
+ CsoundExpr.Opcodes.Vectorial.Vectorialdelay: vport :: K k0 => [Irate] -> Irate -> k0 -> Irate -> SignalOut
- CsoundExpr.Opcodes.Zak.Top: zamod :: (K k0) => Arate -> k0 -> Arate
+ CsoundExpr.Opcodes.Zak.Top: zamod :: K k0 => Arate -> k0 -> Arate
- CsoundExpr.Opcodes.Zak.Top: zar :: (K k0) => k0 -> Arate
+ CsoundExpr.Opcodes.Zak.Top: zar :: K k0 => k0 -> Arate
- CsoundExpr.Opcodes.Zak.Top: zaw :: (K k0) => Arate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Zak.Top: zaw :: K k0 => Arate -> k0 -> SignalOut
- CsoundExpr.Opcodes.Zak.Top: zawm :: (K k0) => [Irate] -> Arate -> k0 -> SignalOut
+ CsoundExpr.Opcodes.Zak.Top: zawm :: K k0 => [Irate] -> Arate -> k0 -> SignalOut
- CsoundExpr.Opcodes.Zak.Top: zkr :: (K k0) => k0 -> Krate
+ CsoundExpr.Opcodes.Zak.Top: zkr :: K k0 => k0 -> Krate
- CsoundExpr.Tutorial.Orchestra: exmpArith :: (K k0) => k0 -> SignalOut
+ CsoundExpr.Tutorial.Orchestra: exmpArith :: K k0 => k0 -> SignalOut
Files
- Changelog +11/−0
- csound-expression.cabal +7/−2
- src/CsoundExpr/Base.hs +2/−0
- src/CsoundExpr/Base/Arithmetic.hs +30/−12
- src/CsoundExpr/Base/Boolean.hs +85/−0
- src/CsoundExpr/Base/Imperative.hs +3/−1
- src/CsoundExpr/Base/Types.hs +4/−2
- src/CsoundExpr/Base/UserDefined.hs +21/−4
- src/CsoundExpr/Translator/AssignmentElimination.hs +1/−1
- src/CsoundExpr/Translator/Cs/CsBoolean.hs +139/−0
- src/CsoundExpr/Translator/Cs/CsTree.hs +12/−29
- src/CsoundExpr/Translator/Cs/CsoundFile.hs +15/−22
- src/CsoundExpr/Translator/Types.hs +10/−10
- src/CsoundExpr/Tutorial/Orchestra.hs +3/−1
+ Changelog view
@@ -0,0 +1,11 @@+-> 0.1.0 new type BoolRate, functional if/then/else is possible+ new operators : <^>, <%>+ scaling becomes ^* (due to <* is defined as lower then for signals)++-> 0.0.3 fix a bug with p-fields assignment++-> 0.0.2 fix a bug in dependencies++-> 0.0.1 add Tutorial++0.0
csound-expression.cabal view
@@ -1,5 +1,5 @@ Name: csound-expression-Version: 0.0.3+Version: 0.1.0 Cabal-Version: >= 1.2 License: BSD3 License-File: LICENSE@@ -12,16 +12,20 @@ Tested-With: GHC==6.12.1 Build-Type: Simple +Extra-Source-Files : + Changelog Library Build-Depends:- base >= 4, base < 5, containers, mtl == 2.0.1.0, pretty, filepath, directory, haskell98, temporal-media == 0.0+ base >= 4, base < 5, containers, mtl == 2.0.1.0, pretty, + filepath, directory, haskell98, Boolean, temporal-media == 0.0 Hs-Source-Dirs: src/ Exposed-Modules: CsoundExpr -- Base CsoundExpr.Base CsoundExpr.Base.Types+ CsoundExpr.Base.Boolean CsoundExpr.Base.Imperative CsoundExpr.Base.MultiOut CsoundExpr.Base.SideEffect@@ -159,6 +163,7 @@ -- Cs CsoundExpr.Translator.Cs.CsoundFile CsoundExpr.Translator.Cs.CsTree+ CsoundExpr.Translator.Cs.CsBoolean CsoundExpr.Translator.Cs.IM CsoundExpr.Translator.Cs.Utils -- Translator
src/CsoundExpr/Base.hs view
@@ -5,6 +5,7 @@ -- and "CsoundExpr.Base.Pitch". module CsoundExpr.Base ( module CsoundExpr.Base.Types,+ module CsoundExpr.Base.Boolean, module CsoundExpr.Base.Imperative, module CsoundExpr.Base.MultiOut, module CsoundExpr.Base.Arithmetic,@@ -17,6 +18,7 @@ where import CsoundExpr.Base.Types+import CsoundExpr.Base.Boolean import CsoundExpr.Base.Imperative import CsoundExpr.Base.MultiOut import CsoundExpr.Base.Arithmetic
src/CsoundExpr/Base/Arithmetic.hs view
@@ -6,7 +6,7 @@ -- | Arithmetic operators module CsoundExpr.Base.Arithmetic - (Opr2, (<+>), neg, (<->), (<*>), (</>), (<*))+ (Opr2, (<+>), neg, (<->), (<*>), (</>), (<^>), (<%>), (^*)) where import Prelude hiding (div)@@ -21,16 +21,19 @@ import CsoundExpr.Base.Types (Irate(..), Krate(..), Arate(..)) -infixr 8 <* +import CsoundExpr.Base.Boolean++infixr 9 ^* +infixr 8 <^> infixr 7 <*>, </>-infixr 6 <+>, <->+infixr 6 <+>, <->, <%> subst :: (IM d a, IM d b, IM d c) => (d -> d -> c) -> (a -> b -> c) subst f x y = f (to x) (to y) opr1 :: IM CsTree a => Name -> (Double -> Double) -> CsTree -> a-opr1 name fun a = maybe (infixOperation name $ return a) +opr1 name fun a = maybe (unaryInfixOperation name a) from (optim1 fun a) opr1p :: IM CsTree a => Name -> (Double -> Double) -> CsTree -> a@@ -59,21 +62,33 @@ ---------------------------------------------------------- -- Type inference -(<+>), (<->), (<*>), (</>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b+(<+>), (<->), (<*>), (</>), (<^>), (<%>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b (<+>) = subst $ opr2 "+" (+) (<->) = subst $ opr2 "-" (-) (<*>) = subst $ opr2 "*" (*) (</>) = subst $ opr2 "/" (/) +-- | "power of" operator+(<^>) = subst $ opr2 "^" (**)++-- | modulus operator+(<%>) = subst $ opr2 "%" modDouble+ -- | negation neg :: (X a) => a -> a neg = opr1 "-" negate . to --- | Scaling-(<*) :: X a => Irate -> a -> a-(<*) = subst $ opr2 "*" (*)+-- | scaling+(^*) :: X a => Irate -> a -> a+(^*) = subst $ opr2 "*" (*) ++modDouble :: Double -> Double -> Double+modDouble a b = signum a * until ( < b') (+ (-b')) a'+ where a' = abs a+ b' = abs b+ ---------------------------------------------------------- -- Num instances --@@ -96,7 +111,7 @@ (+) = (<+>) (*) = (<*>) abs = opr1p "abs" abs . to- signum = error "is undefined"+ signum x = ifB (krate x >* num 0) 1 $ ifB (krate x <* num 0) (-1) 0 (-) = (<->) fromInteger = double . fromInteger @@ -110,7 +125,7 @@ (+) = (<+>) (*) = (<*>) abs = opr1p "abs" abs . to- signum = error "is undefined"+ signum x = ifB (x >* num 0) 1 $ ifB (x <* num 0) (-1) 0 (-) = (<->) fromInteger = double . fromInteger @@ -124,13 +139,16 @@ (+) = (<+>) (*) = (<*>) abs = opr1p "abs" abs . to- signum = error "is undefined"+ signum x = ifB (x >* num 0) 1 $ ifB (x <* num 0) (-1) 0 (-) = (<->) fromInteger = double . fromInteger +num :: Irate -> Irate+num = id instance Fractional Irate where (/) = (</>) fromRational = double . fromRational -+--------------------------------------------------+--
+ src/CsoundExpr/Base/Boolean.hs view
@@ -0,0 +1,85 @@+-- | replica of "Data.Boolean" module. Booleans for csound signals+module CsoundExpr.Base.Boolean (+ BoolRate,+ true, false, notB, (&&*), (||*),+ (==*), (/=*), (<*), (>*), (<=*), (>=*),+ ifB, minB, maxB, cond, crop+ )+ where++import CsoundExpr.Translator.Types+import CsoundExpr.Translator.Cs.IM++import qualified CsoundExpr.Translator.Cs.CsTree as La+import CsoundExpr.Translator.Cs.CsBoolean++import qualified Data.Boolean as B+import Data.Monoid+import Control.Applicative hiding ((<*))+++--------------------------------------------+-- Boolean instances++toCs :: X a => a -> La.CsTree+toCs = to++-----------------------------------------+-- BoolRate++infixr 3 &&*+infixr 2 ||*++true = BoolRate B.true+false = BoolRate B.false+notB (BoolRate a) = BoolRate $ B.notB a+BoolRate a &&* BoolRate b = BoolRate $ a B.&&* b+BoolRate a ||* BoolRate b = BoolRate $ a B.||* b++-- IfB++ifB :: X a => BoolRate -> a -> a -> a+ifB (BoolRate c) a b = from $ B.ifB c (toCs a) (toCs b)++-- EqB++infix 4 ==*, /=*++biOp :: (K a, K b) => + (La.CsTree -> La.CsTree -> CsBool) + -> a -> b -> BoolRate+biOp op a b = BoolRate $ toCs a `op` toCs b+++(==*), (/=*) :: (K a, K b) => a -> b -> BoolRate++(==*) = biOp (B.==*)+(/=*) = biOp (B./=*)++-- OrdB++infix 4 <*, <=*, >=*, >*++(<*), (>*), (>=*), (<=*) :: (K a, K b) => a -> b -> BoolRate++(<*) = biOp (B.<*)+(>*) = biOp (B.>*)++(>=*) = biOp (B.>=*)+(<=*) = biOp (B.<=*)++-- aux++cond :: (Applicative f, K a) => f BoolRate -> f a -> f a -> f a+cond f a b = fmap from $ B.cond (fmap (\(BoolRate a) -> a) f) (fmap toCs a) (fmap toCs b)++crop :: (Applicative f, Monoid (f a), K a) => f BoolRate -> f a -> f a+crop f a = cond f a mempty+++minB, maxB :: K a => a -> a -> a++minB a b = ifB (a <=* b) a b+maxB a b = ifB (a >=* b) a b++
src/CsoundExpr/Base/Imperative.hs view
@@ -43,7 +43,8 @@ gir :: Name -> Irate gir = argIn GI - ++ fromArgIn :: (IM CsTree a) => a -> (Rate, Name) fromArgIn a | isArg e = (argRate e, argName e)@@ -59,6 +60,7 @@ class Assign a where+ (<=>) :: a -> a -> SignalOut
src/CsoundExpr/Base/Types.hs view
@@ -1,7 +1,10 @@+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}+ module CsoundExpr.Base.Types (X(..), K, Arate, Krate, Irate, SignalOut, - itime, idur, num, double, string)+ itime, idur, num, double, string+ ) where import Text.PrettyPrint(Doc, vcat, text, space)@@ -56,5 +59,4 @@ instance Show SignalOut where show x = show $ vcat [title , ppCsTrees $ fromSignalOut x] where title = text "; SignalOut expression :"-
src/CsoundExpr/Base/UserDefined.hs view
@@ -13,8 +13,8 @@ module CsoundExpr.Base.UserDefined (IM(..), Opr2(..), - opcode, outOpcode, - infixOperation, prefixOperation)+ opcode, outOpcode, operation,+ infixOperation, prefixOperation, unaryInfixOperation) where import CsoundExpr.Translator.Cs.IM@@ -61,6 +61,19 @@ outOpcode :: String -> [CsTree] -> SignalOut outOpcode name = SignalOut . return . opcode name +-- | operation constructor+--+-- names can be anywhere between arguments+--+-- > operation names args +--+-- in csound code becomes+--+-- > names !! 0 ++ show (args !! 0) ++ names !! 1 ++ show (args !! 1) ++ ... +operation :: IM CsTree a => [String] -> [CsTree] -> a+operation names = from . pure (opr names) ++ -- | Infix operation constructor -- -- Example : @@ -70,8 +83,9 @@ -- > add :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b -- > add a b = infixOperation "+" [to a, to b] --+ infixOperation :: IM CsTree a => String -> [CsTree] -> a-infixOperation name = from . pure (oprInfix name)+infixOperation name = from . pure (opr ["(", name, ")"]) -- | Prefix operation constructor --@@ -83,8 +97,11 @@ -- > csSin a = prefixOperation "sin" [to a] -- prefixOperation :: IM CsTree a => String -> [CsTree] -> a-prefixOperation name = from . pure (oprPrefix name)+prefixOperation name = from . pure (opr [name ++ "(", ")"]) ++unaryInfixOperation :: IM CsTree a => String -> CsTree -> a+unaryInfixOperation name = from . pure (opr ["(" ++ name, ")"]) . return -- | 'Opr2' @a@ @b@ - defines output type of binary arithmetic operator --
src/CsoundExpr/Translator/AssignmentElimination.hs view
@@ -98,7 +98,7 @@ oprArgOut x = Just $ numArgName (toCsRate $ head $ rates x) (layerOut x) oprRateInfo x = SingleOut $ toCsRate $ head $ rates x-oprBody m x = ("=", [Cs.ArgInOpr (La.oprName $ op x) (toOprType $ La.oprType $ op x) args])+oprBody m x = ("=", [Cs.ArgInOpr (La.oprName $ op x) args]) where args = map (substArg m) $ layerIn x oprSubstTableValue m x = (oprRateInfo x, oprBody m x)
+ src/CsoundExpr/Translator/Cs/CsBoolean.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE MultiParamTypeClasses, TypeSynonymInstances #-}++module CsoundExpr.Translator.Cs.CsBoolean (CsBool) +where++import Data.Boolean+import CsoundExpr.Translator.Cs.CsTree+import CsoundExpr.Translator.ExprTree.ExprTree++----------------------------------------------+-- low level operations++mkAnd, mkOr :: CsTree -> CsTree -> CsTree++mkAnd a b = pure (oprInfix "&&") [a, b]+mkOr a b = pure (oprInfix "||") [a, b]++mkComp :: CompOp -> CsTree -> CsTree -> CsTree+mkComp op a b = pure (oprInfix $ show op) [a, b]++mkIf :: CsTree -> CsTree -> CsTree -> CsTree+mkIf cond th el = pure ifOpr [cond, th, el]++oprInfix :: Name -> CsExpr+oprInfix name = opr ["(", name, ")"]++ifOpr :: CsExpr +ifOpr = opr ["(", "?", ":",")"]++-------------------------------------------------+-- Booleans++data CsBool = CsBPrim CsComp+ | CsTrue + | CsFalse + | CsNot CsBool + | CsAnd CsBool CsBool + | CsOr CsBool CsBool++data CsComp = CsComp CompOp CsTree CsTree++data CompOp = CsEq | CsNeq | CsLt | CsGt | CsElt | CsEgt++instance Show CompOp where+ show x = case x of+ CsEq -> "=="+ CsNeq -> "!="+ CsLt -> "<"+ CsGt -> ">"+ CsElt -> "<="+ CsEgt -> ">="++notCompOp :: CompOp -> CompOp+notCompOp x = case x of+ CsEq -> CsNeq+ CsNeq -> CsEq+ CsLt -> CsEgt+ CsGt -> CsElt+ CsElt -> CsGt+ CsEgt -> CsLt++instance Boolean CsBool where+ true = CsTrue+ false = CsFalse+ notB = CsNot++ a &&* b = case (a, b) of+ (CsTrue, _) -> b+ (CsFalse, _) -> CsFalse+ (_, CsTrue ) -> a+ (_, CsFalse) -> CsFalse+ _ -> CsAnd a b++ a ||* b = case (a, b) of+ (CsTrue, _) -> CsTrue+ (CsFalse, _) -> b+ (_, CsTrue ) -> CsTrue+ (_, CsFalse) -> a+ _ -> CsOr a b+++------------------------------------------------------+-- nots elimination++data Ctx = N | P++elimNots :: Ctx -> CsBool -> CsBool+elimNots P x = + case x of+ CsNot a -> elimNots N a+ CsAnd a b -> CsAnd (elimNots P a) (elimNots P b)+ CsOr a b -> CsOr (elimNots P a) (elimNots P b) + _ -> x++elimNots N x =+ case x of+ CsBPrim (CsComp op a b) -> CsBPrim (CsComp (notCompOp op) a b)+ CsTrue -> CsFalse+ CsFalse -> CsTrue+ CsNot a -> elimNots P a+ CsAnd a b -> CsOr (elimNots N a) (elimNots N b)+ CsOr a b -> CsAnd (elimNots N a) (elimNots N b)++---------------------------------------------------++instance IfB CsBool CsTree where+ ifB cond a b = let cond' = elimNots P cond + in case cond' of+ CsTrue -> a+ CsFalse -> b+ CsNot c -> ifB c b a+ _ -> mkIf (getCondCsTree cond') a b+++getCondCsTree :: CsBool -> CsTree+getCondCsTree x = + case x of+ CsBPrim a -> getCompCsTree a+ CsAnd a b -> mkAnd (getCondCsTree a) (getCondCsTree b)+ CsOr a b -> mkOr (getCondCsTree a) (getCondCsTree b)++getCompCsTree :: CsComp -> CsTree+getCompCsTree (CsComp op a b) = mkComp op a b+++bOp :: CompOp -> CsTree -> CsTree -> CsBool+bOp op a b = CsBPrim $ CsComp op a b+++instance EqB CsBool CsTree where+ (==*) = bOp CsEq+ (/=*) = bOp CsNeq+++instance OrdB CsBool CsTree where+ (<*) = bOp CsLt+ (>*) = bOp CsGt+ (<=*) = bOp CsElt+ (>=*) = bOp CsEgt
src/CsoundExpr/Translator/Cs/CsTree.hs view
@@ -7,9 +7,9 @@ -- types CsTree, Rate(..), CsExpr(..),- Value(..), OprType(..), Ftable(..), GEN(..), Name, Label,+ Value(..), Ftable(..), GEN(..), Name, Label, -- constructors- opc, oprPrefix, oprInfix,+ opc, opr, int, double, string, ftable, param, argIn, argOut, -- predicates@@ -18,7 +18,7 @@ equalStructure, equalStructureByParams, -- selectors toFtable, ftableGENArgs, ftableSize, ftableGENId, getFtable, - mapFtable, toDouble, opcName, oprName, oprType, paramId, value, + mapFtable, toDouble, opcName, oprName, paramId, value, argName, argRate ) where@@ -44,20 +44,16 @@ | Param Id | Arg Rate Name | Opc Name- | Opr Name OprType+ | Opr [Name] deriving (Show, Eq, Ord) data Value = ValueInt Int | ValueDouble Double | ValueString String- | ValueFtable Ftable+ | ValueFtable Ftable deriving (Show, Eq, Ord) -data OprType = Infix | Prefix- deriving (Show, Eq, Ord)-- data Ftable = EmptyFtable | Ftable Size GEN deriving (Show, Eq, Ord)@@ -65,11 +61,6 @@ data GEN = GEN Id [CsTree] deriving (Show, Eq, Ord) -----type Id = Int---type Size = Int- type Name = String type Label = Int @@ -116,11 +107,8 @@ opc :: Name -> CsExpr opc = Opc -oprPrefix :: Name -> CsExpr-oprPrefix = flip Opr Prefix--oprInfix :: Name -> CsExpr-oprInfix = flip Opr Infix+opr :: [Name] -> CsExpr+opr = Opr ------------------------------------------ -- CsTree Selectors@@ -157,15 +145,10 @@ (Opc x) -> x _ -> error "expr is no Opc" -oprName :: CsExpr -> Name+oprName :: CsExpr -> [Name] oprName x = case x of- (Opr x _) -> x- _ -> error "expr is no Opr" --oprType :: CsExpr -> OprType-oprType x = case x of- (Opr _ x) -> x- _ -> error "expr is no Opr" + (Opr x) -> x+ _ -> error "expr is no Opr" argName :: CsExpr -> Name@@ -224,8 +207,8 @@ isOpr :: CsExpr -> Bool isOpr x = case x of- (Opr _ _) -> True- _ -> False+ (Opr _) -> True+ _ -> False isArg :: CsExpr -> Bool isArg x = case x of
src/CsoundExpr/Translator/Cs/CsoundFile.hs view
@@ -2,7 +2,7 @@ CsoundFile(..), Flags, Orchestra(..), Scores(..), Value(..), Rate(..), ArgName(..), Param(..),- Header(..), Instr(..), OpcodeExpr(..), ArgOut, ArgIn(..), OprType(..),+ Header(..), Instr(..), OpcodeExpr(..), ArgOut, ArgIn(..), Ftable(..), FtableInits(..), GEN(..), TotalDuration(..), Note(..), NoteInits(..), defTempo )@@ -53,12 +53,9 @@ data ArgIn = ArgInName ArgName | ArgInParam Param | ArgInValue Value- | ArgInOpr Name OprType [ArgIn]+ | ArgInOpr [Name] [ArgIn] deriving (Eq, Ord) -data OprType = Infix | Prefix- deriving (Eq, Ord)- -- Scores subtypes data Ftable = Ftable Id FtableInits GEN @@ -253,23 +250,19 @@ show (ArgInParam x) = show x show (ArgInValue x) = show x -- operators- show (ArgInOpr op opType xs) = printOperator op opType xs--- if (Map.member op operators)--- then --- else error "no such operator"- -printOperator :: Name -> OprType -> [ArgIn] -> String-printOperator op desc args = - case desc of- Prefix -> show $ opStr <> (parens $ hcat $ argsStr) - Infix -> show $ parens $ hcat $ punctuate space [arg1Str, opStr, arg2Str]- where opStr = text op- argsStr = punctuate (comma <> space) $ map (text . show) args- (arg1Str, arg2Str) = - if length args == 1- then (text "", parens $ text $ show $ head args)- else (text $ show (args !! 0), text $ show (args !! 1))- + show (ArgInOpr op xs) = printOperator op xs+ +printOperator :: [Name] -> [ArgIn] -> String+printOperator op args = show $ hcat $ mergeLists opDoc argsDoc+ where argsDoc = map (text . show) args+ opDoc = map text op++mergeLists :: [a] -> [a] -> [a]+mergeLists x x' = case (x, x') of+ ([], _) -> x'+ (_ , []) -> x+ (a:as, b:bs) -> a : b : mergeLists as bs+ ---------------------------------------------------- ----------------------------------------------------
src/CsoundExpr/Translator/Types.hs view
@@ -15,7 +15,8 @@ SignalOut(..), outList, fromSignalOut, Header, SignalInit(..), Arate(..), Krate(..), Irate(..), X(..), K(..), MO(..),- toValue, toCsRate, gRate, isArgOut, toOprType+ BoolRate(..), + toValue, toCsRate, gRate, isArgOut ) where @@ -26,6 +27,7 @@ import CsoundExpr.Translator.Cs.IM import qualified CsoundExpr.Translator.Cs.CsTree as La import qualified CsoundExpr.Translator.Cs.CsoundFile as Cs+import CsoundExpr.Translator.Cs.CsBoolean type Time = Double type Dur = Time@@ -80,6 +82,10 @@ -- | init variable data Irate = Irate La.CsTree ++-- | boolean signal. Type for comparison of control or init rate signals.+data BoolRate = BoolRate CsBool+ -- rate classes -- IM@@ -132,16 +138,16 @@ instance X Arate where arate = id krate = from . pure (La.opc "downsamp") . return . toCsTree- irate = from . pure (La.oprPrefix "i") . return . toCsTree . krate + irate = from . pure (La.opr ["i(", ")"]) . return . toCsTree . krate instance X Krate where arate = from . pure (La.opc "upsamp") . return . toCsTree krate = id- irate = from . pure (La.oprPrefix "i") . return . toCsTree+ irate = from . pure (La.opr ["i(", ")"]) . return . toCsTree instance X Irate where arate = from . pure (La.opc "upsamp") . return . toCsTree- krate = from . pure (La.oprPrefix "k") . return . toCsTree+ krate = from . pure (La.opr ["k(", ")"]) . return . toCsTree irate = id toCsTree :: X a => a -> La.CsTree@@ -226,10 +232,4 @@ Cs.A -> Cs.GA Cs.K -> Cs.GK Cs.I -> Cs.GI--toOprType :: La.OprType -> Cs.OprType-toOprType x = case x of- La.Infix -> Cs.Infix- La.Prefix -> Cs.Prefix-
src/CsoundExpr/Tutorial/Orchestra.hs view
@@ -25,7 +25,7 @@ Signals are represented with trees. Tree contains information about how signal was build. - There are four types for signals ("CsoundExpr.Base.Types").+ There are five types for signals ("CsoundExpr.Base.Types"). 'Arate' is audio rate signal @@ -34,6 +34,8 @@ 'Irate' is init value 'SignalOut' is no output at all (it's produced by opcodes like out, outs, xtratim) ++ 'BoolRate' is comparision of two control or init rate signals There are two classes to allow csound's polymorphism : 'X' and 'K'