What's new

Logic and VEP7 - another case of hanging notes

osterdamus

Monsieur Member
Hi all,

Been searching the webz for a solution and most problems I've seem involve some third party that is fudging with the midi. In my case, however, it been a quite massively recurring issue with the VSL Elite Strings instance I crated today, on a vanilla setup.

Up until today I have worked only with Kontakt-based instances and haven't experienced the problem with these instances.

Any tips and pointers are welcome. I'm also open to adding some OS level scripts / macros, if such life hacks exist.

Synchron Player: v1.3.810
Logic: 10.6.1 (please don't ask me to upgrade, I can't at the moment)
 
Hanging notes have been an on-and-off (currently off!) problem with Logic and one library or another through the versions. I suspect it's a concurrency issue with no single 'bug' that gets fixed, but that something is made more robust in Logic over time. Certainly BBCSO used to do it all the time then suddenly stopped, despite no change to the plugin.

Anyway - the best coping strategy I found was to reset hanging notes by double-clicking in the MIDI activity monitor. There's no keystroke assigned by default, but you can add one: more info for your version is here.
 
You mentioned vep7 in the title, is that part of the equation? Are you using multi midi ports in some fashion?

I doubt Synchron is dropping the NoteOff's.

VePro might be related if you're attempting to do some Multi midi port stuff

Another thing is LogicPro is known to get that happening if and when you have some particularly dense passages of midi notes across many channels at once...and in particular when using VePro because of the way you could be funneling many midi tracks through a single instrument channel. If there are too many notes within one process block (that is the amount of time of the audio buffer bascically), then it can cause LogicPro to sometimes get a midi equivalent of an audio dropout...so events can get dropped, including NoteOff's...and that is when you get hanging note.

If and when you avoid VePro or if you go for less instruments per vepro instance, then the midi traffic is spread out to more instrument channels and not as dense in there, less likely to happen.

I think setting the following preference to large might help in any case its easy to try:

IMG_0157.jpeg
 
Last edited:
Hanging notes have been an on-and-off (currently off!) problem with Logic and one library or another through the versions. I suspect it's a concurrency issue with no single 'bug' that gets fixed, but that something is made more robust in Logic over time. Certainly BBCSO used to do it all the time then suddenly stopped, despite no change to the plugin.

Anyway - the best coping strategy I found was to reset hanging notes by double-clicking in the MIDI activity monitor. There's no keystroke assigned by default, but you can add one: more info for your version is here.
Thanks for the input. I also found this page and yeah, there is the Panic button solution with a key command. That would unfortunately mean I’d be doing this key command every second or third time I restart play.
 
You mentioned vep7 in the title, is that part of the equation? Are you using multi midi ports in some fashion?

VEP7 yes, I should have mentioned and it’s networked. Client is Max/Logic, server is VEP7/Windows.

Not using multiple ports atm, only Channels.

I’ll add that overall the setup has been a great experience (although I can’t get midi focus to work, which is weird), and this is the first time I experience hanging notes in this in this setup.

I’ve experienced hanging notes before locally in Logic, but even that was a while ago.

I doubt Synchron is dropping the NoteOff's.
Me too.

VePro might be related if you're attempting to do some Multi midi port stuff

Another thing is LogicPro is known to get that happening if and when you have some particularly dense passages of midi notes across many channels at once...and in particular when using VePro because of the way you could be funneling many midi tracks through a single instrument channel. If there are too many notes within one process block (that is the amount of time of the audio buffer bascically), then it can cause LogicPro to sometimes get a midi equivalent of an audio dropout...so events can get dropped, including NoteOff's...and that is when you get hanging note.

If and when you avoid VePro or if you go for less instruments per vepro instance, then the midi traffic is spread out to more instrument channels and not as dense in there, less likely to happen.

I think setting the following preference to large might help in any case its easy to try:

IMG_0157.jpeg
So the last part here is interesting. In this case I’m actually just having a single instance with a single channel. The instrument is the ensemble patch, because I was sketching. So very simple on the VEP side.

However… sketching means all notes in one block, on average 3-4 notes for sound. in addition, in this sketch there are also notes for articulation changes and other changes (slow / fast attacks, for example). So it adds up and could match the scenario you describe about dropped notes on the Logic side.

I will try the preferences change first, and after that I’ll try to simplify the sketch, just to see if the issue disappears.

Thanks!
 
if it would have to be dozens of notes all at the same time in my view. As I said...if you ahve say 16 midi tracks...all feeding one vePro instance, they all funnel down through one instrument channel. So 16 tracks times extra keyswitches and expression for each track, times let's say 4 note chords each...if you are using that many notes all at once...then it could theoretically cause bottleneck...try the large process buffer I mentioned, might help. But this is really just a shot in the dark.

The fact you are you using Max is worth considering as a reason too.
 
if you're only using one midi track going to one vePro instance per midi track...than that is not the reason honestly, I don't think it would be that, but try setting that. process block to large anyway
 
try the large process buffer I mentioned, might help. But this is really just a shot in the dark.
Sadly that didn't fix it :(

What's worse is that the is that the Send discrete Note Offs method doesn't work either. I can see the instance receives midi input when doing do, but nothing changes. I have to turn the Audio engine off and on by pressing the button in VEP7. Very annoying.

