Cyclical Poly-Rhythm

    May 23 2013 | 10:24 pm
    I am working on a Poly-Rhythm generator and need to be able to have running cycle of ever changing onsets. For example,  one of my series of poly-ryhthm's base is 5. I want to cycle through that series with an onset on the 4th note.  I then want the next onset to start 3 notes later, then the next 2 notes later.  I want to be able to set this up for large scale running patterns. Just not sure how to do the calculations.

    • May 23 2013 | 11:41 pm
      Hi, I'm having a bit of trouble with the terminology, but do you mean that you'll be running a cycle that is:
      0 0 0 X 0
      And then another one that is:
      0 0 X 0 0 ?
      "then the next 2 notes later"... do you mean that you want to alternate between these patterns?
    • May 24 2013 | 12:38 am
      That is it but I want to nest them inside different groupings of say 5, 4, and 3.
      I need to be able to generate and nest multiple patterns such as these:
      5 tuplet = X O O O O  -  O X O O O  -  O O X O O  - O O O X O   etc.
      4 tuplet = X O O O - O X O O - O O X O   etc.
      3 tuplet = X O O - O X O - O O X   etc.
      I would choose from a "reservoir" of patterns and apply this principle across a wide spectrum of durational/rhythmic patterns.
    • May 24 2013 | 1:08 am
      All your examples seem to conform to the formula: choose a division d, and articulate every a attack points of that division. Off the top of my head I'd probably use a metro synched to the transport to specify the divisions (or the tempo object, if you prefer), and then use a counter (or a % object with the output of tempo) to specify the articulation points. If that's not clear enough, let me know and I'll cook up an example.
    • May 24 2013 | 5:01 am
      Chris Dobrian could do better but I just built this starter kit using some of the objects he mentioned
    • May 24 2013 | 10:15 am
      Here's what I meant.
    • May 24 2013 | 12:52 pm
      Ah, so you are basically looking to generate a database of sorts of these permutations in order to recombine them?
      As in, right now it's not about polyrhythmicality at all, it's just about generating the patterns, yeah?
      because otherwise:
      X O O O O - O X O O O - O O X O O - O O O X O == X 0 0 0 0 0 repeated
      X O O O – O X O O – O O X O == X 0 0 0 0 repeated.
    • May 24 2013 | 1:20 pm
      In our class, we were presented with this article on change ringing that may be helpful (attached as pdf). A very talented classmate of mine was successful in creating a max algorithm but he would have to explain it.
    • May 24 2013 | 1:24 pm
      Sorry, that pdf did not upload. The article is "Composing Algorithms II by means of Change-Ringing" by Lejaren Hiller and Raveesh Kumra.
    • May 24 2013 | 1:54 pm
      Yes. Chris Dobrian's gets right to the point. Notice his example mixes notevalue time arguments and ticks time arguments. In Max every 4n has 480 ticks. This is necessary when programming divisions other than duple and triple. [translate] is helpful for generating time syntax arguments.
    • May 24 2013 | 3:19 pm
      The seq~ object is also handy, since you can add event values in floating point values. (and then scale the overall tempo via changing the speed of the phasor~)
    • May 24 2013 | 5:30 pm
      @freddiemas: could you please upload it somewhere? all I could find was for-pay photocopies and such.
    • May 24 2013 | 11:19 pm
      Been away from the computer today but this is great help.  Will try and work on this over the weekend. Christopher's suggestion is headed the right way and Peter's idea taps into that I am already using seq~ with phasor~.  Got something in the works but need to work it out and haven't been able to focus on it at length today.
      I'll post my patch soon once I get somewhere with it.
      I would also like to see the Hiller article.  JSTOR doesn't seem to have it even.