diff --git a/Sound/Tidal/Parse.hs b/Sound/Tidal/Parse.hs
--- a/Sound/Tidal/Parse.hs
+++ b/Sound/Tidal/Parse.hs
@@ -120,10 +120,14 @@
 pPolyOut :: Parser (Pattern a) -> Parser (Pattern a)
 pPolyOut f = do ps <- braces (pSequenceN f `sepBy` symbol ",")
                 spaces
-                pMult $ mconcat $ scale ps
-  where scale [] = []
-        scale ((_,p):[]) = [p]
-        scale (ps@((n,_):_)) = map (\(n',p) -> density (fromIntegral n/ fromIntegral n') p) ps
+                base <- do char '%'
+                           spaces
+                           i <- integer <?> "integer"
+                           return $ Just (fromIntegral i)
+                        <|> return Nothing
+                pMult $ mconcat $ scale base ps
+  where scale _ [] = []
+        scale base (ps@((n,_):_)) = map (\(n',p) -> density (fromIntegral (fromMaybe n base)/ fromIntegral n') p) ps
 
 pString :: Parser (String)
 pString = many1 (letter <|> oneOf "0123456789:") <?> "string"
diff --git a/Sound/Tidal/Strategies.hs b/Sound/Tidal/Strategies.hs
--- a/Sound/Tidal/Strategies.hs
+++ b/Sound/Tidal/Strategies.hs
@@ -112,3 +112,6 @@
 stut steps feedback time p = stack (p:(map (\x -> (((x%steps)*time) ~> (p |+| gain (pure $ scale (fromIntegral x))))) [0..(steps-1)])) 
   where scale x 
           = ((+feedback) . (*(1-feedback)) . (/(fromIntegral steps)) . ((fromIntegral steps)-)) x
+
+scale :: (Functor f, Num b) => b -> b -> f b -> f b
+scale from to p = ((+ from) . (* (to-from))) <$> p
diff --git a/Sound/Tidal/Stream.hs b/Sound/Tidal/Stream.hs
--- a/Sound/Tidal/Stream.hs
+++ b/Sound/Tidal/Stream.hs
@@ -39,7 +39,7 @@
 
 type OscPattern = Pattern OscMap
 
-latency = 0.1
+latency = 0.04
 
 defaultDatum :: Param -> Maybe Datum
 defaultDatum (S _ (Just x)) = Just $ string x
diff --git a/doc/tidal.md b/doc/tidal.md
--- a/doc/tidal.md
+++ b/doc/tidal.md
@@ -696,7 +696,7 @@
 remainder of the pattern cycle.
 
 ~~~~{.haskell}
-d1 $ wedge (1/4) "bd*2 arpy*3 cp sn*2" "odx [feel future]*2 hh hh"
+d1 $ wedge (1/4) (sound "bd*2 arpy*3 cp sn*2") (sound "odx [feel future]*2 hh hh")
 ~~~~
 
 ## whenmod
@@ -763,7 +763,7 @@
 ~~~~ {.haskell}
 d1 $ stack [ 
   sound "bd bd*2", 
-  sound "hh*s [sn cp] cp future*4", 
+  sound "hh*2 [sn cp] cp future*4", 
   sound (samples "arpy*8", (run 16))
 ]
 ~~~~
@@ -774,7 +774,7 @@
 ~~~~ {.haskell}
 d1 $ whenmod 5 3 (striate 3) $ stack [ 
   sound "bd bd*2", 
-  sound "hh*s [sn cp] cp future*4", 
+  sound "hh*2 [sn cp] cp future*4", 
   sound (samples "arpy*8", (run 16))
 ] |+| speed "[[1 0.8], [1.5 2]*2]/3"
 ~~~~
diff --git a/tidal.cabal b/tidal.cabal
--- a/tidal.cabal
+++ b/tidal.cabal
@@ -1,5 +1,5 @@
 name:                tidal
-version:             0.4.6
+version:             0.4.7
 synopsis:            Pattern language for improvised music
 -- description:         
 homepage:            http://yaxu.org/tidal/
diff --git a/tidal.el b/tidal.el
--- a/tidal.el
+++ b/tidal.el
@@ -57,8 +57,8 @@
   (tidal-send-string ":set prompt \"\"")
   (tidal-send-string ":module Sound.Tidal.Context")
 ;  (tidal-send-string "import Volca.Beat")
-;  (tidal-send-string "import Volca.Key")
-;  (tidal-send-string "(note, [portamento, expression, voice, octave, detune, vcoegint, kcutoff, vcfegint, lforate, lfopitchint, lfocutoffint, attack, decay, sustain, dtime , dfeedback], keystop) <- keystart")
+  (tidal-send-string "import Volca.Key")
+  (tidal-send-string "(note, [portamento, expression, voice, octave, detune, vcoegint, kcutoff, vcfegint, lforate, lfopitchint, lfocutoffint, attack, decay, sustain, dtime , dfeedback], keystop) <- keystart")
 ;  (tidal-send-string "(drum, [clapSpeed, clavesSpeed, agogoSpeed, crashSpeed, stutterTime, stutterDepth, tomDecay, clhatDecay, ophatDecay, hatGrain], beatstop) <- startbeat")
   (tidal-send-string "d1 <- dirtStream")
   (tidal-send-string "d2 <- dirtStream")
