< Back to IRCAM Forum

Rhythmic Cell Applier Rests

As I’ve been exploring the Rhythm Cell Applier patch from the 3209 collection compiled by Peter Edwards, I noticed that if one enters negative duration fractions (-1/4), the Rhythmic Cell Applier doesn’t map the given rhythmic cell to all the pitches from the melodies series in chord-seq. For instance, while the given rhythmic cell (1/4 1/4) maps onto all the pitches from the melodic series (in this case four pitches), a rhythmic cell that includes a rest (1/4 -1/4) somehow doesn’t map to all pitches, giving only two out of four pitches. So the Edwards’s Rhythmic Cell Applier is working great, as long as there’re no rests. I speculate that OM is processing and applying some lists differently than one would expect; I attached the reduction of this patch if you’d like to have a look.

I’d be very grateful if you could point me in the right direction. I’d like to set up an algorithm so it always outputs all pitches, that is the complete melodic series, regardless if there’re any rests included in the given rhythmic cell.

Thank you!

rhythm-cell-applier-rests.omp (9.03 KB)

Hi Nagymusic,

I took a close look on these patches and what I conclude is that you are mistaken about the purpose of this patch. It was just design to repeat any rhythmic cell on the given chords disregarding the occurrence of note num and rhythm num. It is just a repetitive process which doesn’t take into account matching notes and rhythm. Maybe you are looking for a rhythm filterimg. In this case just take a look to Functions->Score->Trees-> filtertree. Or if you have something else you want ot achieve, it is better to describe want you want to do first, and avoid taking a ready-made patch to adapt it after, this might be a hassle and might lead you to erroneous solutions.

Best
K

Thanks for your feedback and clarification! It all makes sense now.
I tried using the filtertree function but as you said, it’s somewhat problematic to apply to the given situation. What I’d like to eventually have is a repeated rhythmic cell with rests (rhythm ostinato) that maps onto the entire list of given pitches by repeating itself as many times as needed, while respecting all the rests included in the rhythmic cell and no ommitting (or repeating for that matter) any elements from the pitch series. Depending on the exact ratios of pitches to rhythms nums, the last repetition of a rhythmic cell may be incomplete. I’ll certainly keep working on this and will welcome your suggestions. Thank you!

OK
I don’t know if this is what you want to do, ie an isorhythmic patern. It’s in the patch.

Best
K

isorhythmicser.omp (18.5 KB)

Thanks so much for sending this! Yes, this is very close to what I’m looking for: talea and color!

Now, I replaced the pitch series with a longer one (96 pitches) and with a different rhythmic cell featuring rests (6 durations). See the patch attached. Given these constraints, the rhythmic cell of 6 durations should now repeat exactly 16 times in order to map onto 96 pitches. And it does. Also, looking at the beginning of the voice output, the rests are now respected. However, towards the end, the rhythmicized pitch series doesn’t end with correct pitches - the last four pitches in voice are different than those in chord-seq! Not sure if this has to do with rests or something else. It appears it works fine with shorter series of pitches. Thanks again!

isorhythmicser-test.omp (45.2 KB)

Ooops… My bad,

It is 6 durations BUT 4 pulses. So it must repeat 24 times… ( I forgot something in the n-pulse loop…)
So disregard the first patch. This is the correct one…

Best
K

isorhythmicser-test1.omp (54.5 KB)

That’s it! Thanks so much for your time to help me with this.

Hi nagymusic, seems you got what you needed.

But since the problem hits some general issues, and quite common in OM, i’d like to present an alternative approach. This one uses the Pattern library, setting up two lazy sequences for “Talea” and “Color”.

Values are fetched “on demand” inside the loop, so no need to do any arithmetic on lengths etc. before starting, and no need to traverse the collected sequences to delete unwanted values (e.g. ‘nil’). The logic in the loop is simple:

  1. get the next rhythm, collect it
  2. if the rhythm is not a rest, get the next pitch value, collect it
  3. if the last pitch value has been grabbed (p-eop?), finish the loop and return the accumulated results.

-anders

lazy-isorhythm1.omp (47.1 KB)

Thanks, Anders. I’ve been studying the Pattern library so thank you for sharing this! I look forward to testing it in my project. By the way, is there any documentation on the Pattern library that one could consult, a reference manual or tutorial?

There are example patches included. Once you’ve loaded the lib:

Help -> Import Tutorial -> Patterns

should leave a folder in the workspace showing some uses.

It is a port of Rick Taubes ‘Pattern Streams’, so very much of Common Music documentation is relevant,

http://commonmusic.sourceforge.net/

The dictionary, but perhaps even more the examples coming with cm2 or cm3.

Also most compositional use-cases presented in Rick’s book: “Notes from the Metalevel” would be using patterns in various ways.