What's new

Logic and VEP7 - another case of hanging notes

There is a black box we can't tell what is happening:

midi track -->instrument channel -->midifx (ie, logger) -->Instrument plugin slot-->VePro.AU -->network -->VePro -->vepro channel -->vepro instrument plugin slot-->vepro instrument plugin

We can put a logger before Instrument plugin slot and in VePro's instrument slot, but there are a number of things happening in between which we cannot monitor individually to find out where NoteOff's are being lost.

In particularly, in LogicPro instrument plugin slot, that is where LogicPro actually hosts the plugin directly and in the case of Apple Silicon and Rosetta some interesting things are happening under the covers...and we have no access to debug any of it.

Once the midi gets into the Vepro.AU plugin, then we can assume the noteOff is lost after that, but we don't really know for sure if LogicPro isn't dropping it while hosting the plugin in some way. we can log what goes before that to make sure we aren't dropping it through some environment trickery or something like that, but the guts of LogicPro are a block box.
 
Last edited:
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.

its possible. That's for VSL to figure out IMHO. LogicPro normally sends an all note off message when you hit stop though.
 
You don't need any Logic tricks for what I was suggesting though: since we know what the VEP server *should* be receiving, we only need to log/monitor what the VEP server *is* receiving. If it's receiving what it should, the problem is on the server; otherwise, it's on the client machine; or possibly on the network... I assume people don't use wi-fi for this, though.

[It's true that Logic doesn't expose the subcomponents of channel strip objects as environment objects in their own right... not sure if that's what you mean? There's nothing special about Apple silicon or Rosetta there, AFAIK (and the OP's on Intel anyway.) Definitely beyond the scope of this issue, but if you get really interested more generally, you can always disable SIP and hook up a debugger to the AU hosting process to trap the exchange of MIDI messages.]
 
Seems we're kind of talking in circles now. Bottom line:

  1. You can place a logger plugin in the last midifx slot to make sure the note off is not being dropped by the project itself, via midifx or environment trickery that may or may not exist. this is generally to make sure the user isn't doing anything wrong in their project

  2. after that we Can't monito0r what LogicPro does inside the instrument hosting, which is possibly more complex when rosetta is involved. or any other reason. Main point is that Logic Pro is responsible for whatever happens while hosting the instrument plugin...and yes there could be something wrong in there, we have no way to check for it.

  3. once it gets into the VePro.AU plugin, everything after that is on VSL.
I am not interested in debugging logicPro or VePro, I don't even use LogicPro much anymore and I am not getting hanging notes at all when I do use it, on Intel... so this is a job for the OP, you or perhaps VSL IMHO.

regards
 
Just read through the convo here, thanks for putting so much energy and interest into it! :) It would definitely make sense to log more, I'll look into that. It makes sense to have a closer look at what goes out of Logic and comes into the VEP.

I normally use Midi monitor, for stand alone debugging of controllers and more, but...
You can place a logger plugin in the last midifx slot to make sure the note off is not being dropped by the project itself
Would you have a suggestion for this logger to use here? I assume it would be a 3rd party logger, as I don't believe I've seen a built in one in Logic (midfx, I mean)?

Similarly, I don't have a lot of Windows experience specifically in the context of midi and audio, do you have a suggestion for a good logger to use on Windows?

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.
I believe it's also mapped to "all modifiers"-P key command.

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)?
Midi chase is on atm, is it a best practice to turn it off when working with VEP?

DM's the VEP expert, but given you were coming from Kontakt-based instances: did you see these notes here?
I did not, I'll look into them. The instances and setup I've made so far basically follows what is described in the Routing in Logic Pro X section.

If you don't need multi-port, I guess you're just using the AU v2 plugins, not AU3?
Hehe, I'm learning and discovering my needs as a I go, being a newcomer to VEP. As mentioned above, I'm currently exploring the multi channel route. I'd be happy to receive a link or what not that explains the benefits and design it supports, of you have any (VSL's manuals are a little lackluster, imho).

