diff --git a/Sound/Tidal/Strategies.hs b/Sound/Tidal/Strategies.hs
--- a/Sound/Tidal/Strategies.hs
+++ b/Sound/Tidal/Strategies.hs
@@ -64,8 +64,13 @@
 --spreadf :: [Pattern a -> Pattern b] -> Pattern a -> Pattern b
 spreadf ts p = spread ($)
 
-spin copies p = stack $ map (\n -> (toRational n) <~ p |+| pan (pure n)) [0,step .. 1]
-  where step = (1/copies)
+spin :: Int -> OscPattern -> OscPattern
+spin copies p =
+  stack $ map (\n -> let offset = toInteger n % toInteger copies in
+                     offset <~ p
+                     |+| pan (pure $ fromRational offset)
+              )
+          [0 .. (copies - 1)]
 
 {-stripe :: Arc -> Pattern a -> Pattern a
 stripe (stripeS, stripeE) p = slow t $ Pattern $ \a -> concatMap f $ arcCycles a
diff --git a/tidal.cabal b/tidal.cabal
--- a/tidal.cabal
+++ b/tidal.cabal
@@ -1,5 +1,5 @@
 name:                tidal
-version:         0.4.27
+version:         0.4.28
 synopsis:            Pattern language for improvised music
 -- description:         
 homepage:            http://yaxu.org/tidal/