I'll check if the problem persists once I convert the sketch to a multiple sections (a different, Elite Strings multi-channel instrument in VEP7)...
 
well all notes off doesn’t actually send a bunch of note off messages, it sends a special all notes off message that the receiver must be programmed to know what that means and stop making sound.

The next step would be to put a midi logger in veo to see if it receives the note off or figure out what happens, but unless you have a particular little section of music where it always happens that could be a wild goose chase.

If you are comfortable sending me your project I can try to replicate it here. But otherwise I’m out of ideas base in what you’ve told us
 
What's worse is that the is that the Send discrete Note Offs method doesn't work either. I can see the instance receives midi input when doing do, but nothing changes.
As DM says, I imagine there'll be a MIDI logger in your future... but just to try a couple of easy things: does it work if the transport is running? How about disabling MIDI chase for notes (or is that already disabled)?

DM's the VEP expert, but given you were coming from Kontakt-based instances: did you see these notes here? If you don't need multi-port, I guess you're just using the AU v2 plugins, not AU3?

well all notes off doesn’t actually send a bunch of note off messages, it sends a special all notes off message that the receiver must be programmed to know what that means and stop making sound.
That's true for the "all notes off" MIDI message, but Logic's "send discrete note offs" function really does send an individual note off for each note in turn (you can see it happening in the LCD MIDI display if enabled)... very handy.
 
That's true for the "all notes off" MIDI message, but Logic's "send discrete note offs" function really does send an individual note off for each note in turn (you can see it happening in the LCD MIDI display if enabled)... very handy.

I don't know that feature, how do you execute it?
 
That's nice, I knew about that feature, but I didn't realize it was sending both CC123 as well as all the discrete midi notes.

That being said, it's important to note that it's only sending those to AU3 port#1. If you are attempting to use AU3 for multi-port, then it may not cover the other ports. He said he wasn't using any multi-port so this may be moot point.

The only other thing is to inspect the project just to make sure there is no enviornment trickery going on...and then basically monitor the midi in the channel strip right in front of VePro plugin...and then monitor it in the receiving end in VePro and try to look for a difference. if this shows up a difference, then the problem is probably in vePro somewhere.

I have heard rumors about the hanging notes...and also i am wondering if this is an issue with M1 and rosetta in some way...
 
Well Another thing I could do is whip up a scripter script which can keep track of NoteOn and NoteOff and only dump a log of what it thinks are hanging notes. This might help to pinpoint of LogicPro is causing it to happen, but if its happening deep inside the instrument layer and somehow related to rosetta or something...then....even that won't detect it.
 
That being said, it's important to note that it's only sending those to AU3 port#1. If you are attempting to use AU3 for multi-port, then it may not cover the other ports.
The manual says it goes to all channels of all MIDI ports...? Am I missing something?

I have heard rumors about the hanging notes...and also i am wondering if this is an issue with M1 and rosetta in some way...
I'm pretty sure the 2019 MBPs were still Intel(?) but it does seem to be an active issue... unfortunately a rather noisy one, with lots of voodoo being put about :) I got the impression it was more a problem for AU3, though, so - since the OP doesn't require multi-port - that's why I was wondering about trying AU2 instead.
 
try logging it with an AU3 plugin in there.. I only see it going to AU3 port 1. The manual is probably referring to external midi ports...and is not accounting for AU3 type of port. Just a guess. the name "port" is used in slightly different meanings
 
and if you think about it, sending discrete all notes off to 48 possible ports would be 48x16x127 total NoteOff messages. That's nearly 100,000 midi messages. Probably not what you would want. ideally LogicPro should keep track of all possible notes that might be left hanging and send only for those, to all AU3 ports too, but I don't believe its doing that today.
 
I take back what I said..just did a better test. I created two tracks going to one VePro instance on two ports (using AU3). Also I put a long sustaining midi note on each track. Hit play. while its sustaining, I hit the ALL NOTES OFF button from control bar..... In this case Logic sends discrete note offs for 16 channels x 127 notes x 2 ports I used, which is 4064 total noteOff's. still kind of a lot.and would be more with more ports used...but yea...it does attempt to send NoteOffs!! So that is good to know..

But also doesn't explain the OP's problem....which I think is most likely either a bug in vePro or a bug in the instrument layer of LogicPro... More likely VePro in my opinion, but its almost impossible to know for sure.
 
Yeah - AUv3 extensions have to declare their "cables" up-front, but Logic still has to connect those to/from a port before they receive MIDI. So, Logic only needs to consider the ports it has configured, even if there are many, many more AUv3 cables in the session. Morally an AUv3 cable and a Logic virtual port are the same thing - i.e. just an opaque identifier for a distinct group of 16 MIDI channels. From there, it's just a question of mapping between the two (i.e. connecting them), and naming them.

Anyway: if the AUv2/3 stuff and VEP Logic notes don't help, then a log of MIDI data on the VEP network client either side would tell you which half of the chain is going wrong, at least?

This is a total guess as an example, but I might look for data race effects, like note-offs being overtaken by transport state changes and therefore dropped. The OP could smoke-test that by (a) noticing whether or not you get hanging notes if you allow all regions/notes to play through before stopping; and/or (b) if a hanging note stops sounding when played manually.
 
Top Bottom