synthesizer-dimensional 0.6.0.1 → 0.7
raw patch · 8 files changed
+100/−61 lines, 8 filesdep +synthesizer-dimensionaldep ~basedep ~event-listdep ~non-negative
Dependencies added: synthesizer-dimensional
Dependency ranges changed: base, event-list, non-negative, numeric-prelude, random, sox, storable-record, storablevector, synthesizer-core, transformers, utility-ht
Files
- src/Synthesizer/Dimensional/Amplitude/Cut.hs +24/−23
- src/Synthesizer/Dimensional/Arrow.hs +8/−5
- src/Synthesizer/Dimensional/Causal/Process.hs +5/−4
- src/Synthesizer/Dimensional/Map.hs +4/−3
- src/Synthesizer/Dimensional/Rate/Filter.hs +1/−2
- src/Synthesizer/Dimensional/RateAmplitude/Rain.hs +0/−3
- src/Synthesizer/Dimensional/Signal/Private.hs +2/−3
- synthesizer-dimensional.cabal +56/−18
src/Synthesizer/Dimensional/Amplitude/Cut.hs view
@@ -34,7 +34,6 @@ import qualified Synthesizer.Dimensional.Rate as Rate import qualified Synthesizer.Dimensional.Amplitude as Amp -import qualified Synthesizer.Generic.Signal2 as SigG2 import qualified Synthesizer.Generic.Signal as SigG import qualified Synthesizer.Generic.Cut as CutG import qualified Synthesizer.State.Signal as Sig@@ -62,23 +61,25 @@ {-# INLINE unzip #-} unzip ::- (SigG2.Transform sig (yv0, yv1) yv0,- SigG2.Transform sig (yv0, yv1) yv1) =>+ (SigG.Transform sig (yv0, yv1),+ SigG.Transform sig yv0,+ SigG.Transform sig yv1) => SigA.T rate amp (sig (yv0, yv1)) -> (SigA.T rate amp (sig yv0), SigA.T rate amp (sig yv1)) unzip x =- let (ss0,ss1) = SigG2.unzip (SigA.body x)+ let (ss0,ss1) = SigG.unzip (SigA.body x) in (SigA.replaceBody ss0 x, SigA.replaceBody ss1 x) {-# INLINE unzip3 #-} unzip3 ::- (SigG2.Transform sig (yv0, yv1, yv2) yv0,- SigG2.Transform sig (yv0, yv1, yv2) yv1,- SigG2.Transform sig (yv0, yv1, yv2) yv2) =>+ (SigG.Transform sig (yv0, yv1, yv2),+ SigG.Transform sig yv0,+ SigG.Transform sig yv1,+ SigG.Transform sig yv2) => SigA.T rate amp (sig (yv0, yv1, yv2)) -> (SigA.T rate amp (sig yv0), SigA.T rate amp (sig yv1), SigA.T rate amp (sig yv2)) unzip3 x =- let (ss0,ss1,ss2) = SigG2.unzip3 (SigA.body x)+ let (ss0,ss1,ss2) = SigG.unzip3 (SigA.body x) in (SigA.replaceBody ss0 x, SigA.replaceBody ss1 x, SigA.replaceBody ss2 x) @@ -300,20 +301,20 @@ zip :: (Ord y, Field.C y, Dim.C u, Module.C y yv0, Module.C y yv1,- SigG.Read sig yv0, SigG2.Transform sig yv1 (yv0,yv1)) =>+ SigG.Read sig yv0, SigG.Transform sig yv1, SigG.Transform sig (yv0,yv1)) => Signal s u y sig yv0 -> Signal s u y sig yv1 -> Signal s u y sig (yv0,yv1) zip =- merge (SigG2.zipWithState (,)) . SigA.restore+ merge (SigG.zipWithState (,)) . SigA.restore {-# INLINE zipVolume #-} zipVolume :: (Field.C y, Dim.C u, Module.C y yv0, Module.C y yv1,- SigG.Read sig yv0, SigG2.Transform sig yv1 (yv0,yv1)) =>+ SigG.Read sig yv0, SigG.Transform sig yv1, SigG.Transform sig (yv0,yv1)) => DN.T u y -> Signal s u y sig yv0 -> Signal s u y sig yv1 -> Signal s u y sig (yv0,yv1) zipVolume vol =- mergeVolume (SigG2.zipWithState (,)) vol . SigA.restore+ mergeVolume (SigG.zipWithState (,)) vol . SigA.restore @@ -321,27 +322,27 @@ mergeStereo :: (Ord y, Field.C y, Dim.C u, Module.C y yv,- SigG2.Transform sig yv (Stereo.T yv)) =>+ SigG.Transform sig yv, SigG.Transform sig (Stereo.T yv)) => Signal s u y sig yv -> Signal s u y sig yv -> Signal s u y sig (Stereo.T yv)-mergeStereo = merge (SigG2.zipWith Stereo.cons)+mergeStereo = merge (SigG.zipWith Stereo.cons) {-# INLINE mergeStereoVolume #-} mergeStereoVolume :: (Field.C y, Dim.C u, Module.C y yv,- SigG2.Transform sig yv (Stereo.T yv)) =>+ SigG.Transform sig yv, SigG.Transform sig (Stereo.T yv)) => DN.T u y -> Signal s u y sig yv -> Signal s u y sig yv -> Signal s u y sig (Stereo.T yv)-mergeStereoVolume = mergeVolume (SigG2.zipWith Stereo.cons)+mergeStereoVolume = mergeVolume (SigG.zipWith Stereo.cons) {-# INLINE mergeStereoPrimitive #-} mergeStereoPrimitive ::- (Amp.Primitive amp, SigG2.Transform sig y (Stereo.T y)) =>+ (Amp.Primitive amp, SigG.Transform sig y, SigG.Transform sig (Stereo.T y)) => SigA.T (Rate.Phantom s) amp (sig y) -> SigA.T (Rate.Phantom s) amp (sig y) -> SigA.T (Rate.Phantom s) amp (sig (Stereo.T y)) mergeStereoPrimitive =- mergePrimitive (SigG2.zipWith Stereo.cons)+ mergePrimitive (SigG.zipWith Stereo.cons) @@ -350,7 +351,7 @@ (Ord y, Field.C y, Dim.C u, Module.C y yv0, Module.C y yv1, Module.C y yv2, SigG.Read sig yv0, SigG.Read sig yv1,- SigG2.Transform sig yv2 (yv0, yv1, yv2)) =>+ SigG.Transform sig yv2, SigG.Transform sig (yv0, yv1, yv2)) => Signal s u y sig yv0 -> Signal s u y sig yv1 -> Signal s u y sig yv2 -> Signal s u y sig (yv0,yv1,yv2) zip3 x0 x1 x2 =@@ -363,7 +364,7 @@ (Field.C y, Dim.C u, Module.C y yv0, Module.C y yv1, Module.C y yv2, SigG.Read sig yv0, SigG.Read sig yv1,- SigG2.Transform sig yv2 (yv0, yv1, yv2)) =>+ SigG.Transform sig yv2, SigG.Transform sig (yv0, yv1, yv2)) => DN.T u y -> Signal s u y sig yv0 -> Signal s u y sig yv1 -> Signal s u y sig yv2 -> Signal s u y sig (yv0,yv1,yv2)@@ -371,7 +372,7 @@ let sampX0 = SigA.vectorSamples (toAmplitudeScalar z) (SigA.restore x0) sampX1 = SigA.vectorSamples (toAmplitudeScalar z) (SigA.restore x1) sampX2 = SigA.vectorSamples (toAmplitudeScalar z) x2- z = SigA.fromBody amp (SigG2.zipWithState3 (,,) sampX0 sampX1 sampX2)+ z = SigA.fromBody amp (SigG.zipWithState3 (,,) sampX0 sampX1 sampX2) in z @@ -382,14 +383,14 @@ (Ord y, Field.C y, Dim.C u, Module.C y yv, SigG.Read sig yv,- SigG2.Transform sig Bool yv) =>+ SigG.Transform sig Bool, SigG.Transform sig yv) => Signal s u y sig yv {- ^ False -} -> Signal s u y sig yv {- ^ True -} -> SigA.T (Rate.Phantom s) Amp.Abstract (sig Bool) -> Signal s u y sig yv selectBool xf xt cs = SigA.processBody- (flip (SigG2.zipWithState (\(xfi,xti) c -> if c then xti else xfi))+ (flip (SigG.zipWithState (\(xfi,xti) c -> if c then xti else xfi)) (SigA.body cs)) (zip (SigA.restore xf)
src/Synthesizer/Dimensional/Arrow.hs view
@@ -28,7 +28,7 @@ import Control.Applicative (Applicative, liftA2, ) import qualified Synthesizer.State.Signal as Sig-import qualified Synthesizer.Generic.Signal2 as SigG2+import qualified Synthesizer.Generic.Signal as SigG import qualified Algebra.Module as Module import qualified Algebra.Field as Field@@ -90,13 +90,14 @@ -- we need this generality in ControlledProcess.applyConverter {-# INLINE apply #-} apply ::- (SigG2.Transform sig (Displacement sample0) (Displacement sample1),+ (SigG.Transform sig (Displacement sample0),+ SigG.Transform sig (Displacement sample1), Applicable arrow rate) => T arrow sample0 sample1 -> SigA.T rate (Amplitude sample0) (sig (Displacement sample0)) -> SigA.T rate (Amplitude sample1) (sig (Displacement sample1)) {-- (SigG2.Transform sig yv0 yv1, Applicable arrow rate) =>+ (SigG.Transform sig yv0, SigG.Transform sig yv1, Applicable arrow rate) => Single arrow amp0 amp1 yv0 yv1 -> SigA.T rate amp0 (sig yv0) -> SigA.T rate amp1 (sig yv1)@@ -108,7 +109,8 @@ {-# INLINE applyFlat #-} applyFlat :: (Flat.C yv0 amp0,- SigG2.Transform sig yv0 yv1, Applicable arrow rate) =>+ SigG.Transform sig yv0,+ SigG.Transform sig yv1, Applicable arrow rate) => Single arrow (Amp.Flat yv0) amp1 yv0 yv1 -> SigA.T rate amp0 (sig yv0) -> SigA.T rate amp1 (sig yv1)@@ -139,7 +141,8 @@ {-# INLINE ($/:) #-} ($/:) ::- (Applicative f, SigG2.Transform sig yv0 yv1,+ (Applicative f,+ SigG.Transform sig yv0, SigG.Transform sig yv1, Applicable arrow rate) => f (Single arrow amp0 amp1 yv0 yv1) -> f (SigA.T rate amp0 (sig yv0)) ->
src/Synthesizer/Dimensional/Causal/Process.hs view
@@ -35,7 +35,6 @@ import Control.Applicative (Applicative, ) import qualified Synthesizer.State.Signal as Sig-import qualified Synthesizer.Generic.Signal2 as SigG2 import qualified Synthesizer.Generic.Signal as SigG import qualified Algebra.Module as Module@@ -85,7 +84,7 @@ {-# INLINE apply #-} apply ::- (SigG2.Transform sig yv0 yv1) =>+ (SigG.Transform sig yv0, SigG.Transform sig yv1) => Single s amp0 amp1 yv0 yv1 -> SigA.T (Rate.Phantom s) amp0 (sig yv0) -> SigA.T (Rate.Phantom s) amp1 (sig yv1)@@ -93,7 +92,8 @@ {-# INLINE applyFlat #-} applyFlat ::- (Flat.C yv0 amp0, SigG2.Transform sig yv0 yv1) =>+ (Flat.C yv0 amp0,+ SigG.Transform sig yv0, SigG.Transform sig yv1) => Single s (Amp.Flat yv0) amp1 yv0 yv1 -> SigA.T (Rate.Phantom s) amp0 (sig yv0) -> SigA.T (Rate.Phantom s) amp1 (sig yv1)@@ -121,7 +121,8 @@ {-# INLINE ($/:) #-} ($/:) ::- (Applicative f, SigG2.Transform sig yv0 yv1) =>+ (Applicative f,+ SigG.Transform sig yv0, SigG.Transform sig yv1) => f (Single s amp0 amp1 yv0 yv1) -> f (SigA.T (Rate.Phantom s) amp0 (sig yv0)) -> f (SigA.T (Rate.Phantom s) amp1 (sig yv1))
src/Synthesizer/Dimensional/Map.hs view
@@ -15,7 +15,7 @@ import Control.Arrow (Arrow, ) import Control.Category (Category, ) -import qualified Synthesizer.Generic.Signal2 as SigG2+import qualified Synthesizer.Generic.Signal as SigG import qualified Number.DimensionTerm as DN import qualified Algebra.DimensionTerm as Dim@@ -58,7 +58,7 @@ {-# INLINE apply #-} apply ::- (SigG2.Transform sig yv0 yv1) =>+ (SigG.Transform sig yv0, SigG.Transform sig yv1) => Single amp0 amp1 yv0 yv1 -> SigA.T rate amp0 (sig yv0) -> SigA.T rate amp1 (sig yv1)@@ -66,7 +66,8 @@ {-# INLINE applyFlat #-} applyFlat ::- (Flat.C yv0 amp0, SigG2.Transform sig yv0 yv1) =>+ (Flat.C yv0 amp0,+ SigG.Transform sig yv0, SigG.Transform sig yv1) => Single (Amp.Flat yv0) amp1 yv0 yv1 -> SigA.T rate amp0 (sig yv0) -> SigA.T rate amp1 (sig yv1)
src/Synthesizer/Dimensional/Rate/Filter.hs view
@@ -98,7 +98,6 @@ import qualified Synthesizer.Generic.Filter.NonRecursive as FiltG import qualified Synthesizer.Generic.Filter.Delay as DelayG import qualified Synthesizer.Generic.Signal as SigG-import qualified Synthesizer.Generic.Signal2 as SigG2 import qualified Synthesizer.Frame.Stereo as Stereo @@ -259,7 +258,7 @@ {-# INLINE phaseModulationGeneric #-} phaseModulationGeneric :: (Additive.C yv, RealField.C q, Dim.C u,- SigG2.Transform sig q yv, SigG.Write sig yv) =>+ SigG.Transform sig q, SigG.Transform sig yv, SigG.Write sig yv) => Interpolation.T q yv -> DN.T u q {- ^ minimal deviation from current time, usually negative -}
src/Synthesizer/Dimensional/RateAmplitude/Rain.hs view
@@ -44,9 +44,6 @@ import qualified Synthesizer.Frame.Stereo as Stereo --- import qualified Synthesizer.Generic.Signal2 as SigG2--- import qualified Synthesizer.Generic.Signal as SigG- import qualified Synthesizer.Plain.Control as CtrlL import qualified Synthesizer.Plain.Displacement as DispL import qualified Synthesizer.Plain.Noise as NoiseL
src/Synthesizer/Dimensional/Signal/Private.hs view
@@ -13,7 +13,6 @@ import Synthesizer.Dimensional.Process (($#), ) import qualified Synthesizer.Generic.Filter.NonRecursive as FiltG-import qualified Synthesizer.Generic.Signal2 as SigG2 import qualified Synthesizer.Generic.Signal as SigG -- import qualified Data.StorableVector.Lazy.Pattern as SVP@@ -151,7 +150,7 @@ Of course, for stereo signals @Stereo.T@ should be prefered. -} zip ::- (SigG2.Transform sig y1 (y0,y1), SigG.Read sig y0) =>+ (SigG.Transform sig y1, SigG.Transform sig (y0,y1), SigG.Read sig y0) => T (Rate.Phantom s) amp0 (sig y0) -> T (Rate.Phantom s) amp1 (sig y1) -> T (Rate.Phantom s) (amp0,amp1) (sig (y0,y1))@@ -159,7 +158,7 @@ Cons Rate.Phantom (amplitude x, amplitude y)- (SigG2.zip (body x) (body y))+ (SigG.zip (body x) (body y)) {-# INLINE processBody #-}
synthesizer-dimensional.cabal view
@@ -1,5 +1,5 @@ Name: synthesizer-dimensional-Version: 0.6.0.1+Version: 0.7 License: GPL License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -12,7 +12,7 @@ abstract from the sample rate in 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.6+Cabal-Version: >=1.14 Build-Type: Simple Extra-Source-Files:@@ -31,13 +31,18 @@ Type: darcs Location: http://code.haskell.org/synthesizer/dimensional/ +Source-Repository this+ Tag: 0.7+ Type: darcs+ Location: http://code.haskell.org/synthesizer/dimensional/+ Library Build-Depends:- synthesizer-core >=0.5 && <0.6,+ synthesizer-core >=0.6 && <0.7, transformers >=0.2 && <0.4, event-list >=0.1 && <0.2, non-negative >=0.1 && <0.2,- numeric-prelude >=0.3 && <0.4,+ numeric-prelude >=0.3 && <0.5, storable-record >=0.0.1 && <0.1, sox >=0.2 && <0.3, storablevector >=0.2.3 && <0.3,@@ -49,8 +54,9 @@ If impl(ghc>=7.0) GHC-Options: -fwarn-unused-do-bind CPP-Options: -DNoImplicitPrelude=RebindableSyntax- Extensions: CPP+ Default-Extensions: CPP + Default-Language: Haskell2010 GHC-Options: -Wall Hs-source-dirs: src Exposed-modules:@@ -108,34 +114,57 @@ Executable rain- If !flag(buildExamples)+ If flag(buildExamples)+ Build-Depends:+ synthesizer-dimensional,+ synthesizer-core,+ numeric-prelude,+ event-list,+ utility-ht,+ random,+ base+ Else Buildable: False+ Default-Language: Haskell2010 GHC-Options: -Wall -fexcess-precision If flag(optimizeAdvanced)- GHC-Options: -O2 -fvia-C -optc-O2+ GHC-Options: -O2 -fllvm If impl(ghc>=7.0) GHC-Options: -fwarn-unused-do-bind CPP-Options: -DNoImplicitPrelude=RebindableSyntax- Extensions: CPP+ Default-Extensions: CPP - Hs-Source-Dirs: src- Main-Is: Synthesizer/Dimensional/RateAmplitude/Rain.hs+ Main-Is: src/Synthesizer/Dimensional/RateAmplitude/Rain.hs Executable demonstration If flag(buildExamples) Build-Depends: explicit-exception >=0.1.6 && <0.2,- old-time >=1.0 && <2+ old-time >=1.0 && <2,++ synthesizer-dimensional,+ synthesizer-core,+ sox,+ storablevector,+ storable-record,+ numeric-prelude,+ event-list,+ non-negative,+ transformers,+ utility-ht,+ random,+ base Else Buildable: False If impl(ghc>=7.0) GHC-Options: -fwarn-unused-do-bind CPP-Options: -DNoImplicitPrelude=RebindableSyntax- Extensions: CPP+ Default-Extensions: CPP + Default-Language: Haskell2010 GHC-Options: -Wall -fexcess-precision If flag(optimizeAdvanced)- GHC-Options: -O2 -fvia-C -optc-O2+ GHC-Options: -O2 -fllvm -- -ddump-simpl-stats Hs-Source-Dirs: src Main-Is:@@ -144,15 +173,24 @@ Synthesizer.Dimensional.RateAmplitude.Demonstration Executable traumzauberbaum- If !flag(buildExamples)+ If flag(buildExamples)+ Build-Depends:+ synthesizer-dimensional,+ synthesizer-core,+ numeric-prelude,+ utility-ht,+ storablevector,+ base+ Else Buildable: False++ Default-Language: Haskell2010 GHC-Options: -Wall -fexcess-precision If impl(ghc>=7.0) GHC-Options: -fwarn-unused-do-bind CPP-Options: -DNoImplicitPrelude=RebindableSyntax- Extensions: CPP+ Default-Extensions: CPP If flag(optimizeAdvanced)- GHC-Options: -O2 -fvia-C -optc-O2- Hs-Source-Dirs: src- Main-Is: Synthesizer/Dimensional/RateAmplitude/Traumzauberbaum.hs+ GHC-Options: -O2 -fllvm+ Main-Is: src/Synthesizer/Dimensional/RateAmplitude/Traumzauberbaum.hs