hamusic-0.1: src/Music/Analysis/MusicXML/Level1Num.lhs
\begin{code}
module Music.Analysis.MusicXML.Level1Num (
module Music.Analysis.MusicXML.Level1Num,
)where
import Music.Analysis.Base
\end{code}
\begin{code}
-- |
type Score_Partwise = [Music_Data]
--- |
--- type Part = [Measure]
--- |
--- type Measure = [Music_Data]
-- |
data Music_Data =
Music_Data_1 Note
--- | Music_Data_2 MusicXML.Backup
--- | Music_Data_3 MusicXML.Forward
--- | Music_Data_4 MusicXML.Direction
--- | Music_Data_5 Attributes
--- | Music_Data_6 MusicXML.Harmony
--- | Music_Data_7 MusicXML.Figured_Bass
--- | Music_Data_8 MusicXML.Print
--- | Music_Data_9 MusicXML.Sound
--- | Music_Data_10 Barline
--- | Music_Data_11 MusicXML.Grouping
--- | Music_Data_12 MusicXML.Link
--- | Music_Data_13 MusicXML.Bookmark
deriving (Eq, Show)
-- |
type Note = (Note_, Maybe Type, [Dot], Maybe Accidental)
-- |
data Note_ =
--- Note_1 (Grace, Full_Note, Maybe (Tie, Maybe Tie))
--- | Note_2 (Cue, Full_Note, Duration)
Note_3 Full_Note -- , Maybe (Tie, Maybe Tie))
deriving (Eq, Show)
-- |
type Full_Note = Full_Note_
-- |
data Full_Note_ = Full_Note_1 Pitch
--- | Full_Note_2 Unpitched
| Full_Note_3 Rest
deriving (Eq, Show)
-- |
type Pitch = (IntegerNumber, Maybe Alter)
-- |
type Alter = Number
-- |
type Rest = ()
-- |
type Type = Type_
-- |
type Type_ = IntegerNumber
-- Long | Breve |
-- Whole | Half | Quarter | Eighth |
-- Th16 | Th32 | Th64 | Th128 | Th256
-- deriving (Eq, Show)
-- |
type Dot = ()
-- |
type Accidental = Accidental_
-- |
type Accidental_ = IntegerNumber
-- Sharp | Natural | Flat |
-- Double_Sharp | Sharp_Sharp | Flat_Flat |
-- Natural_Sharp | Natural_Flat |
-- Quarter_Sharp | Quarter_Flat |
-- Three_Quarters_Sharp | Three_Quarters_Flat
-- deriving (Eq, Show)
\end{code}
\begin{nocode}
-- |
data Step = C | D | E | F | G | A | B
deriving (Eq, Show)
-- |
type Octave = IntegerNumber
-- |
type Alter = Number
-- |
type Pitch = (Step, Maybe Alter, Octave)
-- |
type Rest = ()
-- |
data Type =
Long | Breve | Whole | Half | Quarter | Eighth |
Th16 | Th32 | Th64 | Th128 | Th256
deriving (Eq, Show)
-- |
type Dots = IntegerNumber
-- |
type Note = (Either Pitch Rest, (Type, Dots))
-- |
type Music = [Note]
\end{nocode}