\begin{code}
module Music.Analysis.MusicXML.Level1 (
module Music.Analysis.MusicXML.Level1,
)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 = (Step, Maybe Alter, Octave)
data Step = C | D | E | F | G | A | B
deriving (Eq, Show, Ord, Enum)
type Alter = Number
type Octave = IntegerNumber
type Rest = ()
type Type = Type_
data Type_ = Long | Breve |
Whole | Half | Quarter | Eighth |
Th16 | Th32 | Th64 | Th128 | Th256
deriving (Eq, Show, Ord, Enum)
type Dot = ()
type Accidental = Accidental_
data Accidental_ =
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, Ord, Enum)
\end{code}