Send MIDI commands before song starts

As many other bands we have several MIDI tracks sending preset change information to our guitar modelers, FX units etc.
As I found ,there is a difference in the way Ableton Live handles such MIDI tracks in comparison to Logic Pro (this is probably the only advantage Logic has to Live for Backing Tracks). Live sends MIDI commands only while playing. Logic also sends them when moving the playhead, so if I move to the start of a song (while not playing), all presets are already in place, before the song actually starts.

This has some advantages:

  • As a musician, it’s reassuring to know that you are ready for the next song and the sound you need is already in place
  • You can play some pre-song intro with the correct sound of a song
  • If you name the presets of your floor modeler (or other MIDI gear) after the songs, you can see the name of the next song on the display before it starts. So you might not even need a printed setlist on stage.
  • When controlling Ableset with a MIDI foot controller from the front of the stage, you get a direct feedback that jumping to the next song actually worked.

Now, unfortunately Live does not support this, but I think Ableset could make it work. When jumping to a song, you could start playing immediately for just a tiny amount of time and stop again. Just a few samples, so it should be enough to trigger all MIDI commands but not be audible (even if something is audible, at the song start it’s probably only the click track in most cases).

It would be really cool if you could make this happen!

Hey @johrek, welcome to the forum, and thank you for your feedback!

I currently see two potential ways of solving the use case you’re describing.

First, you could make use of AbleSet’s +PAUSE flags and dedicate the first section of each song for sending MIDI commands to your connected devices. The beginning of your songs could look like this:

CleanShot 2023-09-15 at 17.26.24

If you then enable the “Autoplay” option, AbleSet will automatically play the first section of your song to trigger all outgoing MIDI and then pause when the first actual section of your song begins.

Second, if you’re mainly sending program changes via MIDI, I’ve created a little Max for Live device that you can use to automatically send program changes when the playhead hits one of the clips, even if Live isn’t currently playing:

https://drive.google.com/drive/folders/1VnNlh_6f3cUqq-YOQbChupTB7VICg9m2

Just place the device on a new MIDI track and drag the Program Clips to where you‘d like it to send program changes to you MIDI device.

This is still a work in progress but it should already work for this use case.

I hope this helps!

Hi @leolabs ,
thank you very much for your answer!

Your M4L device is a very cool, I really like the idea of solving it this way. Unfortunately this solves only part of the problems, because for many devices you also need CC commands in combination with PCs (for bank or scene changes).

The first appraoch is also interesting, it’s basically a manual way of what I suggested as an automated feature. But I have a feeling that doing it this way could be a bit cumbersome and error-prone, so having this done programatically would still be a relief.

But let’s see! I will play around with both approaches to see how far I can get and how it actually works out for my cases.

Thanks again (and also thanks for this great software :wink: )!

Ableton should already automatically send CC changes when the playhead overlaps the MIDI clip. That’s how I implemented the Program Change device – basically, Live sends a CC to the device and it converts that to a PC message and sends that over MIDI.

The only thing not possible yet would be sending MIDI notes while Live is paused, but maybe I can implement that into the device as well.

Let me know how it goes with implementing this in your set, I’m looking forward to your feedback!

Hello, I do this with a small loop before every song. Before we start the song there’s always a ‘silent loop’ running to switch sounds/lights/… Then we leave the loop and the intro starts. Also between soundcheck and show this keeps running so everybody knows everything works, there are no dropouts, IEM hear clicks, resolume gets midi and so on.

1 Like

Came here to ask for the same feature - but I’ll give the pause method a try!

@leolabs Using the pause method works great for getting the MIDI messages sent, but there seems to be an issue with the +LYRICS tracks now.

Basically, any lyrics clip that starts after the 2nd locator (+PAUSE flag), be it song section, text, or image, doesn’t appear anymore.

Do you know how I might address that, or is that a limitation of having multiple locators?

Thanks!

Hey @tinsweep,

By default, AbleSet recognizes each locator as its own song, so Intro +PAUSE is seen as a separate song which is why you don’t see the lyrics after the locator. To fix this, you can mark “Intro” as a section by adding a > at the beginning, e.g. > Intro +PAUSE, or you can add the +PAUSE flag to any of your section clips.

I hope this helps! :slight_smile:

That sure does, you’re the best!

I added +PAUSE to the first section clip, love that it even adds a pause button in the lyrics view:

Screenshot 2024-05-01 at 9.37.25 AM

Thanks again!