diff --git a/server/Synthesizer/ALSA/Dimensional/Server/Common.hs b/server/Synthesizer/ALSA/Dimensional/Server/Common.hs
--- a/server/Synthesizer/ALSA/Dimensional/Server/Common.hs
+++ b/server/Synthesizer/ALSA/Dimensional/Server/Common.hs
@@ -12,6 +12,7 @@
 import qualified Synthesizer.ALSA.Storable.Play as PlaySt
 
 import qualified Synthesizer.Dimensional.Rate.Filter as FiltR
+import qualified Synthesizer.Dimensional.Duration as Dur
 import qualified Synthesizer.Dimensional.Process as Proc
 
 import Synthesizer.Dimensional.Process (($:), )
@@ -98,4 +99,4 @@
    IO ()
 play period rate sig =
    Play.renderTimeVoltageStorable device period rate
-   (FiltR.delay latency $: sig)
+      (FiltR.delayStorable $: Dur.fromTime latency $: sig)
diff --git a/server/Synthesizer/ALSA/Dimensional/Server/Run.hs b/server/Synthesizer/ALSA/Dimensional/Server/Run.hs
--- a/server/Synthesizer/ALSA/Dimensional/Server/Run.hs
+++ b/server/Synthesizer/ALSA/Dimensional/Server/Run.hs
@@ -48,9 +48,8 @@
    \evs ->
       liftA3
           (\env osci vol ->
-              Causal.apply
-                 (Causal.applySnd env osci) $
-              MIDI.piecewiseConstant $ vol)
+              Causal.apply (Causal.applySnd env osci) $
+              CtrlA.piecewiseConstantStorable vol)
           Filt.envelopeScalarDimension
           (OsciR.static (DN.voltage 1 &*~ Wave.sine) zero (DN.frequency (880::Real)))
           (MIDI.runFilter evs (MIDI.controllerLinear channel channelVolume
@@ -62,7 +61,7 @@
    \evs ->
       liftA2 Causal.apply
           (Osci.freqMod (DN.voltage (1::Real) &*~ Wave.sine) zero)
-          (MIDI.piecewiseConstant <$>
+          (CtrlA.piecewiseConstantStorable <$>
            MIDI.runFilter evs
               (MIDI.pitchBend channel 2 (DN.frequency (880::Real))))
 
@@ -76,7 +75,7 @@
           (\osci env (freq,vol) ->
               Causal.apply
                  (Causal.applySnd env (osci $ SigA.restore freq)) $
-                 MIDI.piecewiseConstant vol)
+                 CtrlA.piecewiseConstantStorable vol)
           (OsciR.freqMod (DN.voltage 1 &*~ Wave.sine) zero)
           Filt.envelopeScalarDimension
           (MIDI.runFilter evs $ liftA2 (,)
@@ -94,7 +93,7 @@
           (\osci env (freq,vol) ->
               Causal.apply
                  (Causal.applyFst env (SigA.restore vol) <<< osci) $
-                 MIDI.piecewiseConstant freq)
+                 CtrlA.piecewiseConstantStorable freq)
           (Osci.freqMod (DN.voltage 1 &*~ Wave.sine) zero)
           Filt.envelopeScalarDimension
           (MIDI.runFilter evs $ liftA2 (,)
@@ -129,7 +128,8 @@
       FiltA.amplify 0.3 <$>
          (MIDI.runFilter evs
             (MIDI.sequenceModulated PlaySt.defaultChunkSize (DN.voltage 1) channel Instr.pingReleaseFM $:
-             MIDI.bendWheelPressure channel 2 (DN.frequency 10) 0.04 0.03))
+             MIDI.bendWheelPressureStorable channel 2
+               (DN.frequency 10) 0.04 0.03))
 --             MIDI.pitchBend channel (2 ** recip 12) (DN.scalar one)))
 
 
