Will said @David-san, and thanks for the suggestion!
Thanks to everyone! and sorry for the delay, unfortunately as a new user I was not able to write further messages yesterday (limit new messages 19h).
I solved the problem thanks to the suggestions and indications you gave me. By the way, I hadn’t noticed that the online page containing the list of OSC messages on the Song Master website had been updated recently. I was watching a saved page I had made, where there weren’t some commands listed including the /barBeat.
I publish the updated codes here, to be inserted in the Gig Script (one or the other alternatively) to receive the two type of BPM. I don’t know if the code can be written more elegantly in any case it works.
Instantaneous Bpm" time (estimated bpm for current bar):
var bpm : double
mOSC : OSCMessage
// Receive the instantaneous Bpm (estimated bpm for current bar)
//
On OSCMessageReceived(m : OSCMessage) Matching "/barBeat"
bpm = OSC_GetArgAsDouble(m, 2)
SetBPM(bpm)
End
Global (average over entire song) Bpm:
var bpm : double
mOSC : OSCMessage
// Receive the Global (average over entire song) Bpm
//
On OSCMessageReceived(m : OSCMessage) Matching "/barBeat"
OSC_SetAddress(mOSC, "/bpm")
OSC_Send(mOSC)
End
On OSCMessageReceived(m : OSCMessage) Matching "/bpm"
bpm = OSC_GetArgAsDouble(m, 0)
SetBPM(bpm)
End
I hope it can helps others like me that are scripts newbie. Instant BPM is updated every bar, it may be useful in some cases to receive this in GP and not the global.
Tempo synchronized (via link or midi sync) it is obviously another thing, but on the other hand, it must also be taken into consideration that specific softwares are usually needed to create a tempo map for a song (Melodyne,etc) and many times you have to make many manual corrections to the tempo map even if you used the most advanced softwares to have it really precise because you are not working on the individual tracks but on the mixed song.
Again many thanks to all your help
I can still confirm that these scripts generally work. Unfortunately there is a problem when you want to speed up or slow down the tempo of the song directly in Song Master (or through the specific OSC commands from Gig Performer scripts).
@aurallysound I noticed that there is a problem in the OSC values of the instantaneous Bpm that are sent when you decide to speed up or slow down the tempo of the song played. I think it’s a bug. The values of the instantaneous Bpm that are sent are always those of the “normal” tempo of the song, without taking into account the tempo variation made for having accelerated or slowed down the song. The error is also visible via OSC Data Monitor where you can see that the values sent are the ones of the “normal” tempo of the song.
I report the problem in any case. Many thanks to all
Just checked to confirm that you’re correct regarding Song Master not adjusting for speed changes in the bpm reported in OSC /barBeat message. Will get this fixed.
@aurallysound, we know that, now, you would like to atone for your bug by implementing a MIDI clock ASAP. But no stress, we can wait… at least a little bit…
LINK would be perfect.
@aurallysound thanks for confirming, I hope I have been of help in reporting it.
I’m creating a rackspace panel in GP to check and see if Song Master can be suitable for my needs so I noticed it. By the way I wanted to report that I seem to have found another bug in the /StemTrack#Volume OSC address.
Song Master sends correctly the float values of 0,000-1,500 for this OSC address to Gig Performer, however it doesn’t receive correctly the values. If Gig Performer sends the float values 0,000-1,500 (verified) to Song Master, it oddly “limits” the data received to 0,000-1,000 and so the the stem track volume can’t can’t reach the max value.
If a solution to synchronize time is added in the future (let’s hope ), I think a more “universal” solution would be better. Maybe having both MIDI clock and LINK. In this way you are not obliged to use programs compatible with the Ableton LINK, but all programs or peripherals that can receive the “simple” MIDI clock can be used too.