Recieve BPM from Reaper via OSC

Hi everybody, new user here.
I’m trying to recieve proyect bpm from reaper without success, also i would like to send program changes to GP via osc is that possible?

Thanks in advance!

PD: I tried LoopMidi but the midi clock is not that stable.

Have you read the user guide for Gig Performer – the list of OSC messages is in the back.
In particular:

and

thanks man!
Can you specify where i need to put that command “/SetBPM” in reaper to be send to GP?

No idea - never used Reaper - you’d have to ask on the Reaper forums or see their documentation. All I can tell you (as I did) is what needs to be sent to GP to set the BPM

You can put this in your Global Rackspace script.

On OSCMessageReceived(m : OSCMessage) Matching "/tempo/raw"
Var temp: Double
temp = OSC_GetArgAsDouble(m,0)
 SetBPM(temp)
End
1 Like

Thank you very much man! it’s working.

Also i wanna know if it’s possible to replace the send of program changes over the virtual midi to OSC?

That is very easy

Use the MIDI Out (OSC) and use this settings

Then this message is sent out when you switch to the rackspace (log from Konsole on Mac)
Bildschirmfoto 2023-05-17 um 07.43.37

The first argument is the channel, 192 = CH1, 193 = CH2
The second argument is the PC Number

When you need bank selects, you this

Bildschirmfoto 2023-05-17 um 07.48.53

For bank selected the first argument is the channel, in this case 176 = CH1
the second argument is the CC Number and the 3rd argument is the value

But you also use the standard feature

Thanks man!
I will try but am i wrong or this setup is for sending program changes from GP to reaper?

What I need is the opposite, send program changes, banks and midi in general from tracks in reaper to GP, but I can only find midi outputs on the routing.

Thanks in advance!

Yes, your are right.

What messages are sent from Reaper via OSC?
Do you want Reaper to send PC messages via OSC and then switch Rackspaces via getting this PC messages?

Why not send the correct OSC message from reaper?
Gig performer reactions on incoming OSC messages to switch rackspaces/variations/songs/song parts

All recognized OSC messages are documented in the … documentation.

It looks like the osc part on reaper is more for controlling things in reaper, I searching how to set an osc midi output, for now I cannot find the solucion. But I want to switch to osc because looks like it’s faster and more reliable than a virtual midi cable

Are you on Mac?

Windows 10.

I cannot believe that to this date there’s no a standard for sending or sharing midi to other daw, at least locally. For example something like ARA can share audio between 2 software having direct access to eachother, but nothing similar for Midi. :smiling_face_with_tear:

OSC is totally flexible
No need for standardization as the sender and receiver just have to know what the other is expecting or sending.
You are totally free to design your messages
As I stated above Gig Performer reactions on incoming messages
Here the list of predicted OSC message Gig Performer reacts on

Now just send the correct message from Reaper and you are ready to go.
When Reaper is not flexible but sends out OSC message you can use simple scripting in Gig Performer to react on such messages.

Bunch off possibilities - because it is not strictly predefined.

Sure there is — you can send notes, pitchbend, aftertouch and all the other standard MIDI messages.

But BPM is NOT part of the MIDI standard.

Thanks, so I need to find a way to gig performer react to midi and program changes inside reaper, any info around on how to do that?

What do you mean by that?

Well I need to find a way that Reaper send this OSC messeges to GP. Maybe there’s is a way in reaper o scripting on gig performer

/oscHandle/Midi [ [ [] ] Send a 1, 2 or 3 byte Midi message
/oscHandle/NoteOn Send a standard noteOn message, Note Number, Velocity, Channel
/oscHandle/NoteOff Send a standard noteOff message, Note Number, Velocity, Channel
/oscHandle/Note Send a standard noteOn message followed by a NoteOff, Note Number, Velocity, Channel, Duration (ms)
/oscHandle/CC Send a standard CC change message, CC Number, CC Value, Channel
/oscHandle/PP Send a polypressure message, Note Number, Amount, Channel
/oscHandle/PB Send a pitchbend message
/oscHandle/AT Send an aftertouch message
/oscHandle/PC Send a program change message
/oscHandle/SetValue Set the value of a widget
/oscHandle/GetValue Get the value of a widget
oscHandle/SetCaption Set the caption of a widget to the value of the string
/oscHandle/SetParam Set the parameter value at the given index
/oscHandle/GetParam Request the parameter value for the given index
/oscHandle/GetParamCount Request the number of parameters contained in the plugin
/oscHandle/SetPreset Switch a plugin to the specified preset number
/RackSpace/SetVariation Switch to the specified variation number of the current rackspace
/GigPerformer/SwitchToRack | [] Switch to specified rack either by its position in the list or by its name
/GigPerformer/SwitchToProgramNumber Switch to a specific variation (and therefore rackspace) based on the program number
/GigPerformer/SwitchToProgramNumber Send a combined MIDI bank select and program change number (bank select first)
/GigPerformer/SwitchToProgramNumber Sends a MIDI bank select message (with individual MSB and LSB values), followed by a MIDI program change message
/GigPerformer/MoveDown Move to the next variation or rackspace
/GigPerformer/MoveUp Move to the previous variation or previous rackspace
/GigPerformer/NextRackSpace Move to the next rackspace (skips all variations of current rackspace)
/GigPerformer/PrevRackSpace Move to the previous rackspace (skipping variations)
/RackSpace/NextVariation Move to the next variation of the current rackspace
/RackSpace/PrevVariation Move to the previous variation of the current rackspace
/Tap Simulates a “tap” representing a beat for tap tempo detection
/SetMasterFader Set the level of the master fader
/SetGlobalTranspose Set the global tranpose value in semitones
/GetGlobalTranspose Request the global tranpose
/RecordInputs Start (1) or Stop (0) recording the input channels
MIDI
Widgets
Plugins
General
Gig Performer OSC Reference as of Gig Performer 3.0

These are advanced topics - you will really need to study the documentation for Reaper and Gig Performer related to OSC as well as the GP Script documentation for Gig Performer.

You have two choices –

  1. Find out how to configure Reaper so that it sends the messages that Gig Performer expects to receive or
  2. Use GPScript, probably in a global rackspace, to respond to the messages that Reaper does send out and then interpret them with GPScript

What exactly are you trying to accomplish?

You can do those things, but as @dhj pointed out these are advanced topics and require a certain degree of knowledge to execute.

In my usage, I set up Reaper with a particular FX on a track and use dummy parameters as a way to trigger OSC events via the track envelopes (I use DDMF Metaplugin as the plugin for this because it has 256 potential parameters available to use). I then use GPScript to interpret the OSC messages sent and direct them in the ways I wish.

There’s a bit of a learning curve for all of this, but once you get to a certain point it does get easier to use this way. There may be easier ways to accomplish this, as I am not the most experienced OSC user around here.