More Multithreading Discussion

I never faced hanging notes by switching variations.
Are you using filter plugin to filter out note on messages or sustain?

Or are you talking about switching rackspaces?

Something else is not configured properly — switching variations would not cause a problem like this unless you explicitly did something to make this happen. Are you by any chance bypassing MidiIn blocks when you are switching variations? As @pianopaul noted, you would have to go out of your way to prevent NoteOff messages from reaching plugins.

First of all, thank you to both of you, @pianopaul and @dhj, for the help you give me on the problems that i am facing in GP.
by the way, are you developers in GP or only “advanced” users?

For the problem of ghost midi notes, I need to build a simple test case to highlight it.
My actual flow:

I load everything in one rack and I play with some CC messages to switch the different sounds using the variation capability of GP.
It’s possible that these ghost midi notes are generated by Sampletank, not by GP, I have to investigate this point. In Mainstage, there is no variation, so it’s difficult to compare.
I’ll go back to this forum once I investigate the problem.

That is probably a bad idea and could very well be responsible for your problems. Certain plugins do not respond very well to being told to change their sound on the fly and may just leave notes hanging.

Variations are intended for tweaking your sounds, e.g., changing a few parameters of some plugins so as to increase reverb, change flanging or phaser depth or rate, etc. If you try to change the sound directly, you are at the mercy of the plugin. Most will work fine but we know some that don’t (not mentioning any names here :slight_smile: )

Further, using variations rather than rackspaces to change your sounds will not be instant. You might want to review this blog article about this topic.

Now, the good news is, if you feel you must use that approach, you could leverage our scripting language to send an “All Notes Off” message before switching the sound.

And the existence of variations is just one of many reasons why people switch to Gig Performer.

Thank you so much @dhj for your advices!.
I have deeply reviewed the GP documentations and videos.
I made a lot of trials and finally, I have fully rebuild my setlist using GigPerformer, one sound per rack, and I now have a perfectly reliable behavior of my gig, even when I switch from one sound to another. No more ghost notes, no audio artefacts.
Here an example of what I did:
I use a Helix from Line6 directly connected to a macbook-pro using an USB connection.
example of a Line6 patch that send the guitar audio into the mac:


The channel 7 of the audio driver from the Helix is a direct output of the guitar.
The audio signal drives the input of the MIDI guitar plugin.
GigPerformer sends the output of the Korg M1 synth into the Helix audio ports 7&8.

I don’t use the “predictive loading” option as my mac has 32Goct of RAM, that is enough to manage the 20 racks that I have programmed.
I try to use as much as possible the Helix capability and dedicated the GP to no-guitarist stuff.
I set the audio buffer to 160 samples@48Khz. The example, joined, has a round-trip latency measured to
13ms, that is perfectly playable.

2 Likes

Just following up… I never did a custom build. The native multiclient aspect of MacOS was a major disrupter. I’ve recently purchased a 2018 i7 (8700U?) 6-core Mac Mini with 64GB of RAM to serve as my master audio processor/Virtual Instrument Host.
I also took @Vindes’ advice and have two additional much older/lower specified Mac Minis racked up for handling Looping and Recording (And potentially show control… not 100% sure yet.) I migrated all to Dante to avoid the weight of multiple interfaces, but I did not avoid the cost factor. (I’ve just received a Focusrite PCIeR card for low-latency Dante I/O and I am awaiting a Thunderbolt 3 PCIe enclosure in which to run it.) The other Mac Minis will use Dante Virtual Soundcard for non-realtime elements like clicks, IEM crowd feed with auto-ducking, tracks, and loops. All MIDI is via BomeNetwork Pro / BomeBox and the Core Audio IAC bus. I should not require audio loopback service, as the multiclient aspect of Core Audio allows me to bring an audio input into several instances in parallel… which should allow for Vocoding (for example) without loopback delay…
My concept has stayed pretty close to the plan I mentioned in this thread a year ago:
8 x Synth Tracks (Three stereo tracks for three players, plus separate stereo track for bass synths)
8 x Drum Tracks (MODO drum outputting Kick, Snare, Hat, Ride, Stereo Close Mic Bus (all other elements), Stereo Overhead Bus. Will avoid the MODO Drum Rooms and use the reverb from the mixer to save channels. eDrum MIDI is wired in parallel to a sampler for song-by-song replacement of MODO drum element sounds with ad-hoc samples.
8 x Vocal Channels (Three member voices plus guest, each to a dedicated stereo track)
8 x Instrument channels (Misc stereo for guests and occasional use of acoustic guitar, etc.; Stereo Guitar for my bandmate, Stereo Guitar / Chapman stick treble for me; and two mono tracks for my bandmate’s bass guitar and my own bass guitar. I plan to send stereo bass effects and high-passed feed through stereo cabinet IR to the associated stereo guitar channels, as neither of us can play bass and guitar simultaneously… which allows for stereo bass despite the mono channels.)
Stereo Cues/Click/Phone Bluetooth channel - probably from one of the other Mac Minis
Stereo Tracks/Loops channel - Again, from a supporting PC
Stereo Crowd Channel - IEM feed for crowd interaction and recording of applause for later mixdown. The IEM feed will split off and use a reverse gate so we don’t get weird audio in our IEMs while playing.

That uses up all 38 channels of my x32, including the three external Aux inputs.

I’ll report in a few months on how the i7-8700 in the audio mac handles all this realtime processing. I will probably leave multithreading enabled (not sure I could even shut it off in MacOS) as I will have the following instances on this PC:
-Synth Bank (MIDI in, 8 channel out)
-Drums (MIDI in, 8 channel out)
-Vox (Dante PCIeR in and out, 8 channels)
-My Guitars (Dante PCIeR in and out, 3 channels)
-Lorne’s guitars - (Dante PCIeR in and out, 3 channels)

I’ll also be running these features… whether in a dedicated instance on the audio Mac, or within the master instance, or on a separate PC:
-Guest/Misc Guitars - 2 channels (Possibly in Master Instance)
-Crowd Feed (Ducking)
-Show Control (Lights/Video/MIDI Foot pedal communication, Master Song Select, etc)
-Live Looper
-48 track (+MIDI) recorder (Probably controlled by GP, but running on Logic or Reaper)

We shall see…

1 Like