Karya, built on Mon Jul 24 11:39:07 PDT 2017 (patch 33511aca01257b76b88de7c7a2763b7a965c084e)

Safe HaskellNone

Derive.Control

Contents

Description

Derivers for control tracks. That means tempo, control, and pitch.

Control and pitch tracks can have a Merger. If no merger is given, they are combined with get_default_merger. set will replace the signal. So two tracks named c will multiply, same as if the second were mul c. If you want to override c then set c will do that.

Tempo tracks don't support mergers because they are converted into a warp, which is then combined via composition. Pitch tracks normally replace each other because adding together absolute pitches is undefined. Relative pitches can be added or multiplied, and this is expressed via normal controls using transposition signals like Controls.chromatic.

Synopsis

Documentation

data Config Source #

Constructors

Config 

Fields

Instances

d_control_track :: Config -> TrackTree.Track -> NoteDeriver -> NoteDeriver Source #

Top level deriver for control tracks.

track_info :: Monoid d => TrackTree.Track -> ParseTitle.Type -> EvalTrack.TrackInfo d Source #

Make a TrackInfo for control tracks.

TrackSignal

render_of :: TrackTree.Track -> Deriver (Maybe (BlockId, TrackId, Maybe Track.RenderSource)) Source #

Get render information if this track wants a TrackSignal.

derive_control :: Bool -> TrackTree.Track -> (ControlDeriver -> ControlDeriver) -> Deriver (TrackResults Signal.Control) Source #

Derive the signal of a control track.