Change SongPart on Note Event

I’m interested in changing a Song Part, based on a Note On Event.

Here’s the use case. I’m managing the states of a looper with Song Parts. I might have a Song Part called “Reset”, followed by “Record Drums”, then “Loop Drums”, then “Reset Again.” I’ve found that a great way to manage loop recording is to automatically start recording on one crash cymbal and stop recording on the second crash cymbal.

I have a workaround. In the Local Raskspace script, I align the Variations with the Song Parts. When performing, I’m in Setlist View. I get MIDI Note On callbacks from my Zendrum. In the Rackspace script, I confirm that I’m in Setlist View and that I’m in a certain Variation. When the magic note occurs, I go to SongNextPart(), which increments the Variation. Now I look for the next magic note, and again go to SongNextPart().

It works fine, but…

It’s a bit odd, mixing Variations and Song Parts in the code. It would be cleaner if the Song script could get note events from Rig Manager MIDI Inputs. I could then check that I’m in a specific SongPart, react to a given note, and go to any other SongPart. This would allow keyswitches to random Song Parts, which might be useful.

The limitations that I found are these: In the Local Rackspace script, I can’t get Song Part events. I can go to the next Song Part, but not to a random Song Part. In the Song script, I can’t get Note On events.

As noted, I have a workaround for my use case. I have to keep my Variations and Song Parts aligned to make it work, but I plan to do that anyway.

I think that Variations and Song Parts were only separated recently, so I can understand why there are some limitations. More than anything, it was an annoyance for me to find these limits, and mixing Variations and Song Parts to get there is a bit odd.

But since I have a workaround, I’m happy. :slight_smile: On to the next!

That should not work. When you’re in setlist mode, you should not be able to change a variation. A variation is tied to a song part. How are you changing variations when you are in setlist mode?

No - variations are tied to rackspaces and song parts are tied to songs - they have always been separate (songs and song parts were not in the first version of GP)

I think the reason it may be confusing (it was for me for a while) is you can access widget panels and modify the widget settings in a song part using the “capture” widget setting tool (aka “snapshots”).

But, it is better to think of that as just saving particular widget settings of a variation to that song part. (The variation itself is still connected to a rackspace).

You are correct. I use SongNextPart(), which changes Song Parts. I have manually associated my sequence of Song Parts with a similar sequence of Variations, so when I increment Song Parts, it happens to go to the next Variation.

The reason I do this is because I can track which Variation is active, based on callbacks, but I don’t have access to the SongPart callback in Local Rackspace scripts.

That’s the core of it. In the Local Rackspace script, when in Setlist Mode, I can only increment SongParts, but I can’t get information about the Song Part state. My workaround is to infer the Song Part state from the Variation. It works great. :+1:

(Check your private mesages)

Yeah, this used to confuse me. Now I think it’s brilliant. :grinning_face:

Here’s an example… You want the Variations to do specific things and set the Widgets accordingly.. You go to Setlist Mode and go through a series of Song Parts. It’s possible that a plugin will change a Widget value, compared to how you set it in the Variation. (MSuperLooper’s Record parameter does this.) You save the Gig. Fortunately, this doesn’t overwrite the settings in the Variations. :+1:

2 Likes