Independent clock per track

Andrew Chanover's icon

Hey was hoping to get some guidance on where to start with this. Basically, I want each track on Ableton to be able to step at an independent tempo. I am using this great m4l device called Opal. I'm assuming it listens to the global tempo, but I was wondering if there was a way I could tell it to listen to a different tempo (without editing the opal patch)

TFL's icon

There is no such thing like per-track tempo in Live.

Alternatively, you can natively stretch a midi clip over time. Maybe you can find a transformer device that helps you use it as a BPM changer.

For audio tracks,the LOM allows to dynamically add, move and remove warp markers, so maybe there's a M4L device for that too.

Source Audio's icon

Take a look where that device syncs to live transport.

Insert a switch that disables it and uses own made clock.

But it is not that simple if that device uses objects that directly

depend on Live's tempo, like translate , or uses note values as time base

You would have to replace that with proper ticks to ms calculation, because translate object can't receive other then BPM form Live

something like this

Aera's icon

No, you can not make Opal listen to anything else than the Ableton master Tempo without changing the patch. And even if you changed the patch it would not be trivial.

You can change the clock division though, but I'm sure you're aware of that already.

Wil's icon

If you study music composition

You should know that within 1 tempo

you can create many tempos with different metric divisions

for example

4/4 on the beat .. |: 1 1 1 1 | 1 1 1 1 | 1 1 1 1 etc

4/4 every 3 beat. |: 1 0 0 1 | 0 0 1 0 | 0 1 0 0 etc

4/4 every 5 beat. |: 1 0 0 0 | 0 1 0 0 | 0 0 1 0 etc

I just created the illusion of 3 different conductors at different tempos

//

more complex

4/4 on the beat...... .. |: 1 1 1 1 | 1 1 1 1 | 1 1 1 1 etc

4/4 1/2 note triplet. |: 1 . 0 . 1 | 0 . 1 . 0 | 1 .0 .0 etc

4/4 quintuplets. ..... . |: 10010 | 01001 | 00100 etc

again 3 independent conductors and tempos - doable in 1 time sig

***dots are for spacing - text editor doesn't allow double spacing

Roman Thilenius's icon

so 110 110 110 is the famous 2/3 signature?

but talking about strange numbers, i think the idea is not wrong, if you use a very high order signature (not sure what is possible in live) such as 32/32, you can alteady create a bunch of different timings from its beats. of course not arbitrarily, but at least several "integer" polymetric clocks.

Source Audio's icon

tempo is tempo, division is division.

you can not slowdown from 146 to 128 in 10 sec using divisions

Roman Thilenius's icon

thou shalt not overestimate the compositional ambitions of the OP.

Wil's icon

can slow down to 127.75 using divisions and keep master tempo 146

this isn't 100% authentic because I quickly built it using [switch]

but it should be possible to program the mechanism/contraption without a switch - metrically ritardando

in 10 seconds? Maybe

Max Patch
Copy patch and select New From Clipboard in Max.

I don't have any composition paper nearby - or a finale / Sibelius right now

-- this will be impossible for humans to perform , but thanks SOURCE AUDIO - give me ideas for computer

try to show it with text:

start 4/4 |: 1 2 3 4 :| (loop counting 1 2 3 4)

start 'thinkinh' septuplets inside each 4/4 beat

its really fast |: 1 2 3 4 5 6 7 2 2 3 4 5 6 7 3 2 3 4 5 6 7 4 2 3 4 5 6 7 :|

move to the new beat |: 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 :|

All of the 1's in the above pattern are tempo 146, all of the large numbers (1 2 3 4 5 6 7) are tempo 127.75

I am not sure about gradual change over 10 seconds - those septuplets are already 32nd notes - maybe introduce 64th notes

Source Audio's icon

If one goes back to original question, there are 3 values:

play state, bpm and raw ticks - which in Live are elapsed quarter notes,

1 quarter note == 1.

so why not simply grab bpm, scale it and accordingly slow down or speed up

raw ticks float counter which can generate scaled bbu or whatever progress.

but again - in this case where there are translate objects that do notevalues to Hz

or ticks to ms, it can not work whatever one does, without decoupling this values from Live transport.