Instruments connect to wrong endpoint

I’m sure the answer to this is obvious, but I’m too dim to see it, so perhaps some kind soul would be good enough to explain.

I have a VE Pro server project in which each instance is devoted to one instrument: thus Flute 1, Flute 2, Oboe 1, Oboe 2 etc.

I have a Dorico project in which I connected each instrument to the appropriate VEP instance. I then saved each of the individual endpoint configurations as Flute 1, Flute 2 etc. I made sure that the playback template included all of these endpoint configurations.

When I apply the playback template I find that Flute 1, Oboe 1 and so on are correctly connected, but Flute 2, Oboe 2 and so on are not. This is because they are trying to connect to Flute 1, Oboe 1 and so on in VEP, which they can’t because those instances are already busy.

Why is this, please, and what can I do about it?

Why would you put each instrument in a separate instance? Such unnecessary compaction!

2 Likes

I have my large orchestral template setup in one VEP instance:
Instance
→ VEP Strip 1/Port 1 (MIDI Input all): Opus VSTi → Pfl (ch.1 ), Fl. 1 (ch. 2) … Bass Fl. (ch … )
→ VEP Strip 2/Port 2 (MIDI Input all): Opus VSTi → Ob. 1 (ch. 1) …
etc.
So I have all flutes in on VSTi, Oboes in another …

In Dorico, I loaded one VST and connected to that instance and assigned the corresponding instruments in the project to the correct port and channel.

Using a single instance is a lot better if you want to use things like Aux tracks for reverb inside VE Pro itself, and use Group Tracks for your overall mix to balance. Those features become basically useless if you split things into different instances.

The only reason to use two instances is if you want to distribute the load across two computers (i.e. have a second computer hosting some instruments).

1 Like

This is, AFAIK, a Dorico limitation affecting identical instruments. I do remember someone here on the forum have mentioned it’s possible to cirumvent, but I have not succeeded doing so myself…

1 Like

The even-numbered instruments are now reconnecting to the correct VEP instances when I save and reload the project. But if I reapply the playback template, those instruments are still trying to connect to the odd-numbered VEP instances, which are already occupied by the odd-numbered instruments.

I don’t know whether it’s related to this issue, but Dorico is now crashing every time I close it. The latest diagnostic reports are attached.

Incidentally my main reason for preferring to use separate VEP instances is that I want to use the same server project in Logic Pro. The reasons why this is relevant to my preference are not relevant to this forum.

Dorico Diagnostics 1.zip (1.3 MB)
Dorico Diagnostics 2.zip (1.4 MB)
Dorico Diagnostics 3.zip (1.4 MB)

The crash on exit you’re experiencing is caused by a problem in the shared video engine component that provides support for playing video in Dorico. Some users (myself included) get this crash on exit, while many do not. This specific problem will be fixed in our next update, when it arrives.

I’m sorry for the inconvenience caused by the crash, but the good news is that it’s irrelevant to whatever you’re doing with VEP.

Daniel, thank you for that. I realise of course that problems with VEP are not your department. But
my understanding is that, when you have opened a saved project, reapplying the current playback template (without doing anything else) ought not to make any difference to the endpoint configuration. Is that wrong?

It certainly can cause changes, yes. Dorico’s own rules for mapping your endpoint configurations onto the instruments in your project may not result in precisely the same allocation of endpoints as your original, manual allocation.

