[BUG?] Radio Button Deactivate on Song Switch [Script]

Evening,

My main Gig file has a small piece of script that lives in the Gig Script that allows a ‘preset’ Song Part to be automatically selected when a new Song is chosen, rather than it defaulting to the first Song Part. It does this by looking for a string in [ ] in the Song name and then selecting the corresponding song part when On Song is triggered; the script is below. I have used this piece of script for around 2 years, most days, with absolutely zero issues.

Function f_SetStartingPart()
var startingPart : integer
    idx : integer
    name, part : string
    subIdx : integer

/* Indexes:
 * CL = 0
 * R1 = 1
 * D1 = 2
 * L1 = 3
 * AM = 4
 * R2 = 5
 * D2 = 6
 * L2 = 7
 */
 
// Set starting song part index

    idx = GetCurrentSongIndex()                     // get current song index
    name = GetSongName(idx)                         // get name of current song
    subIdx = IndexOfSubstring(name, "[", false)     // find the start of the patch index in the name
    
    if subIdx == -1     // no patch entered in song name
        Then
            startingPart = 1    // set starting part as R1 by default
        Else
            part = CopySubstring(name, subIdx+1, 2)     // if patch index is in name set starting part
            Select
                part == "CL" do startingPart = 0
                part == "R1" do startingPart = 1
                part == "D1" do startingPart = 2
                part == "L1" do startingPart = 3
                part == "AM" do startingPart = 4
                part == "R2" do startingPart = 5
                part == "D2" do startingPart = 6
                part == "L2" do startingPart = 7
                true do startingPart = 1        // if none match, set to R1
            End
          End
          
    SetSongPart(startingPart)

End

I did an update on my Gig File the other day and then, seemingly at random, on switching Song there was a huge boost in level of my signal. I switched to anotehr song part and the level increase dissapeared. Switched back, manually, to the auto-selected Song Part and the level was fine. Switched to another Song and the level was fine. Switched back and the level shot up again.

In my investigations, I found that if I commented out the above script (or rather, the function that calls it within the Gig Script) then I didn’t see the issue. Which is odd as the script doesn’t touch any plugins and I hadn’t made any changes to it or where it is called. I also noted that a set of widgets were not setting themselves where they should be at the point where the level increase was heard. Once I switched to another song part and back those widgets were correct.

Working to produce a ‘minimum’ rackspace I eventually tracked it down to a set of radio widgets controlling a 16-way mixing plugin (GP built in one). The radio buttons control the solo of each of 5 channels. Again, I have been using this for about 2 years and had made no changes to it at all. The issue seems to come when the song part that is ‘automatically’ selected by the script above in the new Song has a different selection of the radio widget array than the song part from the old song. What happens is then that all 5 solos ‘clear’ and so you get the signal sum through 5 outputs instead of 1.

Attached is the minimum gig file - the only plugin in it, other than the GP 16-way mixer, is a noise generator just so the level jump can be heard; but it is visible with the plugin open as you can see all the solos turn off. The widgets do NOT all turn off though and continue to indicate as if only 1 is active.

Please can someone check this? It sometimes takes a few switches between the two songs for it to trigger, but it is pretty repeatable. The songs are set up with the correct song part names to match the script above and have variations set with different values of the radio array.

System is Mac 15.6 and GP version is 5.1.1 - I had made no updates to either (or any other software) at the point this issue appeared.

Level increase bug_AbsMin(2).gig (194.2 KB)

OK, well number 1 I’m not on the latest GP version, so let me do that first…..

You could try having the first song part linked to an empty rackspace/variation, and then shifting the song part indexes in your code by 1.

That may help understand if there’s a race condition with the first song part being selected for a split second before your script changes it to a new song part.

1 Like

Yep, great idea and will try tonight. It’s just the weird thing that I’ve been using this Gig File and script for a couple of years with absolutely no issues and then suddenly there was - now, there is no such thing as suddenly something stops working with software so clearly something changed but goodness it’s hard o find!

Well, I still have no idea why this problem popped up, but this has ‘fixed’ it with no apparent downsides so I’ll carry on with this. Will still try and get to the bottom of the issue in case it is a symptom of a deeper bug.

2 Likes