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:
Make GP follow Live’s tempo - I got this working just setting Ableton Link
Make GP song parts follow my song parts dummy midi track on Live
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.
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.
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…
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.
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
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.
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 ?
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.
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.
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.
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:
I manually go to the Setlist view in GP and select any song in my “Library setlist”
I get the song name from Ableton OSC in a variable
I use GetCurrentSongName() and see if the song I am in in GP matches the Ableton
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!
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?
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…