diff --git a/music-dynamics-literal.cabal b/music-dynamics-literal.cabal
--- a/music-dynamics-literal.cabal
+++ b/music-dynamics-literal.cabal
@@ -1,6 +1,6 @@
 
 name:                   music-dynamics-literal
-version:                1.7.1
+version:                1.7.2
 author:                 Hans Hoglund
 maintainer:             Hans Hoglund
 license:                BSD3
diff --git a/src/Music/Dynamics/Literal.hs b/src/Music/Dynamics/Literal.hs
--- a/src/Music/Dynamics/Literal.hs
+++ b/src/Music/Dynamics/Literal.hs
@@ -9,29 +9,36 @@
 -- Stability   : experimental
 -- Portability : portable
 --
--- Provides overloaded pitch literals.
+-- Provides overloaded dynamic literals.
 --
 -------------------------------------------------------------------------------------
 
 module Music.Dynamics.Literal (
+        -- * IsDynamics class
         DynamicsL(..),
         IsDynamics(..),
 
-        pppppp, ppppp, pppp, ppp, pp, _p, 
-        mp, mf, 
+        -- * Literal values
+
+        -- ** Standard dynamics
+        pppppp, ppppp, pppp, ppp, pp, _p,
+        mp, mf,
         _f, ff, fff, ffff, fffff, ffffff,
         
+        -- ** Other dynamics
         sffz, sfz, fz, rfz, fp
   ) where
 
-import Data.Semigroup
-import Control.Applicative
+import           Control.Applicative
+import           Data.Fixed
+import           Data.Ratio
+import           Data.Semigroup
 
--- | 
+-- |
 -- Dynamics literal.
 --
 -- First value is start value, second is end value.
--- 
+--
 -- * @(Just x, Nothing)@ is a constant dynamic of @x@
 -- * @(Just x, Just y)@ is a dynamic varying from @x@ to @y@
 -- * @(Nothing, Just y)@ is a dynamic varying from the previous level to @y@
@@ -44,7 +51,7 @@
     deriving (Eq, Show, Ord)
 
 -- Like Num can be expressed using arabic numerals, instances
--- of IsDynamics can be expressed using Western pitch names (c, c sharp, c flat etc)    
+-- of IsDynamics can be expressed using Western pitch names (c, c sharp, c flat etc)
 class IsDynamics a where
     fromDynamics :: DynamicsL -> a
 
@@ -59,6 +66,15 @@
 
 instance IsDynamics a => IsDynamics [a] where
     fromDynamics = pure . fromDynamics
+
+instance IsDynamics Float where
+    fromDynamics x = realToFrac (fromDynamics x :: Double)
+
+instance HasResolution a => IsDynamics (Fixed a) where
+    fromDynamics x = realToFrac (fromDynamics x :: Double)
+
+instance Integral a => IsDynamics (Ratio a) where
+    fromDynamics x = realToFrac (fromDynamics x :: Double)
 
 instance IsDynamics Double where
     fromDynamics (DynamicsL (Just x, _)) = x
