Aoide-0.1.0.2: A simple music library with the capability of generating .ly and .mid files.

Safe HaskellNone
LanguageHaskell2010

Composition.Lilypond

Description

This module contains the data structures and the function for generating Lilypond files from note sequences.

Synopsis

Documentation

data Basic_clef Source #

Basic clefs without octave transposition.

Instances
Show Basic_clef Source # 
Instance details

Defined in Composition.Lilypond

data Bracket Source #

Staves can be separate from other staves or grouped with some of the other staves in a bracket. The curly bracket groups staves of the same instrument, for example, the left- and right-hand part for the keyboard. The square bracket groups several instruments in the same family, for example, the strings.

Instances
Show Bracket Source # 
Instance details

Defined in Composition.Lilypond

data Clef Source #

Clefs with octave transposition. The second argument indicates the number of octaves by which the clef is transposed.

Constructors

Clef Basic_clef Int 
Instances
Show Clef Source # 
Instance details

Defined in Composition.Lilypond

Methods

showsPrec :: Int -> Clef -> ShowS #

show :: Clef -> String #

showList :: [Clef] -> ShowS #

data Field field_name Source #

The type that generalises score and part header fields.

Constructors

Field field_name String 
Instances
Show field_name => Show (Field field_name) Source # 
Instance details

Defined in Composition.Lilypond

Methods

showsPrec :: Int -> Field field_name -> ShowS #

show :: Field field_name -> String #

showList :: [Field field_name] -> ShowS #

data Instrument_stave Source #

A stave with optional instrument specification.

data Part Source #

Each part can have a different time signature, tempo and instrumentation. The first argument is the list of header fields that may include, for example, the title of the part. The second argument is the list of accidentals. For example, the key signature of C minor would be [E_flat, A_flat, B_flat].

Instances
Show Part Source # 
Instance details

Defined in Composition.Lilypond

Methods

showsPrec :: Int -> Part -> ShowS #

show :: Part -> String #

showList :: [Part] -> ShowS #

data Part_header_field_name Source #

Lilypond header fields that apply to only one part of the whole document.

Constructors

Opus 
Piece 

data Score Source #

The first argument is the list of score header fields that may include, for example, the composer, the dedication, the instrument, the subtitle and the title.

Instances
Show Score Source # 
Instance details

Defined in Composition.Lilypond

Methods

showsPrec :: Int -> Score -> ShowS #

show :: Score -> String #

showList :: [Score] -> ShowS #

data Stave Source #

A stave consists of one homorhythmic note sequence. Heterorhythmic voices have to be notated on separate staves.

Constructors

Stave Clef [Simultaneous] 
Instances
Show Stave Source # 
Instance details

Defined in Composition.Lilypond

Methods

showsPrec :: Int -> Stave -> ShowS #

show :: Stave -> String #

showList :: [Stave] -> ShowS #

lilypond :: String -> Score -> IO () Source #

Encodes the score in Lilypond format, writes it to the specified file and generates the pdf by calling lilypond.