Advertisement
Guest User

Untitled

a guest
Apr 6th, 2018
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (
  2. ~pmerge = { arg patterns, selector;
  3.     Prout({
  4.         var streams, nexts, selected, t;
  5.         streams=patterns.collect{|p|p.asStream};
  6.         nexts=streams.collect{|s|s.next(())};
  7.         loop {
  8.             selected = selector.value(nexts);
  9.             t = nexts[selected];
  10.             nexts.put(selected,streams[selected].next(()));
  11.             t.yield;
  12.     }}
  13.     )
  14. })
  15.  
  16. ~merged = EventPatternProxy()
  17. ~merged.source = ~pmerge.value([Pbind(\degree,Prand((0..5),inf)),Pbind(\dur,1/2,\degree,Prand((0..5),inf))], {|evs|if(evs[0][\degree]==evs[1][\degree],0,1)})
  18.  
  19. ~merged.play
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement