Okay, it’s been a couple years, and this latency issue has been plaguing me the whole time. I’ve got to get this figured out or else I think I’ll have to go back to just using one instance.
Here’s my issue. I have all of my commonly-used instruments, as well as some metering and effects, in the global rackspace. Furthermore, I’ve moved the actual instrument plugins themselves into separate instances. The global rackspace in the main instance sends MIDI to the secondary instances, and the instances send audio back to the main instance for processing, mixing, and metering.
I’m finding the roundtrip latency to be a problem. I pretend it’s not a problem, but then whenever anyone else comes to play my piano they look at me and say “I don’t know how you manage with this crazy latency!”
I’m aware that @edm11 and @pianopaul are claiming that there should be “barely any latency” or at most “the sample buffer size you are using”, and I would love to see a demonstration that this is the case for you! Can either of you create a pair of small gig files that shows this?
I’ve created a very simple two-instance test demo to show the problem I’m having. If you load “test_main.gig” in one instance and “test_secondary.gig” in a second instance, you’ll see that I have two identical instances of KeysOfThe70s, one in each GP instance, and I’ve wired everything up so that the main instance sends its output to the left channel and also sends MIDI to the secondary instance, and the secondary instance sends its output back to the main instance, which then routes it to the right channel. If you turn on the recorder, play some MIDI inputs in the main instance, you should get a stereo recording where the main-instance audio is on the left channel and the secondary-instance audio is on the right channel.
Load this audio into a DAW, zoom in close, and you can measure the latency. On my system, with a 64-sample buffer, i’m seeing about 770 samples of latency. This is on a ThinkPad P16s Gen 4 AMD running Windows 11, and GP Pro 5.1.6.
So, based on this, and in spite of the fact that I’ve been using it this way for two years now, I think I’m concluding that the Relayer is unusable for my use case. Presumably it would work better if I had both instances send their audio straight out to the audio interface instead of having one instance forward its audio to the other instance, but the reason I haven’t tried this is that all of my metering, mixing, and global effects are in the main instance. Therefore, I’m thinking I have to move everything back into one instance and just hope that this doesn’t cause any CPU problems.
I’d love to hear any other suggestions, and again, I’d love to see a demo to back up the “barely any latency” claims! I know that multi-instance functionality is a great strength of Gig Performer and I wish I could take advantage of it.
Solomon
test_secondary.gig (17.2 KB)
test_main.gig (17.3 KB)