🔥 Lifetime deal! Get Control Surface Studio for Just £67 👉 Click Here To Get It
Time left... mailtimers.com
⚠️ Lifetime licenses are ending soon, get yours before they're gone ⚠️
Your shopping cart is empty.

moving loop like scrub

Submitted by benwadub on Sun, 01/23/2022 - 20:33
benwadub
Control Surface Studio User

hi, is there a way to move the loop like for the scrub instead of setting the loop start to a point in the timeline?

Topic Category: 

21 Responses

Comments

benwadub
Control Surface Studio User
#1

I found a solution by setting the song position as m1 modifier then using this m1 to set the start loop point but the loop position as always one bar of difference, any idea why this happen?

Wim
Control Surface Studio User
#2

Just a wild guess here, but could it have something to do with quantization? Try setting it on 'none'?

benwadub
Control Surface Studio User
#3

just tried, quantize doesn't seems to make difference

JohnC
Forum Admin
#4

I created a solution for this a while back - reminder to self, this really needs to be added as a script in the import section of CSS.
Scrub from current position in the arrangement timeline (insert boom emoji here :) ):
https://remotify.io/community/question/song-position-control-scrub-arran...

edit: I see now that this doesn't actually answer your question (insert hand slapping face emoji)

benwadub
Control Surface Studio User
#5

Si you have a solution for my problem of loop that doesn’t exactly set the beginning at the exact point I need?

benwadub
Control Surface Studio User
#6

hi, I found a solution! I added a reaction on the same button than the one I use for activate the loop.
this reaction set the current song position to m1 modifier and my button also set the loop at the m1 position and this work nicely!

benwadub
Control Surface Studio User
#7

@john do you know if that could be possible to set the loop end with the encoder instead of loop length? with loop length I only can map two values to my loop length.

JohnC
Forum Admin
#8

What 2 values can you only map with loop length?
There's no specific loop end action but you should be able to set the loop length to whatever you need.

benwadub
Control Surface Studio User
#9

M’y encoders are relative so I only can set a value when velocity is 1 or 127, what I d like is to have my encoder that make the loop longer or shorter when I turn knob, by exemple more or less one bar by each tick of my encoder,
For the moment I only can set a value for encoder turn left and another value when encoder turn right.

JohnC
Forum Admin
#10

You would need 2 Action blocks, 1 for when you turn the encoder left & another for when turned right.
In each action block, add a condition to check the velocity value of the encoder.
First Action block should check that the velocity is 1 (so turning left) and in action block 2, check for velocity 127.

In the action section for each...
select 'live object model > song > set loop length
In the 'Beats' option, you want to add/minus a value to the current loop length.
This can be done like so (make sure to select 'custom code' for the beats option so you can enter code) :
self.song().loop_length + 4.0
self.song().loop_length - 4.0
The fist line of code above gets the current loop length and adds 1 bar to it (4.0) and the second does the same but minuses 1 bar,

benwadub
Control Surface Studio User
#11

thanks a lot!! I didn't thought that + or - could be used!!

benwadub
Control Surface Studio User
#12

do you think something like this could be used to scroll between the different option of the clip grid quantization? by exemple if my grid is 1/8 turning left go to 1/16 and turning right go to 1/4?

benwadub
Control Surface Studio User
#13

the +4 or -4 does not work on the loop length after testing :-(

JohnC
Forum Admin
#14

it needs to be + 4.0 or - 4.0

benwadub
Control Surface Studio User
#15

I copy pasted what you wrote and this doesn't t seems to work.
I just saw something strange, in my controller template my encoder 20 is set to channel 16 value 60 and in my condition in the script editor that write me :self.midi_cc_ch_15_val_60.cur_val == 1
so channel become 15 instead of 16 in my loop length reaction.
i let the files here if you want to check if that s a bug maybe?

benwadub
Control Surface Studio User
#16

maybe the channels start counting from zero, I thought about it just after sending the post sorry!

Wim
Control Surface Studio User
#17

Hello benwadub,

Yes, that is true, the channels start counting from zero ;-)

I checked the code for 'loop_length' and came to the conclusion that although, when displayed in CSS log, the numbers were correct, it was not reflected in Ableton. So you just have to put the calculation back in the 'loop_length', like this: "self.song().loop_length = self.song().loop_length + 4.0"

I also simplified the 'clip grid quantization' script I made for you last time. So now you only have to adjust ('Endless encoder 7' and 'Endless encoder 7 latest velocity value') to the encoder you will use.

I tested both scripts with a relative knob. You can check them out.

A la prochaine ;-)

Wim
Control Surface Studio User
#18

About the 'loop_length' script, I just now saw that is exactly the code that is on John's attachment: "increase decrease loop length.png" (and that is also what he was describing in his last post)
Doh.. I'd better go to sleep ;-)

benwadub
Control Surface Studio User
#19

thanks! I ll try that as soon as possible!
you speak French too?

benwadub
Control Surface Studio User
#20

oh damn nearly all works nicely thank you guys!!!! really thank you!!!
just a problem to scroll between 1/16 to 1/8 and vice verse, from 1/8 that jump to 1/32 and from 1/16 that jump to 1/4
any idea ?

Wim
Control Surface Studio User
#21

Hi Ben,
Glad it is working, kinda.. ;-)

I checked the code and it seems fine. The 'jumping' in quantization has to do with ordering the Action Blocks.
When you put as first the blocks with 1/4 in the condition, then 1/8, then 1/16 and as last 1/32, you will be able to move from 1/32 to 1/4 easily, but the other way will always catch 1/32.

So I have written the same script in one Action, which should work fine.

Cheers ;-)