using matrixctrl for polyrhythm

cocamon's icon

Hello friends and foes,

Do any of you have the necessary objects to make a polyrhythmic implementation of matrixctrl? I sure think it would make this nice object more fun!!!!!!!!!!! anyway thank you.

-C

cocamon's icon

perhaps i should add, i am looking for a way to produce triplets and the like.....

Cheers!

seejayjames's icon

You can use a total number that's divisible by 2 and 3, like 24 or 48, instead of the usual 16 or 32, that can allow triplets right in the grid. Or you can process the "beats" differently: each time it hits an active cell, it can
1) play 1 beat
2) play two beats (like two eighth notes)
3) play 3 triplets
4) play the first and third triplet
etc...
Maybe you could have multiple states for each cell, and instead of volume (which it typically is), each state could represent a different rhythmic outcome.

You just need to map the overall tempo to your "subdivided" beats, and you can get as complex as you want within each cell (which could be considered quarter-notes, ready for slicing and dicing). This approach also lets you do different subdivisions per track of the matrixctrl, whereas the top method doesn't (though is easier to implement).

Yep, matrixctrl is awesome...you can even interpolate with pattrstorage if you use multiple states...way cool.

cocamon's icon

Great, Seejayjames. Thanks. I was wondering tho, What exactly do you have in mind when you say "multiple states for each cell" controlling the number and types of note values, I would be rather curious to see how you implement that.
Cheers

roger.carruthers's icon

I imagine he means using matrixctrl in dial mode, whereby each cell can have as many sates as you like, you just need to make a custom graphic for the matrixctrl and scale accordingly.

I don't know about Max 6, but it's not well documented in Max 5 - it doesn't even make it into the .help file, but it's there in the online docs. If you search the forum, you'll find countless posts from me banging on about it ;-)

I have a large drum machine type patch which does exactly this; each cell can be any value from 0 - 8 and these values represent the no. of repetitions at that division of the beat.

The numbers are stored in a table/coll/seq~ and when the number is banged out, a metro is set at that division of the beat and is used to trigger the repetitions. It's probably not as precise as it could be, but it works.

If I get a minute to whittle it down, I'll post an example,
Cheers
Roger

seejayjames's icon

Exactly, the highlighted cells are no longer simply on/off or volume states, they represent subdivided rhythms within an overall tempo-controlled beat. With the right scaling of your overall metro, you can have each cell state play any pattern you like.

cocamon's icon

Great! But i dont understand what, "You just need to map the overall tempo to your "subdivided" beats," or they represent subdivided rhythms within an overall tempo-controlled beat means. It may be helpful if you post an implementation of these ideas, as I don't know what they mean in the world of Max/Msp. Please bear with me.

Cheers!

roger.carruthers's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Here's a fairly crude example. Matrixctrl graphic below,
Cheers
Roger

4044.5way3copy.jpg
jpg
sepulcky's icon

I think the best choice for polyrhythmic UI is the mulstislider because it can be easily resized according to beat size. You may place several mulstisliders under each other and make a matrix-style UI with dynamic resizable rows.

A couple months ago I've made a polyrithmic solution suitable for me. You can watch how it works on my youtube channel: http://www.youtube.com/watch?v=POZqF6d6xh0