Audio file player sync to bar

Hello,
I play keys in my band using GP. The drummer and I get the click by GP.
I would like to play backing tracks via the audio file player.
So far I had to time the backing tracks exactly, which is not always successful. Since the tracks are about melodies among other things, you can imagine what happens if you don’t hit the first beat of a bar perfectly :wink:
Is there a way, once an audio sample is triggered, it waits for the next bar before playing (like in Ableton Live)?

1 Like

I think that is quite easy with this script.
The trick is that one widget enables playback and on the next beat when playback is enabled it is started by using the other widget which is mapped to play of the Audioplayer.

//$<AutoDeclare>
// DO NOT EDIT THIS SECTION MANUALLY
Var
   BPLAY : Widget
   SPLAY : Widget
//$</AutoDeclare>


on BeatChanged (bar:integer, beat:integer, subbeat:integer)
 if GetWidgetValue(SPLAY) == 1.0 then
    SetWidgetValue(BPLAY, 1.0)
    SetWidgetValue(SPLAY, 0.0)
 end   
end

SynchPlay.gig (12.9 KB)

4 Likes

This is very cool @pianopaul. I have attached a modified script/gig as I wanted to control the ‘play quantize’ beat count e.g. set to 4 will trigger the audio player on the next bar.

I also had some issue controlling the audio player ‘play’ by only using SetWidgetValue (if the audio player switched off at the end of the file and the script set the widget value to re-trigger play at the same time, I had instances where the widget would be active but the audio player was still stopped). So instead I had the script directly change the plugin parameter for play). In any case, it seems to be working really well.

SynchPlayQuantize.gig (10.5 KB)

1 Like

Great! Thanks a lot guys!
I’ll try it today and let you know if I’m able to implement the script, cause I’ve never done this before.
Thanks again!

I’ve managed to extend this to work on multiple lanes/channels of the audio player.
To test, I had drum loops on 4 lanes and was getting them to switch perfectly on the start of the next bar.

2 Likes

I gave it a bit more style :slight_smile: I learnt some things doing this, but it was a bit nuts to set it up with all the widgets and layers and scripting - definitely not something I would want to do often. I might add a few more widget requests for things that would have made this much easier to do (if the Devs don’t mind!).

3 Likes

This is exactly what I was looking for!
Thank you so much!
Works perfect.

1 Like

Would you share it the last version?
Looks cool :slight_smile:

Thanks. I have attached the latest version. It is a bit of a hack to get it looking that way, so the earlier version would be much easier to work with, particularly if you want to link a midi controller to the queue/play buttons.

SynchPlayQuantizeV3.gig (56.3 KB)

1 Like

Thanks for sharing.
So it is not possible to map my MIDI controller to the queue/play buttons?

I’ve just updated it so you can map your controller to the play buttons. Let me know how it goes.

EDIT: new version 6 fixes a few issues when first opening the gig file, and also links the play/stop widgets with the global playhead.

SynchPlayQuantizeV6.gig (57.1 KB)

Awesome.
I can’t test it until Tuesday. But I’ll let you know if everything works.
Thanks a lot!!! :slight_smile:

Hi,

this is almost perfect.
I have a few problems:
When the first sample is running and I start a second sample, the first one starts from the beginning.
And the loop function is not working anymore.

Is it also possible to have a panic button, which stops all samples.
The one you created, stops also the click track of GP.

Thank you very much. This is great!

Best,
Silas

Did you check “Single” in Audio-Player?

Yes, but then I can’t play my samples at the same time, right?

Yes, that is right.

What do you want to achieve?

This version provides some extra toggle widgets to turn some features on or off:

  • Sync the audio track widgets play/stop to the global play/stop.
  • Restart the audio track when you trigger it.

I designed it to play single tracks at a time. As @pianopaul mentioned, we will need more details about what you are trying to do.

SynchPlayQuantizeV7.gig (60.8 KB)

Okay.
Here’s the situation:

GP gives the click to the drummer, guitarist and me.
I have a setlist, where every song has its own tempo and its own plugins.
Some songs have several backing tracks that should not always be started at the same time.
For example, sample 1 should play in the first chorus and sample 1 + 2 in the second chorus.
These are short melody loops that I want to run as a loop at certain points. One sample should not stop the others or let them start again, which works since V7.
Is that understandable?

Thanks for your help!

Edit:
My problem was that I have samples with different lengths and the shorter samples only repeat when the longest is over.
I basically want them to be totally independent.
Is there a solution for this?

You should think about using more than 1 Audio Player.
Or use a separate DAW to play your backing tracks
I am using Ableton Live for such tasks

I actually wanted to avoid using a DAW. That’s why I switched from Ableton to GP, because the handling within a setlist and within a song works better for me. In addition, the CPU load is not top bad.

Using a 2nd audio player is a good idea.
How can I modify the 2nd Audio Player to work the same way as the 1st?