Synchronized Ableton Scenes/GP Song Parts with Auto Advance

Greetings all,

I’ve been working on a solution to use GP as a master scene controller for Ableton. My initial goals were as follows:

  1. Use GP song parts to trigger Ableton scene changes via OSC commands, based on matching names (GP Song Part = Ableton Scene).

  2. Ability to auto trigger the changes via preprogrammed bar length (think Ableton Follow Actions), and adjust this bar value on a per song part basis.

  3. Ability to trigger the scene changes manually via widgets, while maintaining a quantized start time.

  4. Ability to visualize the bars and beats that have elapsed since the last song part change, independent of the global playhead.

Using the great work of @rank13’s Quantized Song Part script as the template, I think I’m finally at a point to share.

Prerequisites:

  1. Live Grabber, a Max For Live OSC plug-in that allows for triggering of scenes via name.
    LiveGrabber by ShowSync

  2. Ableton Link enabled between GP and Live, with synchronized play/stop preference enabled.

@rank13 deserves all the credit here, as he prepared over 95% of this script and gave me the tools I needed to customize it for my purpose. In order to differentiate, I included a comment /ADDED to each line that I inserted myself. There may be some things to be changed here and there, but it’s working pretty well for me as is.

The idea: I wanted to be able to use Gig Performer to advance scenes in Ableton automatically, as in Follow Actions. Alternately, I wanted the ability to change the auto advance length at any time, or even defeat the auto advance feature all together and let the Ableton scene loop indefinitely. This would allow me to decide in the moment whether to extend a part longer than usual, or let it play through in the original arrangement. Of course, this could have been done similarly in reverse, using Ableton and Follow Actions to sequence Song Part changes in GP. However, I love the customization of the GUI in GP and I think this solution makes it easier to adjust on the fly.

The first thing that must be done is to insert a “GrabberReceiver” and a “Scene Grabber” effect from the Live Grabber toolset onto the Master track in Ableton. You an customize the receive port to your liking, as well as the receive address for scene changes. Just make sure the OSC details are reflected in the GP scripts. Furthermore, ensure that the Scene Grabber is set to receive scene changes “By Name.”

In order for this method to work properly, your song part names in GP must match your Ableton scenes exactly. This is because GP will send an OSC message with the song part name as the method to launch the scene. Any changes in song part name must be reflected in the scene name and vice versa. Once it’s setup, however, you can trigger the song parts by name anywhere in your live set, and setlists can be rearranged at will in GP. My naming convention will probably be some version of the song title plus the specific part, i.e. “AG CH1” for American Girl, Chorus 1. Goes without saying that song parts must be unique. Of course, you can also achieve a version of this with just Song Names launching the scene, but I specifically wanted control over each and every song part in my set.

With Global Quantize set to the default 1 bar in Ableton, the OSC message must be sent out a beat early before the quantized song part change in GP, in order for them to switch absolutely simultaneously. This works whether you are letting the song auto advance or you are switching the song parts manually.

The BarSelector widget is global, but it can be tied to local rackspaces through the global parameter, allowing snapshots per song part for the length of the part. Toggling the AutoSwitcher button will enable or defeat the auto switch function accordingly. Finally, I added a custom counter on the right hand side of the global rack created by @rank13 that will reset to 1:1 every time the song part changes, or the playhead starts. I just like having a visual of how many bars and beats have passed since the song part change, irrespective of the global playhead counter.

2022-03-07 20.33.47

Big thanks to @rank13…I hope some of you find this workflow useful!

Quantize Song Part Changes(EDIT).gig (363.6 KB)

6 Likes

Great write up! And I love seeing the ‘proof’ it all works via your final gif :+1:

4 Likes

This is great, thanks! I found the LiveGrabber manual online which also helps. In my case I want to adapt this to Ableton’s arrangement view - I run tracks for multiple songs in the same arrangement view. I would need it to trigger locators in Ableton instead of scenes and It would be really nice to bring into Gig performer the current clip name and Tempo value. I will try!

Bump. New to GP and was just thinking to myself it would be handy to trigger song part changes from Abelton and came across this thread in my search. I see this thread is about 2-3 yrs old now…would this still be the way to set this up with latest GP 5? can this be integrated into an existing gig set somehow. I have not yet worked much with globack rackspace or scripting. cheers

What do you want to achieve?
Switch scenes in Ableton triggered by GP or vice versa?

vice versa. I’d like ableton to trigger a change to song part in GP. SO when I hit my chorus scene in ableton it would trigger GP to change to the chorus song part

Chewie, I did get this working, but as you mentioned it’s been several years and I have moved on from it. I would highly recommend you look into AbleSet as a partner for GP5. The two together are extremely powerful and you can send custom OSC messages out of AbleSet that are synced to your grid. Almost anything in GP5 can be controlled with OSC, including song part changes. This is eventually what I moved toward and away from achieving it with exclusively with GP’s own scripting language.

took a quick look at ableset. It seems quite powerful /useful though I’m not lookign to drop more $$ on software just to change a few song parts. I’m still looking for an in the box solution within GP if possible…thx.

You have to send OSC messages from Ableton Live to GP then it works.
For this you need a M4L device which listens to a scene change, then constructs the correct message which is understood by GP and then send this message to GP.

I have some learning to do as I’ve not used OSC before or scripts or used the global rackspace in GP yet

I also came across this: [Gig] Quantize Song Parts Changes - Gig and Rackspace Files - Gig Performer Community

isn’t that doable through ableton dummy clips sending program changes corresponding to the variations? iac driver (mac) or loopbe (windows) needed.

1 Like

Actually yeah that seems like it should be possible yes? i just need to find what the corresponding midi messages to send to GP for the current song and part number in the setlist

on another weird note: yesterday while working on my ableton recording project. my footswtich connected via my novation sl mk3 that i have for start/stop session record was triggering GP to increase song part selections in setlist view. no idea why as i checked the global midi settings and cleared any learned midi for inc/dec song parts. if i’m in wiring view it will not do this

for rackspaces program changes are automatically placed starting from 1.
you can reorder rackspaces and they will change their programs to the new order.

if you want specific ones - you can assign them to the variations.
double click on the variation - and set whatever bank select and program change you wish.

i tried both methods - they work fantastic.

as for GP increasing song parts - it must have been some midi message.
check this by using a midi monitor. but it is indeed strange that there was no mapping for next song part/variation in the global midi settings.

mabye GP was receiving PC messages associated with its rackspaces?