hmt-0.20: Haskell Music Theory
Safe HaskellSafe-Inferred
LanguageHaskell2010

Music.Theory.Clef

Description

Common music notation clefs.

Synopsis

Documentation

data Clef_Type Source #

Clef enumeration type.

Constructors

Bass 
Tenor 
Alto 
Treble 
Percussion 

Instances

Instances details
Show Clef_Type Source # 
Instance details

Defined in Music.Theory.Clef

Eq Clef_Type Source # 
Instance details

Defined in Music.Theory.Clef

Ord Clef_Type Source # 
Instance details

Defined in Music.Theory.Clef

data Clef i Source #

Clef with octave offset.

Constructors

Clef 

Fields

Instances

Instances details
Show i => Show (Clef i) Source # 
Instance details

Defined in Music.Theory.Clef

Methods

showsPrec :: Int -> Clef i -> ShowS #

show :: Clef i -> String #

showList :: [Clef i] -> ShowS #

Eq i => Eq (Clef i) Source # 
Instance details

Defined in Music.Theory.Clef

Methods

(==) :: Clef i -> Clef i -> Bool #

(/=) :: Clef i -> Clef i -> Bool #

Ord i => Ord (Clef i) Source # 
Instance details

Defined in Music.Theory.Clef

Methods

compare :: Clef i -> Clef i -> Ordering #

(<) :: Clef i -> Clef i -> Bool #

(<=) :: Clef i -> Clef i -> Bool #

(>) :: Clef i -> Clef i -> Bool #

(>=) :: Clef i -> Clef i -> Bool #

max :: Clef i -> Clef i -> Clef i #

min :: Clef i -> Clef i -> Clef i #

clef_range :: Clef_Type -> Maybe (Pitch, Pitch) Source #

Give clef range as a Pitch pair indicating the notes below and above the staff.

map clef_range [Treble,Bass] == [Just (d4,g5),Just (f2,b3)]
clef_range Percussion == Nothing

clef_suggest :: Integral i => Pitch -> Clef i Source #

Suggest a Clef given a Pitch.

map clef_suggest [c2,c4] == [Clef Bass (-1),Clef Treble 0]

clef_zero :: Integral i => Clef i -> Clef i Source #

Set clef_octave to 0.

clef_restrict :: Integral i => i -> Clef i -> Clef i Source #

Set clef_octave to be no further than r from 0.