\begin{code}
-- | 
-- Maintainer : silva.samuel@alumni.uminho.pt
-- Stability  : experimental
-- Portability: portable
-- 
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}