Endpoint Issue: Intelligent Playback Template loading

I have just started building Playback Templates and am loving it! I have noticed however something peculiar about the behaviour about how Dorico chooses to load and assign instruments.

Say I build a patch for 4 horns (with 4 horn instruments loaded and assigned the VST preset I am using). When I load the template onto a score with 4 horns great! works as expected. However, if I load the template onto a score with 6 Horns, I would expect for Dorico to load 2 instances of the VST preset, and assign the first 4 to the first instance, and the last 2 to the second (since each instance contains 4 horns).

Instead what happens is Dorico loads 3 instances: the first instance loads 4 horns (as expected), but for each additional horn a new instance of the the VST preset is loaded. With my ram heavy library this quickly becomes a very inefficient way to load new instruments. I hope that in some future version Dorico may intelligently understand that each VST instance contains ‘X’ number of instruments and can keep loading additional instruments until the slots fill up.

I suspect if you re-apply the playback template once all 6 horns are created then it will reduce back down to 2 VST plugins - could you try that?

Incidentally, most decent sample player plugins should just load one set of samples if you have multiple instruments of the same type, so there shouldn’t be much of a memory overhead.

Hi Paul, thanks for getting back to me.

I just reset the template again, switched to another template, and then back again all with the same result.

As you can see from the attachment the first 4 Horns are attached to the first instance, however each additional Horn unnecessarily opens an entirely new instance of the VST.

I am running this on Kontakt which does indeed share ram for the same samples within one instance, however not between multiple instances. Another problem is that each instrument loaded also takes up ram (even when purged) and so three unused instruments are created for every used instrument. There also lies the other issue of 64 maximum VST slots available in Dorico. All in all, opening new instances without “using up” the last one compounds to a lot of inefficiency in ram and CPU usage.

This may also need to be looked at for percussion parts, if say multiple percussion fit onto one instance of a VST, it would be rather laborious of Dorico to keep opening new instances without utilizing the second instance fully (since the only instance Dorico seems to utilize fully is the first).

I would need to see the playback template file and the project that you are trying to load it into to diagnose what’s happening. You can contact me at p dot walmsley at steinberg dot de

Ok, I’ll do that, thanks Paul.

I’ve found the cause of this. Currently if you have multiple instruments of the same type in an Endpoint Configuration then if you create more than this number of instruments then it will create more plugin instances than expected. We’ve got a fix for this and it should be in a future update.

It does this for “Drum Set Full” as well. If I set-up an Endpoint Configuration for EZ Drummer then make a Playback template with only that, click apply . . . . it brings up 6 EZ Drummer VST’s and their associated edit windows all with Port 1/MIDI CH 1. This takes a while to load. I’ve found that in the mean time I’m better off adding EZ Drummer, Importing the Percussion Map and Applying it to EZ Drummer.

Paul, do you think this is the same issue that will be fixed as it sounds like the same?

I’ve just tried an EZDrummer template and that’s working as expected for me, so I expect that there’s either something in your project or in the playback template that is causing a problem (eg if the original project was imported from MIDI or MusicXML where some custom drum instruments are created). Can you attach these or mail them to p dot walmsley at steinberg dot de?

Paul: Here it is. Wasn’t sure what to send soI included the expression map plus endpoint config from the finder, plus the project.

EZ Drum Test.zip (388 KB)
By the way, I didn’t import anything like XML. I just created the endpoint config and playback template and loaded it over one instance of EZDrum and got 6 instances. Maybe something to do with my expression map?

I can partially see what’s happening - most of the kit components are mapped to the first instance, but there are some components that aren’t (splash cymbal, woodblocks, cowbells, china cymbal, crash (high)) and so Dorico doesn’t know quite what to do with them, so it just loads a default drum kit for each one. Try adding them to your percussion map and re-save the endpoint configuration.

Paul: Thanks again. You nailed it. I ended up editing the “Drum Set (Full)” kit that I started with and deleted those parts of the kit. I didn’t have those parts of the kit mapped to MIDI Notes in the percussion map. I did this rather than trying to add them because EZ Drummer didn’t necessarily have splash cymbal, cowbell, woodblock as part of that kit (and I didn’t need them). One thing that is confusing, but I’m starting to get it, is that if I did add say a “Cowbell” to the Percussion Map, it would still create the additional VST instance if I selected “Cowbells” as the instrument in the Percussion maps dialog. Now if I selected “Cowbell (High)”, it was then mapped to the Cowbell part in the drum kit and it would not load a separate instance. The Instrument name is important in the Percussion Map and apparently must be selected such that it aligns with the part of the Drum Kit. Hopefully I’m describing this well.

I just realized that every time I add a Drum Kit (Full), I’ll have to delete the parts of the kit that aren’t in my percussion map. I’ll be better off adding something to those parts and mapping the instrument names correctly in the Percussion Map.

I edited the post as I see you can create a custom kit in Setup without the instruments.