diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # TidalCycles log of changes
 
+## 1.4.3 - Stanage Edge
+
+* Fix for xfade / xfadein transition
+* New function plyWith
+
 ## 1.4.2 - Higger Tor
 
 * Fix for 'nudge'
diff --git a/src/Sound/Tidal/Transition.hs b/src/Sound/Tidal/Transition.hs
--- a/src/Sound/Tidal/Transition.hs
+++ b/src/Sound/Tidal/Transition.hs
@@ -72,7 +72,7 @@
 xfadeIn :: Time -> Time -> [ControlPattern] -> ControlPattern
 xfadeIn _ _ [] = silence
 xfadeIn _ _ (pat:[]) = pat
-xfadeIn t now (pat:pat':_) = overlay (pat |*| gain (now `rotR` (_slow t envEqR))) (pat' |*| gain (now `rotR` (_slow t (envEq))))
+xfadeIn t now (pat:pat':_) = overlay (pat |* gain (now `rotR` (_slow t envEqR))) (pat' |* gain (now `rotR` (_slow t (envEq))))
 
 -- | Pans the last n versions of the pattern across the field
 histpan :: Int -> Time -> [ControlPattern] -> ControlPattern
diff --git a/src/Sound/Tidal/UI.hs b/src/Sound/Tidal/UI.hs
--- a/src/Sound/Tidal/UI.hs
+++ b/src/Sound/Tidal/UI.hs
@@ -1415,6 +1415,15 @@
 _ply :: Int -> Pattern a -> Pattern a
 _ply n p = arpeggiate $ stack (replicate n p)
 
+-- Like ply, but applies a function each time. The applications are compounded.
+plyWith :: (Ord t, Num t) => Pattern t -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a
+plyWith np f p = innerJoin $ (\n -> _plyWith n f p) <$> np
+
+_plyWith :: (Ord t, Num t) => t -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a
+_plyWith numPat f p = arpeggiate $ compound numPat f p
+  where compound n f p | n <= 1 = p
+                       | otherwise = overlay p (f (compound (n-1) f p))
+
 -- Uses the first (binary) pattern to switch between the following two
 -- patterns.
 sew :: Pattern Bool -> Pattern a -> Pattern a -> Pattern a
diff --git a/src/Sound/Tidal/Version.hs b/src/Sound/Tidal/Version.hs
--- a/src/Sound/Tidal/Version.hs
+++ b/src/Sound/Tidal/Version.hs
@@ -1,4 +1,4 @@
 module Sound.Tidal.Version where
 
 tidal_version :: String
-tidal_version = "1.4.2"
+tidal_version = "1.4.3"
diff --git a/tidal.cabal b/tidal.cabal
--- a/tidal.cabal
+++ b/tidal.cabal
@@ -1,5 +1,5 @@
 name:                tidal
-version:             1.4.2
+version:             1.4.3
 synopsis:            Pattern language for improvised music
 -- description:
 homepage:            http://tidalcycles.org/