I see. Are these rules explained in the manual, or elsewhere? If Dorico has rules which in some circumstances will override my own choices, it would be helpful to know what they are. For example (to take up @fratveno 's helpful comment), do they involve assigning Flute 2 to the first endpoint whose name includes the word “Flute”, even if there is one called “Flute 2” and the playback template includes a configuration for “Flute 2” in which Flute 2 is assigned to it?

It seems that VEP is a red herring, and I have edited the thread title accordingly. My experiments suggest that (with VEP out of the picture) you get the correct assignments if you apply a playback template consisting of a single endpoint configuration for all the loaded plug-ins, but not if the template is assembled from individual endpoint configurations. So using a global configuration may be the best workaround. But that would make playback templates less flexible and less useful.

It’s been a minute since I’ve messed with these, but I’m pretty sure the endpoints are only using the entityID for the instruments when making assignments. If you open up the instruments.xml file you’ll see Flute is defined like this:

The name “Flute” or “Flute 2” has nothing to do with the assignment. Dorico will take the first instrument with the entityID “instrument.wind.flute” and assign it to the first Flute instance that appears in your Playback Template. You’ll need to create an instrument with a different entityID if you want it to automatically connect to your Flute 2 instance in VEP.

2 Likes

When using specifically MIDI-Out functionality of Dorico (not a VEPro connection, i.e. no 3rd party), I do not see this at all.

In my case I have a separate endpoint just for the Flutes (made in a separate small project file for that endpoint) and then added to the playback template. These flutes are all default un-modified instruments and they always recall and reconnect absolutely perfectly when starting a new project or re-applying the template - including leaving the empty spaces for the ones not currently used in a given project:

image

I remember this issue was discussed a long time ago and Daniel told me here in the forum that he made some modifications to ensure that Dorico would remember the port assignments that were saved as an endpoint. I’ve never had this issue again since then (the IRV/divisi playback is a separate topic, of course).

The only thing I did differently from the OP is that I made endpoints/template in a separate file, rather than in a current working project file, and so I never had the issue of applying, reapplying, restarting in this type of scenario.

1 Like

You can’t connect to Flute II and Flute III without an instrument first connecting to Flute I in that setup, can you? Or are you just using MIDI instruments and not VSTs? It’s possible things have changed as it has been a while since I last revisited this, but in one of my own Playback Templates, I have 4 Trumpets assigned to 4 different sounds in a single VEP instance. There is no difference in the entityID so they will always be assigned sequentially. The first instrument.brass.trumpet.bflat that Dorico encounters will always be assigned to the first Trumpet sound in VEP, regardless what Trumpet # that actually is in my score.

That’s correct - the first flute I invoke in Setup will connect to the first flute in the playback template.

Perhaps I’m misunderstanding what you’re saying, but it sounds like you want to have an option of switching the specific VI instrument assigned to Trumpet I - from within Dorico.

What I do in my case is shift the switching to the instrument server. For example, I have several premixed and EQ’d “options” saved for Flute I in Cubase (my version of VEPro) in the same port and channel assignment and I simply freeze - unfreeze them when I need to switch the instruments over.

Not me, I was just using it as an example, but I think that’s similar to what @Wensleydale is trying to achieve. He wants the second Flute player (or a Reed 2 player if doubling) to always connect to his Flute 2 VEP instance. As Dorico will always try to connect the first instrument.wind.flute it encounters to the first flute assignment in the Playback Template, I don’t think what he wants is possible automatically without creating another Flute instrument with a different entityID. He could put all the Flutes in the same VEP instance, and then it would be easy to simply change the channel in Dorico, but apparently that doesn’t work well with his Logic setup.

1 Like

Right - I’m embarrassed to say I’m really dense this morning and not getting it.

How can there be a Flute II in a score without a Flute I? In my case, each Flute always connects to its assigned instrument in the “instrument server” (Cubase ala VEPro). So - Flute II in Dorico always connects to Flute II in Cubase because the port assignment is fixed. I’ve never had a problem with this. What am I missing (and sorry again for being so dim!)…

I don’t want to speak for him as I don’t have an issue with this with my setup either, but I think the issue is that when applying a Playback Template to a new project, Dorico “sees” any instrument.wind.flute and tries to connect it to first VEP instance with a configuration for that entityID. As he only has one assignment per VEP instance with his setup, and not for example 4 like my trumpet section I posted above, Dorico tries to connect any additional Flutes like Flute 2, Flute 3, etc to the same instance as Flute 1 and fails because that VEP instance is already assigned.

I think for this to work, the Flute 2 VST needs to be added to the same VEP instance as Flute 1, which he doesn’t want to do because it conflicts with his Logic setup. Or Flute 2 needs to have a unique entityID. (I would think that might possibly screw up Condensing, but I haven’t actually checked that.)

2 Likes

OK, I got it now (whew!). I’d be curious to know how @Wensleydale set up the Dorico endpoints for this kind of setup.

My instinct would be to make a separate single endpoint for all of the flutes and within it to assign the individual flutes to their respective single VEPro instances and unique MIDI channels, rather than making an individual endpoint for each one that mirror the VEPro arrangement.

1 Like

Yeah, that’s how I have mine set up too and it works fine.

1 Like

Thanks to both of you for helping me sort this out. I had already discovered that it works the way I want (i.e. as @FredGUnn describes) if I save all my endpoints as a single configuration, and put that in my playback template. I might have eventually realised that it also works if you have multiple configurations, as long as your multiple instances of the same instrument are all in the same one; but it’s good that I don’t have to wait for that penny to drop.

I don’t really understand why this works when individual endpoint configurations don’t: I wouldn’t have thought that the global configuration could do anything that its constituent parts can’t. Is it because, if you have (say) two flutes and you use one endpoint configuration which includes both of them, you are forcing Dorico to create a separate ID for the second one?