packages feed

vivid 0.2.0.2 → 0.2.0.3

raw patch · 2 files changed

+45/−1 lines, 2 filesdep ~base

Dependency ranges changed: base

Files

+ Vivid/OSC/Util.hs view
@@ -0,0 +1,43 @@+{-# OPTIONS_HADDOCK show-extensions #-}++{-# LANGUAGE NoRebindableSyntax #-}+{-# LANGUAGE NoIncoherentInstances #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# LANGUAGE NoUndecidableInstances #-}++module Vivid.OSC.Util (+     align+   , floatToWord+   , wordToFloat+   , doubleToWord+   , wordToDouble+   ) where++import Data.Bits ((.&.), complement, Bits)+import qualified Foreign as F+import System.IO.Unsafe (unsafePerformIO)++-- from hosc:+align :: (Num i,Bits i) => i -> i+{-# INLINE align #-}+align n = ((n + 3) .&. complement 3) - n+++-- from data-binary-ieee754:+floatToWord :: Float -> F.Word32+floatToWord = coercionThing++wordToFloat :: F.Word32 -> Float+wordToFloat = coercionThing++doubleToWord :: Double -> F.Word64+doubleToWord = coercionThing++wordToDouble :: F.Word64 -> Double+wordToDouble = coercionThing+++coercionThing :: (F.Storable a, F.Storable b) => a -> b+coercionThing x = unsafePerformIO $ F.alloca $ \buf -> do+   F.poke (F.castPtr buf) x+   F.peek buf
vivid.cabal view
@@ -1,5 +1,5 @@ name:                vivid-version:             0.2.0.2+version:             0.2.0.3 synopsis:            Sound synthesis with SuperCollider description:            Music and sound synthesis with SuperCollider.@@ -60,6 +60,7 @@     , Vivid.Envelopes     , Vivid.NoPlugins     , Vivid.OSC+    , Vivid.OSC.Util     , Vivid.Randomness     , Vivid.SCServer     , Vivid.SCServer.Connection