• ### Abstraction for writing rythms as expressions

tuplex.tar.gz

The tuplex abstraction is a sequencer that works on the principle of tuplets in music theory, that is to say division of a time unit.;
It works around a [delay] object that is periodicaly syncronized to a master metro, so as to never go noticeably off-beat even with low precision.

It allows to write rythms as it follows: 16(1 0.8 1);
This is relative to the metro time setting and means that a period of 16 metro time units is divided into 3 beats.

You can also write 16(1 0.8 (1 1)), which means that the third beat itself is divided by 2

You can have a succession of such expressions as it follows: 16(1 0.8 (1 1))-7(0 0 1 0)-3(1 1)

Now it works fine for what it does but I find it inelegant:
You can only have on set of parenthesis inside another, what would be really cool is something in which you could have an infinite number of sub-parenthesis such as in the [expr] object like this: 64(1 0 (12 13 0 (0 1 (0 2) 4)) 1), but I have no programming knowledge to do this. I've spent a lot of time thinking about this but couldn't find a solution. If any-one has some ideas as to how to do this, please shoot!

• | Posts 5 | Views 613
• @allister this looks interesting. i am sorry i dont have a solution but a question: does the first outlet (sequenced elements) represent different sounds or volumes, or how can i test the patch with sound?

• @Jona , Here are some examples:

1: I just write series of zeroes and ones and then do a [select 1] to trigger samples and stuff
2: I write gain values
3: I write notes or frequencies, such as 60 61 65 ...
4: I use the second outlet to have duration value (simply a time until next beat) and read a sample for that period of time

But then you can use it in any way you like

• @allister thanks a lot.

• You're welcome!
You may also write pairs of values (for example pitch + velocity) with the ":" symbol like 62:120

All this is just an arbitrary protocol I've set up, I hope it makes sense

| Posts 5 | Views 613
Internal error.

Oops! Looks like something went wrong!