packages feed

med-module 0.1.2 → 0.1.2.1

raw patch · 2 files changed

+9/−3 lines, 2 files

Files

med-module.cabal view
@@ -1,5 +1,5 @@ Name:                med-module-Version:             0.1.2+Version:             0.1.2.1 Synopsis:            Parse song module files from Amiga MED and OctaMED Description:   MED (Music EDitor) and its successor OctaMED@@ -29,7 +29,7 @@ Cabal-Version:       >=1.10  Source-Repository this-  Tag:         0.1.2+  Tag:         0.1.2.1   Type:        darcs   Location:    http://hub.darcs.net/thielema/med-module 
src/Sound/MED/Raw/HybridInstr.hs view
@@ -6,6 +6,9 @@ import Sound.MED.Basic.Amiga import Sound.MED.Basic.Utility +import Control.Monad (liftM)++ data HybridInstr = HybridInstr   { defaultdecay :: UBYTE   , reserved     :: [ UBYTE ]@@ -27,6 +30,8 @@ {-# SPECIALISE peek :: PTR -> ByteStringReader HybridInstr #-} peek :: (Reader m) => PTR -> m HybridInstr peek p = do+  let nonEmpty (x:xs) = (x,xs)+      nonEmpty [] = error "list must be non-empty"   defaultdecay' <- peekUBYTE (p+6)   reserved'     <- mapM peekUBYTE $ pointerRange (p+7) 1 3   rep'          <- peekUWORD (p+10)@@ -38,7 +43,8 @@   wforms'       <- peekUWORD (p+20)   voltbl'       <- mapM peekUBYTE $ pointerRange (p+22) 1 128   wftbl'        <- mapM peekUBYTE $ pointerRange (p+150) 150 128-  wf0':wf''     <- mapM peekPTR   $ pointerRange (p+278) 4 64+  (wf0',wf'')   <- liftM nonEmpty $+                   mapM peekPTR   $ pointerRange (p+278) 4 64   wf'           <- mapM (SynthWF.peek . (p+) $?) wf''   return $ HybridInstr     defaultdecay' reserved' rep' replen' voltbllen' wftbllen'