diff --git a/Sound/Tidal/Pattern.hs b/Sound/Tidal/Pattern.hs
--- a/Sound/Tidal/Pattern.hs
+++ b/Sound/Tidal/Pattern.hs
@@ -493,3 +493,8 @@
 
 e' :: Int -> Int -> Pattern a -> Pattern a
 e' n k p = cat $ map (\x -> if x then p else silence) (bjorklund (n,k))
+
+
+index :: Real b => b -> Pattern b -> Pattern c -> Pattern c
+index sz indexpat pat = spread' (zoom' $ toRational sz) (toRational . (*(1-sz)) <$> indexpat) pat
+  where zoom' sz start = zoom (start, start+sz)
diff --git a/tidal.cabal b/tidal.cabal
--- a/tidal.cabal
+++ b/tidal.cabal
@@ -1,5 +1,5 @@
 name:                tidal
-version:         0.4.29.1
+version:         0.4.30
 synopsis:            Pattern language for improvised music
 -- description:         
 homepage:            http://tidal.lurk.org/
