MIDI File Player: Move playing position with button (transport control)

Dear community,

based on a concept by @rank13 I have successfully created buttons that allow me to switch the active song number of the MIDI File Player quantized to the next bar. This allows me to switch between different loops of a song - always seamlessly quantized. :ok_hand:

I am having problems, however, with the following: In case the band gets out of sync (click track), I would like to adjust my playback and immediately jump to the (A) next bar and (B) beginning of the current bar.

So can anyone think of a way to shift the playhead of the MIDI File Player to the (A) next bar and (B) beginning of the current bar?

“GetParameterText” 20 or 21 of the MIDI File Player does return something like 2:3 (bar 2 beat 3), but I cannot think of a way of using this in any function.

Thanks and best regards,

I don’t see any way to dynamically control the position of the midi file. The ‘CurrentPosition’ parameter is for displaying the value in a widget, not for moving the position.

I was afraid the answer would be like this. Thanks for your thoughts anyway! :+1:

I’m not by my computer right now, but what about having a widget that “manually” (re)starts the playback of the midi file (loop)? That widget would not be part of the script.

How can that happen?

1 Like

That would in deed be a possibility. :+1:t2:
Better for my use case would be, however, if I could jump to the next or previous bar.

That does happen sometimes, unfortunately.
Choose your preferred answer:
A) due to bad monitoring conditions
B) certain liquids :grimacing:

Replace the drummer

1 Like

For my understanding:
you have a click track (via the MIDI File Player) and want to restart it on the next beat in case the band is on the woodway ?
Or do you have a click track and some other midi tracks and want to move the play position to the next bar?

I think a trick could be to load different MIDI Files into the different slots of the MIDI File Player and with some widgets select the correct slot and restart the MIDI File Player.

I know that is a dirty hack, but it could work

Slot 1: MIDI File starting from the beginning
Slot 2: MIDI File starting from bar 2
Slot 3: MIDI File starting from bar 3

And then in case the band is offset, select the correct Slot and restart the MIDI Player.

Replacing the drummer could be one solutions, that’s true. :joy:
But knowing the Bavarian beer tents yourself, you know these things can happen even with the best drummers.

@pianopaul, in the best case I have one midi file (per Rackspace) with a click track and some other tracks for sound and lights. Since I cannot define more than one loop regions, I load this same midi file into multiple “songs” of the midi file player. This allows me to define up to 128 looping sections for intro, audience and so and even switch between them quantized to the song. I have achieved this with a Rackspace script and a steep learning curve. :wink:

But this basically makes it impossible to use your dirty hack.

You can extract the current playhead position from the plugin. But you cannot subtract the difference from from the first beat of the current bar (or the difference from beat 1 of the following bar) from it and send it back to the Midi File Player, can you?

This is probably a good feature request for a future version of GP

1 Like

Good idea! :+1:
What would be the best English description for this? Maybe just forward & rewind for MIDI File Player?

The key is to get the functionality right from a performance perspective. I guess playing at some faster speed (like my Korg Kronos) wouldn’t help a lot live.
My old Roland Fantom G did it well in my opinion: on the button press it immediately jumped back to the beginning of the current bar or forward to the following bar. If I remember correctly, the rewind/fast forward moved in complete bars if you kept the button pressed. (Less important to me, but interesting to know how this could add extra value.)

Nudge (by bar, or by beat, etc)

1 Like

I am exploring using the midi file player to pay sequences that can be triggered from the (piano style) keys on my controller.

I basically think I want to be able to trigger 1 measure (I think) sections of the synth part in the ending of Every Little Thing She Does Is Magic:

So, following Paul’s post above. I would think I would load each four-beat (1 measure) midi as s “song” in the midi file player (let’s call each of the one-measure section of midi data “clips”).

Then I would like to trigger each clip by hitting a particular note on my controller (piano style) keyboard.

Do you think this would work?

This is a bit of a challenge for me. I would have to create the full midi sequence in Sonar. Then load each 1 measure clip as a song in the midi file player.

I would have to figure out how (if possible) to trigger each clip by hitting a keyboard note on my controller?

Am I trying to do anything that is not possible? Anything I should watch out for? Suggestions?



what about using the

midi stepper gig script that you could step through with a few fingers and self clocking it rather than relying on the timing of the global tempo and or your ability to trigger the right midi keys associated with your cut up midi parts …
Just trigger the entire midi part with a two finger routine , one finger even !

Thanks, Bob!

Is there some information on that script? (The link takes me to the gig file)


ah let’s try this

or this

I’ve been using this script quite a bit , but with the impetus that I would drive the midi file with a momentary pedal sending note on converted CC’s from midi pipe, also using some injector to local GP Port routine to advance to other song parts without having to trigger the song part manually with my foot which is busy tapping the momentary pedal and doesn’t want to lift and trigger another Rackspace all the while it is driving the midi file associated with the midi stepper script , the only caveat for me using one source is the timing of eight notes when straight timing is required , I find it swings late or sometimes early , but its keeping the hands free !

Thanks, Bob.

So, as I understand it, using this I could either

1.trigger each measure (following the bpm I set).
2. trigger each note in the sequence, sort of as if I am playing it, but without worrying about hitting each note (which I cannot do with one hand because the arpeggios span too many keys).

Which were you thinking? (or none of the above, hah!).

option 2 , trigger the entire sequence with two notes of your choice , the script and accompanying gig file has the Rackspace you’ll need and the facility to denote which two notes you would like to assign to the script , the midi file you would produce in it’s entirety and then specify that midi file path inside the script , Rackspace script editor , edit that script to replace the path that is contained within the default rack space with the midi stepper script , use the path to your midi file there and replace the VST with the synth of your choice to get that sound , seemed you had that dialled already tho listening to your you tube video…
The beauty of this routine is that the two fingers are typically neighbour notes and you only need to play them in time not do the gymnastic routines of the arpeggios where they would land on a keyboard for instance , it’s magic !

Thank you!

This sounds like a great way top do it.

Since I am a bit clueless on this stuff, I may need to bother you (or anyone who is willing to assist) with some of the specifics above, like inserting the midi file into the script and “specifying the midi file path inside the script”, etc.

But, I think I am going to try this.

I think one of my first steps is creating a midi file following the Youtube video using Sonar Home Studio.