\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}