Is there a "SetSongPartName" function? - Integrating Ableton with GP

Hi everyone,
I am learning about GP Scripting and I am interested in creating something to facilitate my workflow with GP and Ableton Live on Arrangement view.
I considered using GP to play tracks, but it is just easier for me to use Live - I put all my pre-formatted songs on arrangement view for a set, I have separate tracks, I get tempo changes by using a master audio tempo track that the other warped tracks follow, I can change keys and tempo easily and I get visual feedback of song parts by using empty regions named with song parts on a midi track.

I would like GP to do a few things:

  1. Make GP follow Live’s tempo - I got this working just setting Ableton Link
  2. Make GP song parts follow my song parts dummy midi track on Live
  3. Make GP change songs when Live Jumps to the next song locator - I use a locator at the beginning of each song (or use another midi dummy track for this.
  4. I would like to avoid re-creating my set in GP.

I got Live sending all kinds of OSC messages using this python script on Github: GitHub - ideoforms/AbletonOSC: Control Ableton Live 11 via Open Sound Control (OSC). I was amazed I can get all clip names and times (in beats) from my dummy track with OSC. I tested with a GP fader widget sending OSC messages.

Now, if GP Script had a few more functions, like “SetSongName”, “SetSongPartName”, “NewSong” and “NewSongPart” I could potentially write a script that would automatically import all the songs and song parts in my Live set with the correct timings.

Is there any way to do this?

No, you currently can’t create or rename songs and parts using GP script.

1 Like

As I understand Gig Performer should not rename Song Names or Song Parts but switch to given Songs and Song Parts, or do I miss something?

1 Like


receng

2m

What I want is really to go beyond switching parts to importing parts from Ableton Live directly.
The idea is to construct the song set on Live and import the whole thing to GP and not have to do it twice.
I have the data I need from OSC so it would be nice to have the function…

Thanks for the replies!

I am lost, what do you want to import from Ableton Live into GP?

I am uploading some screenshots.

  1. The “Ableton Song Set” screen shot shows how I organize the set - First track called “Tempo” has song names and and BPM in each region- these regions are the master “Warp Lead” - that set the tempo for each song. The second track called “Markers” is composed of dummy midi regions that have the song part names as a visual cue. I want to import this whole structure in GP - song names and part names.

  2. The “OSC Clip names track2” screenshot shows how the script attached to a fader widget for testing has produced the OSC response shown on the “GrabberReceiver” that contains all the song part names in track 2 (Markers track) - I would like to use that to build the song structure in GP

  1. The “OSC Clip start times track2” screenshot shows how the script attached to a fader widget for testing has produced the OSC response shown on the “GrabberReceiver” that contains all the song part start times in track 2 (Markers track).I would like to use that to change song parts following Live.

Is it more clear now?

Another idea occurred to me - If I had all songs set up before hand in GP - for instance, I can use one set list to contain all the songs in my library and another set list for my next church gig, can I use a script to move songs from one set list to another ?

Do you want to create songs and song parts ingig Performer via sending OSC messages from ableton ?

Move songs from a setlist to another setlist via scripting?
What should that be good for?
Do you really need that?

Ok, I thought I little more deeply about the workflow and I changed my mind - I need to use each program for what they do best - Ableton live is great for warping tracks which allows for tempo changes and key changes while GP is is great for making a rig setup with the sounds I might need for each song and each song part.

  1. My initial idea of importing a song structures from Ableton accomplishes little, since I need to build my song library with the sounds I need in GP - that can be done manually over time. Let’s abandon that idea.

  2. My second idea was copying (I shouldn’t say moving) songs from one set list to another - that would be good for keeping one setlist as a library with all of the songs and the second setlist would be the gig setlist with just a few songs. I could get the name of the songs from the Ableton OSC data and copy the songs I need to the gig setlist. That would be useful but I don’t see a function to copy from one setlist to another on the documentation.

  3. I had a third idea last night, and I think it may be better if I start a new post with this one. Assuming that I have all the songs in my GP Library setlist, what if I could just go directly to the song by getting a OSC message from Ableton - So I looked for a function like “SelectSongByName”- alas, that does not exist. But I found a workaround in the documentation, provided GP script is fast enough. I am looking forward to test this:

  4. I manually go to the Setlist view in GP and select any song in my “Library setlist”

  5. I get the song name from Ableton OSC in a variable

  6. I use GetCurrentSongName() and see if the song I am in in GP matches the Ableton

  7. If it does not match I can do a For Loop in "NextSong()"until i find it or I exceed the song count.

Sorry for changing direction and not being sure of what I need while you guys are trying to help me - I am new at GP and GP scripting and I am grateful for the help!

Is there a correct place for feature requests?

Thanks!

There is a menu entry to add an existing song to a setlist

1 Like

I don’t know where you’re looking “for a function” but you can certainly send an OSC message to Gig Performer to switch to a specific song or a specific song part, etc

That said, I’m not sure why you don’t just send a MIDI Program Change message from Live to Gig Performer?

Seems to me you are overthinking the problem.

Take a look at this
At the end it is shown how a song can be selected via OSC

1 Like

Thanks, I am new at this!

Thanks, This is very similar to what I want to do, but Thaddäus uses Ableton in Session view.
I use it in Arrangement view, so I have to get my song names from clip names in the track in arrangement view. I have not tried his MAX for live plugin, but I suspect it was made for Session view.

The AbletonOSC User Remote Script I found on GitHub gives me an array of clip names in a track and array of timing of these clips in beats in Arragement view.

The way I select songs on Ableton is using markers - I have markers mapped to the beginning of each song on the timeline mapped to numbers, 1 for the first song, 2 for the second and so on. I would like Gig Performer to follow when I select and play songs in the Timeline in Ableton.

Looking that GP’s OSC implementation, it is possible if I find a way to send this OSC messages from Ableton - Looks like I need to learn a little Max for Live to do this…

I got it!!! I can use VoidGrabber to do arbitrary OSC messages in Arrangement view: Free Tools Support | Showsync

That will allow me to select the song using a simple automation lane. I can build that in my Ableton Live template and it will work.

Thanks for all the help!

1 Like