Midi CC does not step through Setlist songs

See image below.

The midi monitor input is connected to the output of the Midi IN (Local GP port) block. On the midi monitor window you can see the CC messages 20 & 21 that is sent out on channel 1 when I push each of the button widgets PREV and NEXT.

Also, see the Options/Setlist window … where I have selected CC 20 and 21 on channel 1 to step to the Previous or Next Songs in my Setlist. But, these midi commands does not have any effect.

Please help. How can I get CC 20 to step to the Previous song in my Setlist and CC 21 to step to the Next song in my Setlist?

Are you sending this cc messages from an external controller?

Hi @pianopaul ,

No, they are not received from an external controller.

See screen capture 1 below:
The visible PREV and NEXT button widgets step through the SAFP track list (buttons linked to the widget plugin). At the same time, the linked and invisible PREV and NEXT button widgets each triggers their associated Midi Scriplet Blocks called CC20 Scriplet and CC 21 Scriplet.

See screen capture 2 below:
These Scriplet Blocks send CC20 and CC21 to a Midi Out block called “fromGP” that controls the transport of Foobar (that plays our backing tracks) which now works perfectly after applying the advice from @David-san (A different CC # after a delay of 100 ms - #6 by bvschalk)

At the same time I want to step through the list of songs in our Setlist, so I routed the outputs of those 2 scriplets to the Local GP port Midi IN block, and according to the Midi Monitor block on its output, CC20 and CC21 is passed to the Local GP port. But somehow, as explained in my previous message, I cannot get it to step throught the Setlist songs as I expected.


Maybe now is a good time to explain what I am actually (slowly) working towards (while learning GP). What I want to achieve at the end…

I want to use my touch screen in Setlist View and touch on “PREVIOUS SONG” or “NEXT SONG” at the top. When I do that, both SAFP and Foobar (CC20 and CC21) needs to step through their lists of the same songs, at the same time as the Setlist View steps up and down the song list.

The 1st part of all songs sets up all the effects/patches of the instruments for that song, but bypass the effects on the mics so that we can speak to the audience without effects on the mics while the correct effects are already active on our instruments.

When I then touch the 2nd part of the song, called “Start”, both SAFP and Foobar (CC23) needs to start playing. Foobar playing the correct backing track and SAFP managing (with actions) the patch changes of the effects at the right times in each song.

With this transport requirement end goal in mind (syncing the SAFP tracks and the Foobar-songs with the GP Setlist songs) … I might be completely on the wrong track (excuse the pun) and that is why I state my end goal so that you can set me striaght, now, before I go to far, if there is a more elegant way of achieving the same goal.

Sorry for the long story.

I vaguely remembered there is a difference between send and inject with midi messages.
had a quick search and found this…

I made a simple scriptlet

// Declare a parameter representing an integer range
var
   b : Subrange Parameter 0..3 = 0 // A parameter that can range from 0 to 3 initialized to 0 - useful representing MIDI values

// Called when a parameter value has changed
On ParameterValueChanged matching b
 SendNow(MakeProgramChangeMessage(b))
End

When I move the parameter slider the rackspaces are switched.

Then I made a SetList with 3 Songs and gave PC Numbers to the 1st part of each song.
Now the Songs are switched.

Made a 2nd scriptlet

// Declare a parameter representing an integer range
var
   b : Subrange Parameter 0..127 = 0 // A parameter that can range from 0 to 127 initialized to 0 - useful representing MIDI values

// Called when a parameter value has changed
On ParameterValueChanged matching b
 SendNow(MakeControlChangeMessage(20, b))
End

Matched a button widget to this scriptlet

In the global options I made this

With each press of the button widget the next Song is selected.

You can test with with this

GPPort.gig (76.1 KB)

Thanks @pianopaul,

It is now 22h here in South Africa and I did not get a chance to get to your proposed solution today. I work (non music related) during the days and only get time to work on my hobby some evenings, after hours. Hopefully will get to your proposed solution tomorrow evening.

Hey @bvschalk ,
i am curious, how do you make foobar respond to midi messages? i would also like to control it via midi, can you help me out?

Hi @wolfgang ,

what is “foobar” ?

Foobar is a very small, reliable, free and versatile audio player for Windows:

There are quite a number of various plugins for it available, i guess there might be some MIDI related stuff as well.

there is an old plugin for that which is not online anymore. all other midi related stuff i found are for midi playback.

Install the “midi transport” for Foobar. http://patrizioboschi.it/work/foo_miditransport/foo_miditransport_1.1.zip

As you can see, I have these 4 large “button” widgets (for my touch screen).

It steps through my songs in my GP setlist, as well as through the playlist in Foobar (see top right), as well as through the playlist of the GP SAFP. In synchronisation.

It starts (and stops) our backing track in Foobar and at the same time the “control track” of the same song in SAFP. The “actions” in each SAFP song file (with the same name as the song in my GP setlist and in the Foobar playlist) change the rackspaces for the song at the right moment in the song. (or that is the plan. At this stage, for some reason I cannot get SAFP to change rackspaces…help!?)

Anyway, we use Foobar for our backing tracks because it can play 32 tracks in ogg format. We use 7 stereo instrument backing tracks (14 tracks) plus one for the lead vocals and one for the click track (16 tracks in total), which I route to 8 channels of my audio interface and each of the 8 band member use Open Stage Control on his or her phone to adjust their own monitor levels of the backing track + FOH tracks in GP, as they want to hear it in their in-ear monitors.

The other reason we use Foobar is because I run 2 LRC files with each song, each to a seperate LRC display plug-in of Foobar. One LRC file contains the lyrics and chords and that gets displayed on several PC monitors on the stage floor in front of the band members and the other LRC file only contain the lyrics. That is projected onto a screen, or screens on both sides of the stage, so that the audience can sing along while dancing.