@@ -153,7 +153,8 @@
          (MIDI.runFilter evs
             (MIDI.sequenceMultiModulated PlaySt.defaultChunkSize (DN.voltage 1) channel Instr.pingStereoDetuneFM
               ((MIDI.applyModulation <$>
-                  MIDI.bendWheelPressure channel 2 (DN.frequency 10) 0.04 0.03)
+                  MIDI.bendWheelPressureStorable channel 2
+                     (DN.frequency 10) 0.04 0.03)
                .:
                (MIDI.applyModulation <$>
                   MIDI.controllerLinear channel extraController (0, 0.005) 0))
diff --git a/server/Synthesizer/ALSA/Storable/Server/Common.hs b/server/Synthesizer/ALSA/Storable/Server/Common.hs
--- a/server/Synthesizer/ALSA/Storable/Server/Common.hs
+++ b/server/Synthesizer/ALSA/Storable/Server/Common.hs
@@ -7,7 +7,6 @@
 import qualified Synthesizer.ALSA.EventList as MIDIEv
 import Synthesizer.ALSA.EventList (StrictTime, )
 
-import qualified Synthesizer.Generic.Signal       as SigG
 import qualified Synthesizer.Storable.Signal      as SigSt
 import qualified Data.StorableVector.Lazy         as SVL
 
@@ -46,11 +45,6 @@
 
 chunkSize :: SVL.ChunkSize
 chunkSize = Play.defaultChunkSize
-
-lazySize :: SigG.LazySize
-lazySize =
-   let (SVL.ChunkSize size) = chunkSize
-   in  SigG.LazySize size
 
 periodTime :: Field.C t => t
 periodTime =
diff --git a/server/Synthesizer/ALSA/Storable/Server/Run.hs b/server/Synthesizer/ALSA/Storable/Server/Run.hs
--- a/server/Synthesizer/ALSA/Storable/Server/Run.hs
+++ b/server/Synthesizer/ALSA/Storable/Server/Run.hs
@@ -3,7 +3,7 @@
 import qualified Synthesizer.MIDI.Example.Instrument as Instr
 import Synthesizer.ALSA.Storable.Server.Common
           (Real, withMIDIEvents, play, device, clientName,
-           sampleRate, lazySize, chunkSize, periodTime, channel, )
+           sampleRate, chunkSize, periodTime, channel, )
 
 import qualified Synthesizer.MIDI.CausalIO.Process as MIO
 import qualified Synthesizer.MIDI.Storable as MidiSt
@@ -22,6 +22,7 @@
 
 import qualified Synthesizer.Storable.Oscillator  as OsciSt
 import qualified Synthesizer.Storable.Signal      as SigSt
+import qualified Data.StorableVector.Lazy.Typed   as SVT
 import qualified Data.StorableVector.Lazy         as SVL
 import qualified Data.StorableVector              as SV
 import Foreign.Storable (Storable, )
@@ -38,6 +39,7 @@
 import Control.Category ((.), )
 import Control.Arrow (arr, second, (&&&), )
 
+import Data.Function.HT (Id, )
 import Data.Tuple.HT (mapSnd, )
 
 import NumericPrelude.Numeric
@@ -64,7 +66,7 @@
 
 {-# INLINE storableChunk #-}
 storableChunk ::
-   (SigG.Read sig a, Storable a) =>
+   (SigG.Consume sig a, Storable a) =>
    sig a -> SV.Vector a
 storableChunk chunk =
    SigS.toStrictStorableSignal (SigG.length chunk) $
@@ -204,7 +206,10 @@
 makeLoop ::
    LoopG.TimeControl Real -> Real -> Real ->
    (Real, SigSt.T Real) -> (Real, SigSt.T Real)
-makeLoop = LoopG.timeReverse lazySize Ip.linear Ip.linear
+makeLoop timeCtrlWave loopLen loopStart =
+   mapSnd SVT.toVectorLazy .
+   LoopG.timeReverse Ip.linear Ip.linear timeCtrlWave loopLen loopStart .
+   mapSnd ((id :: Id (SVT.DefaultVector a)) . SVT.fromVectorLazy)
 
 keyboardSample :: IO ()
 keyboardSample =
diff --git a/synthesizer-alsa.cabal b/synthesizer-alsa.cabal
--- a/synthesizer-alsa.cabal
+++ b/synthesizer-alsa.cabal
@@ -1,6 +1,6 @@
 Cabal-Version:  2.2
 Name:           synthesizer-alsa
-Version:        0.5.0.6
+Version:        0.6
 License:        GPL-3.0-only
 License-File:   LICENSE
 Author:         Henning Thielemann <haskell@henning-thielemann.de>
@@ -19,7 +19,7 @@
 Build-Type:     Simple
 
 Source-Repository this
-  Tag:         0.5.0.6
+  Tag:         0.6
   Type:        darcs
   Location:    http://code.haskell.org/synthesizer/alsa/
 
@@ -37,22 +37,22 @@
 
 Library
   Build-Depends:
-    synthesizer-midi >=0.6 && <0.7,
-    synthesizer-dimensional >=0.7 && <0.9,
-    synthesizer-core >=0.6 && <0.9,
+    synthesizer-midi >=0.7 && <0.8,
+    synthesizer-dimensional >=0.9 && <0.10,
+    synthesizer-core >=0.9 && <0.10,
     midi-alsa >=0.2 && <0.3,
     midi >=0.2 && <0.3,
     sox >=0.2.1 && <0.3,
     alsa-seq >=0.6 && <0.7,
     alsa-pcm >=0.6 && <0.7,
     alsa-core >=0.5 && <0.6,
-    storablevector >=0.2.5 && <0.3,
+    storablevector >=0.2.12 && <0.3,
     numeric-prelude >=0.3 && <0.5,
     non-negative >=0.1 && <0.2,
     event-list >=0.1 && <0.2,
-    transformers >=0.2 && <0.6,
-    utility-ht >=0.0.1 && <0.1,
-    random >=1.0 && < 1.3,
+    transformers >=0.2 && <0.7,
+    utility-ht >=0.0.13 && <0.1,
+    random >=1.0 && <1.4,
     old-time >=1.0 && < 1.2,
     base >=4.5 && <5
 
