In a multi-file project, even when I show and click the record indicator on the web UI, when one song finishes, loads the next als and plays, the recording is no longer armed. How can I continue recording instead of playing when moving from one song to another?
Hey @Haz, welcome to the forum!
What you’re seeing is expected: Live’s record state doesn’t survive loading a new project file. Each .als opens with its own state and the global record button always starts off, so as soon as AbleSet loads the next song the arm is gone. There’s currently no native “keep recording when jumping to the next song” option.
If you’re on AbleSet Pro and comfortable going the scripting route, you can rebuild this with a Project Script. The trick is to wait until the new song has actually started playing before re-triggering the recording — if you fire it the moment the file finishes loading, AbleSet’s jump to the start of the song overrides it and you end up back in plain playback:
// Re-triggers recording after a new song file has loaded and started playing
let justLoaded = false;
onOscChange("/global/isLoadingFile", ([loading]) => {
if (loading) justLoaded = true;
}, true);
onOscChange("/global/isPlaying", ([playing]) => {
if (playing && justLoaded) {
justLoaded = false;
sendOsc("/global/startRecording");
}
}, true);
The justLoaded flag makes sure recording is only re-triggered after a file load, not on every manual play. This works whether or not you have Autoplay enabled — with Autoplay on the recording arms itself as the song starts, without it, it arms the moment you hit play.
One thing to keep in mind: since recording is triggered after playback starts, it’s technically a punch-in, so you’ll lose the first few milliseconds of each song.
Two more things worth checking on your side:
- The Project Script lives in the AbleSet folder inside your Live project folder. If all your
.alsfiles sit in the same project folder, one script covers the whole setlist. If each song is its own separate Live project, you’ll need to copy the script into each one. - Live’s global record only captures into armed tracks, so make sure each
.alsis saved with the tracks you want to record already armed — otherwise recording will engage but capture nothing.
Would that work for your use case?
Thanks for your help! Unfortunately I’m no on Pro. I wonder if the best way for me to record a set in multi-file is to manually click the record button every time the next song is jumped to and starts. Would you think that’s a reasonable move?
On the other hand, I’m a bit curious why Ableset does not offer a “record flag” which triggers recording, which can conveniently be placed after the “SONG STARTS” flag.
Hey @Haz, sorry for the mixup!
Scripting and OSC tracks are Pro-only, but sending OSC commands to AbleSet works on Standard, so you can at least map recording to a footswitch or a pad instead of reaching for a screen.
Go to Settings → MIDI Mapping, OSC & Scripting → Edit MIDI Mapping, add a new mapping, hit the note or CC you want to use, and set the command to Custom OSC:
/global/toggleRecording
That gives you a single button that arms and disarms recording. If you’d prefer two separate controls, use /global/startRecording and /global/stopRecording — note that startRecording also starts playback if Live isn’t already running.
I’d also turn on the record indicator in Setlist and/or Performance view so you always have visual confirmation of the state
Hope that helps!
Heya, no worries, and thanks again for the back-and-forth help! I just want to clarify: other than using “a footswitch or a pad”, is there a way for me to do it automatically with a MIDI clip within the Ableton project under Standard? I did try creating a MIDI track with +OSC in the name, and then renaming the MIDI clip to /global/toggleRecording. However, when the playhead reaches the clip, recording doesn’t get toggled. It seems my previously attached video screenshot of this didn’t go through; here it is: https://drive.google.com/file/d/1Jv9_vL0qdGz-nsQk62mmyQQ77EAnysiQ/view?usp=drive_link
Hey @Haz,
Thanks for bearing with me here. I’ve cleaned up the thread so the earlier incorrect information about OSC Tracks isn’t left sitting there for anyone who finds this later.
To re-confirm: OSC Tracks are a Pro feature, and that’s exactly why your clip does nothing when the playhead reaches it. On Standard, AbleSet doesn’t process the +OSC track.
OSC Tracks are the only mechanism AbleSet has for firing commands from the Live timeline, and they’re Pro-only. On Standard, the trigger has to come from outside the arrangement — a MIDI mapping to a footswitch or pad, or clicking the record button.
If automating this ends up mattering enough, Pro would open up both routes: OSC Tracks for the clip-based approach you were going for, or the Project Script for the fully automatic version that re-arms recording on every song change.
Just so you know, upgrades cost the difference between editions and can be done from your account page.
Let me know if anything else comes up!
Bummer, but thanks a lot for getting to the bottom of this!
Hey @Haz, I just implemented a feature that automatically re-starts recording after jumping to the next song file at the end of a song if you were already recording. This should solve the issue you described.
I’ll make this available with the next update ![]()
This is amazing, thank you so much!! Do you have an idea when this will be
available? I would love to be able to do this in my next gig.
I can’t give you an exact date, but it should be available some time this or next week ![]()
Y’all are legendary. Thanks again.
Hey @Haz,
Following up, this just got solved natively. From AbleSet 3.2.0-beta.10
When auto-jumping to the next song in the setlist of a Multi-File Project while recording, AbleSet will now ensure that Live keeps recording
Note the “while recording” part: you still start the recording yourself on the first song, but from there it carries across song changes on its own.
Give it a try and let me know how it goes!
This now works perfectly. I can’t say how much I appreciate you all considering this request, deeming it reasonable, and implmeneting the right functions.