Non reseting fast

Hi

I try to implement something like the Piano Phase from Steve Reich. In the moment i'm trying to build that with fast and nudge in combination. But is there a fast function which doesn't reset the cycle start on each cycle? (That would make my life much easier :slightly_smiling_face:

Thanks Fabian

$ fast ("<0 0 1 0 1 0>"/8+1)
$ note "c a f e"
# nudge ("<0 0 0 1 1 2>"/8)

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!

d1 
	$ 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.

5 Likes

sounds cooler with superchip :sunglasses:

d1 $ stack [
  juxBy 0.7 (pressBy (slow 48 $ sine)) $ note "{e fs b cs d fs e cs b fs d cs}%8" # s "superchip" # room 0.7 # octave "[3,2]"
, struct "t*2 ~ ~ [~ t*2]/2" $ s "clubkick"
, someCyclesBy 0.44 (plyWith 2 (0.25 <~)) $ s "~ cp" # gain 1.125
, someCyclesBy 0.44 (slow 2 . stripe 2) $ s "linnhats*16"
]
1 Like

Thanks for your both inputs :slight_smile:
A lot to play and learn for me :+1: