I was looking to do the same thing a few years ago, and with the assistance of folks on this list, including Rich I believe, this solution did what you're looking to do. Below is how I documented it in my notes in case I ever needed it again.
Rich’s solution (with a bunch of target cues) should work as well. This would be an alternative to the target cues.
Description of this method:
Group Cue of Pre-show "Preshow Music" (or whatever you want to call it), in this example I've given it a q number of "1" for the script in the next group
---you've probably got this part already
Group Cue "Places" (or whatever you want to call it in fire first child and go to next cue mode), with the following cues:
---Disarm Cue targeting Group Cue "Preshow Music" set to auto-continue
---Script Cue (see script below) setting the target for the Devamp cue set to auto-continue
---Devamp Cue, with q number "dv" to make it easier for the script (set to "Fire next cue when target's loop ends") (note: initially this cue will be broken, no target, the script will set the target)
---Whatever cue you want to go when the currently playing Preshow piece ends, set to auto-continue
---Stop Cue targeting Group Cue "Preshow Music" set to auto-continue
---Arm Cue targeting Group Cue "Preshow Music"
The Script Cue script (in this case I've given the Devamp Cue a q number of "dv"):
tell front workspace
set runningCue to first cue of cue "1" whose q type is "Audio" and running is true
set cue target of cue "dv" to runningCue
end tell
Quick explanation of the second Group cue (where it all happens):
---The Disarm cue makes it so the next song in the Preshow Music group will not be heard (without this cue there was an issue at the time where about a 100ms or so of the next song was heard before the song in the second Group cue played...it seems the Devamp cue didn't sync perfectly).
---The Script cue makes the Devamp cue's target the song currently playing when this cue is executed.
---The Devamp cue, with a new target just set by the previous script, triggers the Whatever cue as soon as the current song ends
---The Whatever cue...the thing you want to have happen at the end of the currently playing song
---The Stop cue stops the Preshow Music from continuing to run (even though you can't hear it, it would keep running through the cues, taking up overhead).
---The Arm cue re-arms the Preshow Music to be ready for the next performance.
Because the Devamp cue's target is changed by the script, the workspace ends up in an unsaved state. The Arm cue makes sure everything is ready for the next performance whether the board op saves the workspace or not.
This solution is a few years old, so there might be a better/more efficient way of doing this now, but I haven't needed to do it since then, so I've not thought about changing the method. For example, the disarm and arm cues may not be necessary anymore…you’d have to test to see.
Or you can take Rich’s suggestion of a target cue paired with each audio cue in the preshow music.
One of the things I love about QLab, always more than one way of getting it to do what you want it to do.
Golla
--------------------------------------------------
Andrew Golla
Associate Professor of Theater
Graduate Program Director, M.F.A. in Directing
University of Portland
SDC Coordinator - KC/ACTF Region