Streaming Audio Player: sync track with song selection

Congrats on the release and just watched the video on this.

Awhile back I moved from 1 rackspace per song to multiple songs per rackspace which reduced rackspaces, file size and optimized loading time.

The downside of this was that my audio player (which was in each rackspace) had the specific song it was related to (great for practice at home).

Although I gave up that feature , is it possible with the streaming audio file player to put it in the global rackspace and have it load a specific song based on the song selected in setlist/songpart mode?

If so, how?

Thanks

MM

1 Like

Yes, it’s possible. There are two options:

  • Have a gig script send a midi message to the Local GP Port when a song is changed e.g. Song 1 sends CC value 0, Song 2 sends CC value 1 etc. You would have a widget mapped to the Track Number parameter of the Streaming Audio Player, learned to the Local GP Port and this CC. This option won’t account for changing song orders.
  • Option 2 is to use the Song Part properties and define a specific CC value to be sent to the Local GP Port when the song is selected. This is a new feature in GP 4.7 to be able to send the message to the Local GP Port from the Song Part properties. This option has the benefit of always selecting a specific Track, so will work with re-ordering songs.

If you have 127 songs or less, the easiest thing to do is to use the widget scaling to define a Max of 12.7 for the SAFP Track parameter. This means that sending CC value 0 will correspond to track 1, value 1 will correspond to Track 2 etc.

5 Likes

Thanks, Option 2 would seem to be best for the reasons you suggest (every setlist could be different) so mapping would stay by song.

Would option 2 work if your mastersetlist exceeds 127?

MM

Thanks for this , it’s interesting to me but I’m lost as to what particularly is the widget that is scaled to a Max of 12.7 for the SAFP Track parameter . The SAFP has a parameter Track Number that can be associated with this widget that is scaled to a Max of 12.7 , changing that widget does select different song numbers to play from the SAFP , but , how does the song part property that has the "midi message to send when the song part is activated " get to the Global Rackspace Widget that changes the SAFP track to be selected ? Hope that makes sense as a question , nearly there grasping option 2 as you so kindly outlined , thanks !

This is why I won’t be using the Global Rack for this. You have to “LINK” widgets from the Variation Panel to the Global to save snapshots for the Variations .
But I’m having trouble getting the songs to change tracks in Set List Mode. If I move the slider a different track loads - but it’s not remembered per song/var

1 Like

Okay so by LINK of course you refer to having a Global Processing plugin “to Global Rackspace” in the Rackspace and then duplicate widgets that reflect say the Global Rackspace widgets which have Global Parameter Assignments made which these can be LINKED to from widgets in a Rackspace .
I understand that and that works , say a widget that is a horizontal white slider assigned to SAFP track number , each variation could be named with the name of the song assigned to a track number and selected by the position of that widget Max scale value set to 12.7 works , but what I don’t understand is the concept of sending the CC from the song part parameter Midi Helper Tool send this CC say 0 out to the GP Local Port when the song part is selected ?

1 Like

Yes, you could use pitchbend messages in order to access more than 128 values. But you might need to get the calculator out to determine what values to send :slight_smile:

These options are for using the SAFP in the global rackspace, and do not use local rackspace variations or snapshots.

By sending the midi message to the “Local GP Port”. This is a special internal midi port that widgets can be learned/linked to.

Song Part Properties

  • Access the MIDI Helper Tool.
  • Choose the Local GP Port as the MIDI device
  • Decide on a CC to use to control the Track Number widget. I’m using CC 84. To select the first SAFP Track, use CC value 0.

Widget Properties

  • After adding the SAFP to the global rackspace, map a knob widget to the Track Number parameter.

  • On the MIDI tab, click the Edit button and then manually choose the Local GP Port and the CC number you chose earlier.

  • On the Value tab, change the Max value to 12.7. This is necessary because the SAFP can support 1000 tracks, while a MIDI CC only has 128 different values. Reducing the max value does mean that you can only access 128 tracks in the SAFP, but that is the maximum number of CC values that you can send, unless you switch to using something like Pitchbend messages, which have 16K values.

The end result is the song has an explicit link to the SAFP track. So even if you change the Song order, it will still select the right track. You just can’t change the track orders in SAFP.

SAFP Sync Song to Track

EDIT: If you require access to more than 128 files/tracks in the SAFP, you can instead use Pitch Wheel messages. This csv has the required Pitch Wheel LSB and MSB values to select each track in the SAFP (up to 1000 tracks).
SAFP Pitch Wheel to Track Number Conversion.csv (16.2 KB)

5 Likes

Followed these steps and got this result. Almost there…

I did add the block to Set 1 - It didn’t make a difference.

1 Like

Ignore that error. I will submit a bug ticket as it’s not needed to add the block to the rackspace. It should all still work.

2 Likes

Tried it for another song and it’s working. So cool!

1 Like

This would make an excellent blog article. I’m sending program change messages from Songbook to GigPerformer Songs at the moment. The missing piece is to select the corresponding SAFP track. Still thinking through how to build this out given that I’m using SongBook as the trigger via program change.

1 Like

SongBook could send the CC message directly to GP to change the Track Number widget.

Alternatively, if you set things up as described above, if SongBook is changing the selected song in GP, then the SAFP Track selection will still work the same.

1 Like

This will be cool. I have Bandhelper changing the song so if the song changes the SAP that should work well.

Yep, it works well! I opted for the second method where I send the CC message from the song part rather than doing it from SongBook. The advantage is that it still works for those times I’m not using SongBook.

1 Like

My thought would be the same. Use Bandhelper to change to the song and (hopefully) when the song loads , it will load the correct/matching song from the streaming audio player

MM

This would indeed be a great blog article. I got the same error above and ultimately Once I get this working, I probably need to delete my audio file player in all rackspaces and then add the ability to control the SAFP from the foot switch (like I used to do with the Audio File Player)

I tried saving snapshots with the track number but they didn’t seem to load

HAs potential for sure… Just a little over my head

As I’m working through this, I’m figuring it out though I don’t think it was designed for this purpose.

The reorder tracking and shuffle tracks buttons could be killers with this approach :). Perhaps a way to lock them?

…and another problem with this approach is that if the song has more than one part, changing the song part turns off the SAFP.

MM