synthesizer-dimensional 0.8.0.2 → 0.8.1
raw patch · 3 files changed
+39/−4 lines, 3 filesdep +semigroups
Dependencies added: semigroups
Files
- src/Synthesizer/Dimensional/Amplitude/Control.hs +30/−1
- src/Synthesizer/Dimensional/Rate/Dirac.hs +4/−0
- synthesizer-dimensional.cabal +5/−3
src/Synthesizer/Dimensional/Amplitude/Control.hs view
@@ -13,13 +13,25 @@ module Synthesizer.Dimensional.Amplitude.Control ( -- * Primitives constant, constantVector,++ -- * Piecewise constant+ piecewiseConstantGeneric,+ piecewiseConstantStorable, ) where import qualified Synthesizer.Dimensional.Signal.Private as SigA +import qualified Synthesizer.PiecewiseConstant.Signal as PC+import qualified Synthesizer.PiecewiseConstant.Generic as PCG+import qualified Synthesizer.PiecewiseConstant.Storable as PCSt+ import qualified Synthesizer.State.Control as Ctrl--- import qualified Synthesizer.State.Signal as Sig +import qualified Synthesizer.Generic.Signal as SigG++import qualified Synthesizer.Storable.Signal as SigSt+import Foreign.Storable (Storable)+ import qualified Number.DimensionTerm as DN import qualified Algebra.DimensionTerm as Dim @@ -52,3 +64,20 @@ -> SigA.R s u y yv constantVector y yv = SigA.fromBody y (Ctrl.constant yv)+++{-# INLINE piecewiseConstantGeneric #-}+piecewiseConstantGeneric ::+ (SigG.Write sig y) =>+ SigA.T rate amp (PC.T y) ->+ SigA.T rate amp (sig y)+piecewiseConstantGeneric =+ SigA.processBody PCG.toSignal++{-# INLINE piecewiseConstantStorable #-}+piecewiseConstantStorable ::+ (Storable y) =>+ SigA.T rate amp (PC.T y) ->+ SigA.T rate amp (SigSt.T y)+piecewiseConstantStorable =+ SigA.processBody PCSt.toSignal
src/Synthesizer/Dimensional/Rate/Dirac.hs view
@@ -10,6 +10,7 @@ import qualified Synthesizer.Dimensional.Rate as Rate import qualified Data.Monoid as Mn+import qualified Data.Semigroup as Sg import qualified Number.DimensionTerm as DN import qualified Algebra.DimensionTerm as Dim@@ -39,6 +40,9 @@ This type is so level that it could be moved to Synthesizer.Generic.Dirac. -} newtype T s sig = Cons {decons :: sig Bool}++instance Sg.Semigroup (sig Bool) => Sg.Semigroup (T s sig) where+ Cons x <> Cons y = Cons (x Sg.<> y) instance Mn.Monoid (sig Bool) => Mn.Monoid (T s sig) where mempty = Cons Mn.mempty
synthesizer-dimensional.cabal view
@@ -1,5 +1,5 @@ Name: synthesizer-dimensional-Version: 0.8.0.2+Version: 0.8.1 License: GPL License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -12,7 +12,7 @@ abstract from the sample rate in a statically type safe way. Stability: Experimental Tested-With: GHC==6.10.4, GHC==6.12.1, GHC==7.0.4, GHC==7.2.1-Cabal-Version: >=1.14+Cabal-Version: 1.14 Build-Type: Simple Extra-Source-Files:@@ -33,7 +33,7 @@ Location: http://code.haskell.org/synthesizer/dimensional/ Source-Repository this- Tag: 0.8.0.2+ Tag: 0.8.1 Type: darcs Location: http://code.haskell.org/synthesizer/dimensional/ @@ -41,6 +41,7 @@ Build-Depends: synthesizer-core >=0.8.1 && <0.9, transformers >=0.2 && <0.6,+ semigroups >=0.1 && <1.0, event-list >=0.1 && <0.2, non-negative >=0.1 && <0.2, numeric-prelude >=0.3 && <0.5,@@ -152,6 +153,7 @@ event-list, non-negative, transformers,+ semigroups, utility-ht, random, base