diff --git a/src/Synthesizer/Dimensional/Amplitude/Analysis.hs b/src/Synthesizer/Dimensional/Amplitude/Analysis.hs
--- a/src/Synthesizer/Dimensional/Amplitude/Analysis.hs
+++ b/src/Synthesizer/Dimensional/Amplitude/Analysis.hs
@@ -34,6 +34,7 @@
 
 import qualified Synthesizer.State.Analysis as Ana
 import qualified Synthesizer.State.Signal   as Sig
+import Synthesizer.Plain.Analysis (BinaryLevel)
 
 import qualified Number.DimensionTerm        as DN
 import qualified Algebra.DimensionTerm       as Dim
@@ -189,9 +190,9 @@
 -}
 {-# INLINE flipFlopHysteresis #-}
 flipFlopHysteresis :: (Ord y, Field.C y, Dim.C u) =>
-   (DN.T u y, DN.T u y) -> Bool ->
+   (DN.T u y, DN.T u y) -> BinaryLevel ->
    SignalRateInd rate u y y ->
-   SigA.T rate Amp.Abstract (Sig.T Bool)
+   SigA.T rate Amp.Abstract (Sig.T BinaryLevel)
 flipFlopHysteresis (lower,upper) start x =
    let l = SigA.toAmplitudeScalar x lower
        h = SigA.toAmplitudeScalar x upper
diff --git a/src/Synthesizer/Dimensional/RateAmplitude/Piece.hs b/src/Synthesizer/Dimensional/RateAmplitude/Piece.hs
--- a/src/Synthesizer/Dimensional/RateAmplitude/Piece.hs
+++ b/src/Synthesizer/Dimensional/RateAmplitude/Piece.hs
@@ -8,7 +8,6 @@
 
 import qualified Synthesizer.Generic.Piece as Piece
 import qualified Synthesizer.Generic.Signal as SigG
-import qualified Synthesizer.State.Control as Ctrl
 
 import qualified Synthesizer.Piecewise as Piecewise
 import Synthesizer.Piecewise ((-|#), ( #|-), (=|#), ( #|=), (|#), ( #|), )
@@ -84,7 +83,7 @@
    DN.T v q ->
    Proc.T s u q (SigA.T (Rate.Phantom s) (Amp.Dimensional v q) (sig q))
 runVolume lazySize' cs amplitude =
-   -- it would be nice if we could re-use Ctrl.piecewise
+   -- it would be nice if we could re-use Piece.run
    do ts0 <- mapM (toTimeScalar . Piecewise.pieceDur) cs
       lazySize <-
          Proc.intFromTime "Dimensional.Piece.runVolume" lazySize'
@@ -93,7 +92,7 @@
             (\(n,t) (Piecewise.PieceData c yi0 yi1 d) ->
                  fmap (SigG.take n . SigA.body) $
                  Piecewise.computePiece c yi0 yi1 d amplitude (SigG.LazySize lazySize) t)
-            (Ctrl.splitDurations ts0)
+            (Piecewise.splitDurations ts0)
             cs
 
 
diff --git a/synthesizer-dimensional.cabal b/synthesizer-dimensional.cabal
--- a/synthesizer-dimensional.cabal
+++ b/synthesizer-dimensional.cabal
@@ -1,5 +1,5 @@
 Name:           synthesizer-dimensional
-Version:        0.7.0.3
+Version:        0.8
 License:        GPL
 License-File:   LICENSE
 Author:         Henning Thielemann <haskell@henning-thielemann.de>
@@ -9,7 +9,7 @@
 Synopsis:       Audio signal processing with static physical dimensions
 Description:
    High-level functions that use physical units and
-   abstract from the sample rate in statically type safe way.
+   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
@@ -32,13 +32,13 @@
   Location:    http://code.haskell.org/synthesizer/dimensional/
 
 Source-Repository this
-  Tag:         0.7.0.3
+  Tag:         0.8
   Type:        darcs
   Location:    http://code.haskell.org/synthesizer/dimensional/
 
 Library
   Build-Depends:
-    synthesizer-core >=0.6 && <0.8,
+    synthesizer-core >=0.8 && <0.9,
     transformers >=0.2 && <0.6,
     event-list >=0.1 && <0.2,
     non-negative >=0.1 && <0.2,
