Problem with order of translators

kvitamin

2009-03-24 05:57:02

So let me break down the issue. I'm trying to control the playstart of a 2 bar loop in ableton so I can hit eight different buttons and each one will start from a different position within the loop (like button one would start at the begining, button two would be the following snare, button three would start on a hi-hat sound etc) . I've assigned a knob to control the clip's playstart so when you turn it, the start position moves down the clip from beginning to end.

In MT I've got:
Translator 1: press button one and it sets the knob's value to 0 (setting the playstart to the beginning)
Translator 2: press button two and it sets the knob's value to 16 (the next quarter note)
Translator 3: press button one and it triggers the loop
Translator 4: press button two and it triggers the loop again

This works well except the only problem is that when i toggle back and forth between button one and two, it triggers the loop before setting the value of the knob so it plays from the current playstart position, then moves the playstart to where I want.

Any thoughts on how I can make it always change the playstart position BEFORE triggering a clip? Can you force the order of the translators?

Thanks for the help,

florian

2009-03-31 22:08:32

Hi kvitamin,

it is guaranteed that MT processes the INCOMING actions in order that they appear in your preset. All outgoing actions are also executed in order of being triggered. But, some actions are executed asynchronously, e.g. keystrokes. As long as the type of outgoing action is the same, it is also guaranteed that the outgoing actions are executed in order in the preset.

e.g.
Translator 1: IN MIDI x y z, OUT: keystroke A
Translator 2: IN MIDI x y z, OUT: keystroke B

-> it is guaranteed that it is always emulated A than B

e.g.
Translator 1: IN Key F, OUT: MIDI F1
Translator 2: IN Key F, OUT: MIDI FE

-> it is guaranteed that it is always sent MIDI F1, then FE when pressing key F

e.g.
Translator 1: IN MIDI x y z, OUT: keystroke A
Translator 2: IN MIDI x y z, OUT: MIDI F1

-> the result is not deterministic, i.e. it is possible (and likely) that F1 is issued before key A, because the OUTGOING action is different.

Does that help?

Regards,
Florian

kvitamin

2009-03-31 22:43:41

Thanks for the reply,

That is good to know, but I have it set up so it is all just midi information, no keystrokes. Would it be possible to use the timer to make the later translators happen 1ms after the first translators or something to that effect?

florian

2009-04-08 09:40:45

Hmm, the MIDI messages should be generated in order, except: messages with more than 3 bytes may be delayed somewhat.

Anyway, yes, you can use a timer with 1ms to delay certain messages.
Instead of the Outgoing MIDI message, select Timer (Name "Msg Delay", one-shot, 1ms). Then add another Translator Entry with Incoming Timer (same name, "Msg Delay"), and Outgoing the MIDI message you want to have delayed. Note: local variables (if used) cannot be passed across timers!

Florian