musicxml2-1.4: src/Music/MusicXml/Dynamics.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-------------------------------------------------------------------------------------
-- |
-- Copyright : (c) Hans Hoglund 2012
--
-- License : BSD-style
--
-- Maintainer : hans@hanshoglund.se
-- Stability : experimental
-- Portability : portable
--
-------------------------------------------------------------------------------------
module Music.MusicXml.Dynamics (
Dynamics(..)
) where
import Music.Dynamics.Literal
data Dynamics
= PPPPPP | PPPPP | PPPP | PPP | PP | P
| MP | MF
| F | FF | FFF | FFFF | FFFFF | FFFFFF
| SF | SFP | SFPP
| FP | RF
| RFZ
| SFZ | SFFZ | FZ
deriving (Eq, Ord, Show, Enum, Bounded)
instance IsDynamics Dynamics where
fromDynamics (DynamicsL (Just x, Nothing)) = case x of
(-6.5) -> PPPPPP
(-5.5) -> PPPPP
(-4.5) -> PPPP
(-3.5) -> PPP
(-2.5) -> PP
(-1.5) -> P
(-0.5) -> MP
0.5 -> MF
1.5 -> F
2.5 -> FF
3.5 -> FFF
4.5 -> FFFF
5.5 -> FFFFF
6.5 -> FFFFFF
fromDynamics _ = error "fromDynamics: Unsupported literal for MusicXml.Dynamics"