Question about CPU usage

I haven’t tested that, but I can try that if it would be helpful. But honestly, I wasn’t aiming to make it a “is GP optimized for multicore” exercise. I understand all the stuff you (and others) have written about the limitations of processing across cores. The conventional wisdom is everything is going to end up on one core, and while you can spend a lot of work in software trying to optimize, in 95% of real world applications there’s little measurable benefit.

The impression I’ve gotten from my years with Reaper is it’s not really a “for profit” exercise for him (Justin Frankel). He got rich enough selling WinAmp that he can do what he wants now, and he seems to enjoy geeky optimizations and such. He enjoys whipping the llama’s ass like that.

Based on what I’ve read (and casually observed) Reaper takes all of the routing into account when allocating work across threads. So if I do what you’re suggesting Reaper is going to know that as soon as I feed bus A into bus B it can’t do those in parallel anymore.

I couldn’t understand “just assign the Widgets via MIDI learn to events on the loopBe1 port”, guys… It’s not the kind of explanation you give to someone that hasn’t figured out how to solve a problem, sorry!
I’m only trying to switch between rackspaces and variations with a MIDI controller.

I don’t understand why and how I should use widgets to change from a rackspace to another, or between variations. In the left tab, in the first istance, it’s clear that rackspaces/variations receive a program change from a controller.
I know that widgets allow me to build the variations but it’s not clear how should I use them to switch between rackspaces and variations in multiple istances. What should I do in those widgets?

I have 8 banks in my MIDI controller. One bank has 8 program changes. ( bank 1 → PC 0-7; bank 2 → PC 8-15 etc…)
I use one bank for one song. Like you see in the image, Bank = Song = Rackspace.

OK, maybe that helps:

For each variation you can define a PC number.
When you send this PC number to Gig Performer the correct variation should be selected.
In the preferences for global midi you can define from which Midi Input PC messages should be received.
Normally all Midi Inputs are allowed, but you can define which Midi Input showld be allowed.


I understand that, but no MIDI is received in the other istances. Everything works well in the first istance.
What I do in the rackspaces/variations in the first istance, I replicated it in the second and third one.
If I have a rackspace called “Jumpstart” with 3 variations and program changes 0, 1 and 2, I did the same in the second one. Same global MIDI settings, no MIDI received.

You shouldn’t. That’s the kind of stuff you do like @pianopaul explained. I was talking about changing plugin parameters in multiple instances from your foot controller and was not aware that what you actually just wanted to change rackspaces/variations :smile:


The underlying problem is:

Clear now?

The workaround for this problem is using loopBe1 :slight_smile:

I know.

The issue is clear. The only clear part of the solution, instead, is that i have to do this in the first istance:

Ok, next?

Open the MIDI monitor in a 2nd instance and check if any commands from your foot controller are coming through.

They are not

OK, with a little scripting and setup of correct ports this should work without the need of virtual Midi

var mosc : OSCMessage
On Variation (new: integer, old:integer)
OSC_SetAddress(mosc, “/GigPerformer/SwitchToRack”)
OSC_AppendStringArg(mosc, “Rackspace_1”)
OSC_Send(mosc)
OSC_ClearArgs(mosc)
end

The MIDI monitor in the first istance shows that it works. I can change rackspaces/variations.
Global MIDI settings are the same in every istance, with “Accept MIDI from any device”. Loopbe1 in the tray is unmuted.

Okay. So let’s debug this :muscle:
Are any other MIDI messages that you send to that MIDI Out block received by other instances at all?
To test that, create a knob widget in your rackspace and link it to some CC (for example CC1) of your MIDI Out block. When you turn the knob, MIDI messages should be sent out of that block. Are you seeing them in the other instances?

I know how to make widgets work in the first istance. I can use MIDI learn and everything the software shows, but It’s not clear when you say “create a knob widget and link it to some CC of your MIDI out block”… ???
If I create a widget, I can activate it with a MIDI PROGRAM change that the software receives. I don’t use Virtual instruments but FX plugins because I’m a guitarist. I can’t link those plugins to any midi in or midi out with cables in GP.

I suppose you know how to create a knob widget (Go into Edit mode and drag a knob from the sidebar to the main panel - it’s all written down in great detail in the manual). After that, you just link (or let’s say map) it to a parameter of a block in connection view by clicking on the widget in edit mode with the controls on the right of the lower bar, like so:

Yes, I already do that successfully:

PS: now I’ll try to make the MIDI out part.

If I use “MIDI out (Loopbe Internal MIDI)” as plugin in “mapping”, the corresponding message in my MIDI controller isn’t activated. I don’t understand why I chould change the Loopbe1 parameter with a widget, anyway… I thought that that the stuff in “mapping” is the plugin parameter i want to change with the controller and the widget. Why should I choose a midi out there?

To test the following:

The whole purpose of this widget is to send messages out of that MIDI out block to test if loopback is working at all.

But suppose, that test is successful, I guess your problem is as follows:

GP does not pass Program Change messages by default. You can change that in the preferences by checking the Pass unused PC messages checkbox under Global MIDI. But that won’t suffice either: If the PC messages are in use by GP (so: if there are rackspaces/variations/songs/parts which are activated by that special PC messages), the PC messages won’t be passed even if the checkbox is activated. (This is actually very sensible behavior for the projected use case of MIDI Out block, which is controlling external synths)

The solution to that is to use the first instance in a different way: Let it have only a single rackspace without any PC messages assigned to it, set the up the redirection of MIDI commands in that single rackspace and make sure that the Pass unused PC messages checkbox is activated. Then the redirection should work for PC messages (finally :smile:) and you can receive them in an unlimited number of additional instances.

I did that test and it works.


I choose “CC 127” which is my expression pedal. Now I can see that CC in the MIDI monitor of the second istance:

So, the loopback is working.

Ok, what’s the meaning of “Set the up the redirection of MIDI commands in that single rackspace”?

If loopbacks works, I just have to know how to set Gig Performer to read the message in multiple istances. The fact that we tested that loopback works, doesn’t allow me to use my MIDI controller because there’s something wrong with Gig performer.
I imagine that if the owner/creator of the software allowed us to use multiple istances, we could also sync them!

Have a single rackspace that just contains this:

Cattura6


Still not working