\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]
data Music_Data =
Music_Data_1 Note
deriving (Eq, Show)
type Note = (Note_, Maybe Type, [Dot], Maybe Accidental)
data Note_ =
Note_3 Full_Note
deriving (Eq, Show)
type Full_Note = Full_Note_
data Full_Note_ = Full_Note_1 Pitch
| Full_Note_3 Rest
deriving (Eq, Show)
type Pitch = (IntegerNumber, Maybe Alter)
type Alter = Number
type Rest = ()
type Type = Type_
type Type_ = IntegerNumber
type Dot = ()
type Accidental = Accidental_
type Accidental_ = IntegerNumber
\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}