prev (23) slide 24 / 33 next (25)
tempo
tempo_to_warp :: Signal.Tempo → Signal.Warp
tempo_to_warp = Signal.integrate Signal.tempo_srate . Signal.map_y (1/)
. Signal.clip_min min_tempo
with_warp :: (Monad m) => (Warp → Warp) → DeriveT m a → DeriveT m a
d_stretch :: (Monad m) => TrackPos → DeriveT m a → DeriveT m a
d_at :: (Monad m) => TrackPos → DeriveT m a → DeriveT m a
local_to_global :: (Monad m) => TrackPos → DeriveT m TrackPos
d_sub :: TrackPos → TrackPos → TrackLang.CallId → Derive.EventDeriver
d_sub start dur call_id = do
begin <- local_to_global start
end <- local_to_global (start + dur)
d_at begin (d_stretch ((end-begin) / block_dur) (d_block block_id))
prev (23) slide 24 / 33 next (25)