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)

5 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!