Before posting, please read: When to use this forum, when to submit a help ticket

Background functionality

Started by soundog, November 10, 2014, 01:54:14 PM

Previous topic - Next topic


What functionality is available from Set List Maker provide when it is "in the background"?

I mainly use Set List Maker to send MIDI messages to external devices when I select a song (secondary use it to read lyrics on a few newer tunes). I have also experimented using an iPhone to send remote control messages to my (master) iPad to select songs (and send their MIDI). However ... I usually have my Mackie DL806 digital mixer app running in the foreground, as I use it to mix while performing. And switching between apps all the time interrupts the performance.

Can the "MIDI send" functionality and remote control functionality work even when Set List Maker is not the visible and "front active" app? (I use various apps that have a "background" mode enabled in which they will actively send audio and react to MIDI messages even though they are not visible). Or, what about if I used a MIDI switch to send "next song" or "previous song" messages to SLM ... could SLM be in the background and still react?


Set List Maker can stay alive, and perform all of its functions, in the background only if it is playing audio. Otherwise, the iOS suspends it a few seconds after it moves to the background.

Some MIDI apps can stay alive in the background without playing audio, but they can only do this with workarounds that aren't directly supported by iOS. I've tried this in the past and couldn't make it work reliably, but I was thinking of trying it again if I have time.


Thanks, Arlo. If you ever get a chance to play around with MIDI background workarounds, that would be great.

In the meantime, is there some way to set up SLM so it would continuously play an audio file(s) during a 45-minute set, so that I could send remote commands to change songs (and send MIDI) with SLM remaining in the background?


Set List Maker can only play a recording in the context of a current song. If you don't need any audio output from Set List Maker during your performance, but you have recordings attached to your songs, you could try turning on Settings > Automation > Song Selection Actions > Play Recording so that a recording plays each time you select a song, then plug a 1/8" cable that goes nowhere to the headphone jack so you don't hear the audio.

But I guess it would still die as soon as the recording comes to an end, if you haven't started the next song yet.


Then, if I attach the same "blank" audio recording to each of my songs that is longer in time than each song's actual performance  (with output routed to nowhere), there is a chance this could work.

I'll experiment and let you know what happens...


When I've experimented with this in the past, iOS knew I was playing a silent recording and didn't stay alive for that. You might need a recording with some sound in it, and try muting the device volume or connecting a 1/8" jack if iOS even suspends the app when the volume is muted.


Obviously the mp3 would not need to have a bit rate of anything close to 128 kbps, since the audio will never be heard. No reason to make the file size any bigger than necessary.

Maybe a mono file to make it even smaller?


Yes. One other idea is to make a long audio file that simply contains a beep every five seconds ... that would give you a "heartbeat" to know that the app is still alive. You could route that to an in-ear monitor, or to a channel on your PA that has a signal light that you can keep an eye on.

Actually instead of creating and attaching a special audio file, I think this would work with the built-in tempo feature. You could try setting a tempo for a song and playing that while the app is in the background. I can't remember if I tried that before.


Aha! Preliminary test results indicate that the tempo feature set-up to send audio (and audio background enabled) works! I tested quickly using a MIDI controller to select songs, and SLM was sending MIDI changes in the background. I'll provide any details later...


OK, yes ... it seems to works smoothly and reliably by sending audio tempo in the background.

I wish, though, that a linked device would reflect the status of the background state of SLM. In other words, it would be nice if my linked iPhone would list the active song title on my iPad after I have changed it via midi control while its running in the background.

That may not be possible .... I don't know how the iOS handles info when in background mode.


Do you mean you want to use a MIDI message to change a song in the backgrounded Set List Maker on your iPad, and then you want the backgrounded Set List Maker to change a song on your iPhone?

I don't know why that wouldn't work; did you try it? I would think that if any functionality is available, all functionality is available, but maybe iOS distinguishes between different kinds of functionality somehow.

Alternatively, could you just control the iPad and iPhone both from the same MIDI message?


 Ideally, I would use the iPhone as the master to select/activate songs running on the slave iPad (which is running in the background and sending MIDI when songs are selected). Second best would be the ability for the iPhone (as slave) to display which song is active on the iPad (and I would use MIDI buttons for next song, previous song commands).

The reason? So I can keep my Mackie digital mixer active in the foreground on the iPad, but be updated and certain which song is active in SLM in the background.

So far, I have not been able to achieve this linked device updating successfully. All master/slave device link functions are working OK when SLM is in the foreground, but when I send SLM to the background, I seem to not have the link anymore (although the MIDI info is being sent from SLM).

Controlling the iPad and iPhone from the same MIDI message is a good idea but not ideal, as I would have to have a separate MIDI (to 30-pin) interface and cables set up for each separate iOS device.


I'll test device linking with the slave device in the background and see what happens. I'm using an iOS framework for that, which iOS might be withholding from background apps. I need to redo the device linking with a new framework for Android compatibility, so if it doesn't work now, it might be possible at that time.



In the upcoming version 4.1 of Set List Maker, you will be able to switch the device linking functions to use wi-fi instead of Bluetooth. This is more robust than the Bluetooth version, and as a nice side-effect it appears to work in the background, too. However, Apple generally prohibits apps from doing that, so I'd have to call it an undocumented feature at this point. More info is here:,848.0.html