musicxml2-1.6: 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"