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

Safe HaskellNone

Derive.ParseSkeleton

Synopsis

Documentation

default_parser :: [Ui.TrackInfo] -> Skeleton.Skeleton Source #

A parser figures out a skeleton based on track titles and position.

Tracks starting with > are instrument tracks, the rest are control tracks. A track titled "tempo" scopes over all tracks to its right. Below that, tracks scope left to right.

This should take arguments to apply to instrument and control tracks.

TODO do something special with embedded rulers and dividers

note_bottom_parser :: [Ui.TrackInfo] -> Skeleton.Skeleton Source #

The note-bottom parser puts note tracks at the bottom:

[tempo c1 i1 c2 i2] -> [tempo1 (c1 i1) (c2 i2)]

This is useful when you don't want to invoke slicing.

parse_to_tree :: Bool -> [Ui.TrackInfo] -> Tree.Forest Ui.TrackInfo Source #

c0 tempo1 i1 c1 tempo2 c2 i2 c3
->
c0, tempo1 (i1 c1), tempo2 (c2 c2 c3)