Currently using AU3 Multi Output 25xStereo, a choice informed by watching multiple YT videos ;)
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.
Noted, I'll debug even more later today, to try isolate the problem and details about why it occurs. Also, I started the process of making a proper Elite Strings instance (the current one is just for sketching). If it doesn't occur there, one might potentially make a light conclusion that it's local to the sketch / project / instance etc.

UPDATE: The issue occurs no matter if midi chase is on or off.
 
I normally use Midi monitor, for stand alone debugging of controllers and more, but...

Would you have a suggestion for this logger to use here? I assume it would be a 3rd party logger, as I don't believe I've seen a built in one in Logic (midfx, I mean)?

In Logic I usually use this Scripter script I made a long time ago, ask me for it if you want it.

But unfortunately that won't give you a midi logger for inside VePro. For over there I usually use bluecataudio PlugNscript for a similar feature, but there are some other tools which have midi logging built in, like plogue Bidule, Kushview element, perhaps some others...I can 't remember now, I usually use those custom scripts to do it because it gives better info then typical midi monitors I have seen in plugin form.


Similarly, I don't have a lot of Windows experience specifically in the context of midi and audio, do you have a suggestion for a good logger to use on Windows?

PlugNscript would work in windows too, but I have no experience there either sorry.

Midi chase is on atm, is it a best practice to turn it off when working with VEP?

I don't think that's related.

Currently using AU3 Multi Output 25xStereo, a choice informed by watching multiple YT videos ;)

I recommend you revert back to AU2 and avoid multiport for now until you figure out what's going on. Eliminate that as being a possible reason for it. If it still happens with AU2, then you can come back to AU3 again.
 
Last edited:
I am not interested in debugging logicPro or VePro, I don't even use LogicPro much anymore and I am not getting hanging notes at all when I do use it, on Intel... so this is a job for the OP, you or perhaps VSL IMHO.
Well, OK then. I was providing information about the inner workings because you were talking about them and I assumed you'd be interested. Nobody's obliged to do anything with it :)

Midi chase is on atm, is it a best practice to turn it off when working with VEP?
That was only a suggestion for diagnostic purposes: I note it had no effect, which is good to know, but I would call it "a solution" even if it had.

Currently using AU3 Multi Output 25xStereo, a choice informed by watching multiple YT videos ;)
I recommend you revert back to AU2 and avoid multiport for now until you figure out what's going on. Eliminate that as being a possible reason for it. If it still happens with AU2, then you can come back to AU3 again.
I'm with DM42 on this: the AU3 version looks cleaner if you need that multi-port functionality, but compatibility clearly hasn't entirely settled yet; it also looks like AU3 is more susceptible to "hanging notes syndrome" than AU2.
 
; it also looks like AU3 is more susceptible to "hanging notes syndrome" than AU2.
I don’t believe we can draw that conclusion yet. It’s just a process of elimination. AU3 has been working perfectly fine for me here with zero hanging notes. so...
 
Last edited:
I don’t believe we can draw that conclusion yet. It’s just a process of elimination.
Oh brother. 🤦‍♂️

The instances and setup I've made so far basically follows what is described in the Routing in Logic Pro X section. [...] Currently using AU3 Multi Output 25xStereo, a choice informed by watching multiple YT videos ;)
That document uses the AUv2 version, so just to check: your set-up's the same, except for choosing the plugin suffixed "AU3"?

I'd be happy to receive a link or what not that explains the benefits and design it supports, of you have any (VSL's manuals are a little lackluster, imho).
I had a look this afternoon, but didn't find an overview of the options that was concise, comprehensive and accurate all at the same time (and yes, surprising that AUv3 seems to get much more coverage on YT, despite being beta software!)

AFAICS you can avoid all the complexity if you're happy to stick to 16 MIDI channels per VEP server instance; i.e. you're okay with creating a new instance when adding more instruments. In that case, everything can remain as simple as in the "Routing in Logic" doc you linked - or, equivalently, this section of VSL's video - and there's no need for major surgery on your Logic session when switching between AUv2 and v3.
 
Top Bottom