prev (22) slide 23 / 33 next (24)

signals

newtype Signal y = Signal { sig_vec :: SignalBase.SigVec Y }
    -- The Eq instance is only for tests, since it may be quite expensive on
    -- a real signal.
    deriving (Eq)

type X = SignalBase.X
type Y = Double
instance SignalBase.Signal Y

-- | This is the type of performer-interpreted controls that go into the
-- event's control map.
type Control = Signal ControlSig
data ControlSig

... -- many more
instance Storable.Storable (X, Y) where
    ...

at, at_linear :: X → Signal y → Y
sig_add, sig_subtract, sig_multiply :: Control → Control → Control
integrate :: X → Tempo → Warp
compose :: Warp → Warp → Warp
prev (22) slide 23 / 33 next (24)