There is actually another function called press (and its cousin pressBy). What press does is offset the events in a pattern by a 1/8 of a cycle if I remember correctly. PressBy takes an additional argument, which tells the function by what amount to offset the events of the cycle. Using pressBy I am able to basically compose Piano Phase in just a few lines. You can change the length of the phase by changing the number of the slow function.
Anyway, I present to you, SuperPiano Phase!
$ juxBy 0.7 (pressBy (slow 48 $ sine))
$ note "e5 fs5 b5 cs6 d6 fs5 e5 cs6 b5 fs5 d6 cs6" # s "superpiano"
# room 0.7
What's cool about this method is that you can change the shape of the osc, so you could try a more linear phase with a saw wave or you could go completely random with rand.