Could I commission someone to build this Song Selector?

Except GUI interfaces, which can only be done through an extension

Is this because the same switch would be calling say the song on the top leftmost grid would be using the same footswitch for each bank, or do you mean because the same switch that would pick that song would also pick a song part?

If its the second thing, would it really even matter? If it would matter, is there a way to block messages to Sont Part selection if the Song selector state is active?

I’ve actually been wondering about that for some other functions as well, if its possible to have a switch tell widgets not to respond to specific messages while that switch it on?

If its really a problem that the same footswitch would call up both aq song and a song part, needing to use different numbers on the foot controller isn’t that horribly bad, some pedals can both send a message and switch banks at the same time making it really a non issue, but even those where you could only switch banks would be ok, (especially if there is a button to show or hide the song selector grid, but even without it it would still be ok)

Would populating the grid with banks of song names fall into that category even if it was just done on a rack panel?

No. I was referring to the notion of creating new windows with their own gui interfaces

Let me try to describe it more simply…

If your foot controller always sends the same midi message when you press the first button (lets say Note 0) then your script/extension has to know which action you want it to take when it receives Note 0.

If you sometimes want Note 0 to change to a new Song and sometimes want it to change to a Songpart, your script/extension has to know which you want. The next layer is that you sometimes want it to swtich to Song 1, sometimes Song 9, sometimes Song 17, etc. based on how you’re paging through them.

A completely different way to approach it is to have your foot controller send different midi messages depending on what you want it to do. For example, button 1 can send Note 0 when you want to change to Song 1, but CC 0 when you want to select Songpart 1. In this case your foot controller has to know what messages to send, which is generally done with different presets on the controller.

What I was suggesting in my last post was that it’s best to plan out how all this stuff is going to work together first.

1 Like

Ok this makes sense. In the simplest world, I would hope for say CC1 value 127 to pick song part 1 in Setlist mode, Song 1 in Bank 1 in Song Selector Mode, and Song 9 in Bank 2 of Song Selector Mode. That’s if say when in Song Selector Mode it could block it from sending Song Part commands.

But if that is fraught with peril, then switching banks on the controller itself to send a different set of messages is fine

working script loads song names and updates setlist change.gig (183.1 KB)

I tried making a script to do this. I ended up having to use OSC for part of it but that was probably wrong and probably a better way to do it.

So far it loads song names into the grid and updates the names if I change the setlist.

What it can’t do so far:

  1. Bank up and down to load the next and previous 4 or 8 songs
  2. No idea how to make the song switches actually load the relevant song when clicked, same as the bank up or down buttons (assuming they can be made to work)
  3. Bank number display

Given how fun it will be to add this to my existing scripts, I can see why extensions would be a way better, less confusing and less human error prone way to go!

Scripting wise, I’m running into a few things where such as SwitchToSongByIndex where it only works on the global rackspace, but some of my other commands want to be in the local rackspace. I’m probably up against the wall on my cleverness index. SHould I keep trying to fight this as a script or should it really be an extension? (which would definitely be beyond my capabilities at the moment)

Here is my script based mockup. It actually works and I used it at practice, but I think it would probably still be better as an extension. The main missing feature to me is the ability to have this panel only showing when selecting songs. I believe in this way, there would be no reason to change banks on your pedalboard as the same commands that you are already using could control the song selection.

Push the song selector pedal, pop up the panel, pick the song and this automatically closes the song selector and puts you back in variation/song part selection mode

Here is the gig file:

Song Grid working - Use this 3.gig (309.0 KB)

2 Likes

@pipelineaudio I have made a start at a ‘Grid Selector’ extension. I’m hoping it will cover your use case, as well as others who might want a touchscreen selector.

  • The selector display/hide will be controlled by a widget.
  • The grid size will be user customisable.
  • The numbered boxes in the top-right of the middle row will correspond to your controller footswitch number. These will be the ‘direct select’ indicators.
  • The total number of these direct select indicators will also be user customisable e.g. in the above example, my controller only has 4 switches that I will be using for directly selecting a song.
  • I intend on having preferences for how the selector behaves after selecting a song e.g. (1) Hide; (2) Remain permanently visible; (3) Show the song part list.
6 Likes

This looks epic! When I get home I hope to have a really good look at it!

1 Like

A first draft to try out.
GPGridSelector-Win64.zip (download removed)
GPGridSelector-MacOS-Universal.zip (download removed)

A few comments:

  • The preferences don’t save (to be added later)
  • The selector works with both songs and rackspaces
  • No support for song parts or variations (to be added later)
  • To open the selector, you need to add a template rackspace panel to the Global Rackspace (as it’s opened by a widget). You can add it via panel Edit mode in the global rackspace:
  • The panel includes 10 ‘direct select’ widgets and bank up/down widgets. Map your midi controller buttons/footswitches to these.

Maybe the most challenging part is that the selector is not a proper window - so you can’t move or resize it. It will use the primary monitor and automatically fill the entire screen. This may be limiting for those with multiple monitors. However I figured during performance, most would be using a single screen or mirroring the primary display (but happy to hear otherwise).

4 Likes

Oh man. Of course this post comes when I’m mixing a show in Waikiki! I’ll try it when I get home. Can’t wait!

2 Likes

I’m having trouble getting the song seleting to work. If I click on it with my mouse it works ok, but assigning pedals to each song slot, only one of them seems to work. Is there anything I need to do like make the switches momentary? Or catch behaviour?

Making your controller send Momentary messages will definitely be the best option.

Is there a way to make GP act like its momentary coming in? I’m trying to think ahead for other peoples’ pedals that may not have the option

The extension could be updated to handle latching switches. But the next issue will be if the footswitch has LEDs, as it could become confusing having multiple switches active/lit, or, for example, you’ve changed banks and want to select switch 1, and it’s already active/lit.

So, functionally, it will work, but the controller LEDs will have no relationship to what’s happening with the song selection.

Have you ever come across a pedalboard that couldn’t support momentary?

I may not be thinking about this correctly. Right now I have both pedalboards set to send value 127 on whichever CC when you press a pedal. They never send 0. This doesn’t seem to be working correctly with the extension. One of the pedals will pick a song, but I can’t tell what makes it different than any other

Can you make them send 0 when you release the pedal? Just to rule that out of the equation.