Playback templates

So I’ve successfully created a small version of a Vienna Ensemble Pro template and understand how to make it work (for the most part).

It seems that when you enable independent playback of different voices and add some notes on a new voice, it will create a new instance of VE Pro to accommodate the new voice.

While this works OK, it would be preferable (at least to me) to be able to stay within a single VE Pro instance. I was trying to coerce it to use adjacent channels but couldn’t figure out how to make this work. I’d like either this to work, or possibly use adjacent port numbers rather than create a new instance. I haven’t figured out a way to do this automatically yet. So I’m asking if this is possible or, if not, then I’m requesting a feature for the future that can accommodate either adjacent channels or adjacent ports.

Note to other users: When you select the playback template, it doesn’t actually load the instance in VE Pro until you switch to Write mode. I was thinking Dorico was hanging because I was staying in play mode and waiting for a long time for the thing to load and it never did. I accidentally clicked on write mode one time and noticed that triggered the instance to load. So if you’re creating a template, this is something to keep in mind.

Yes I agree and support this idea. After playing around all day with different approaches I concluded that this new feature is really meant for people that use Halion or perhaps NotePerformer, not for us. For now I will continue to use the old template system i.e. large orchestra with everything (with read-only protection) and then delete instruments as appropriate and Save As…

Dorico has no way of being able to load individual instruments within a VE Pro instance, or within any other plugin that isn’t HSSE. There is no mechanism to do so.

I would suggest that if you’re using VE Pro then the most effective way is to either: set up an instance with a typical configuration of the instrumentation you write for and then save that as an endpoint configuration. Or create a few instances, each containing a group of players, eg a string ensemble group, winds, brass, etc, and save an endpoint configuration for each group. Then create a playback template, combining these groups together.

Right. I am setting up several instruments into a single template and then creating a project that uses a subset of that. All that is working fine as expected. Except…

When i want to enable independent playback of voices using separate midi channels it is not respecting my template. It instead creates a new VE pro instance whenever that happens. I don’t want a new instance. I want to be able to define a template with separate midi channels per voice and have my project which uses a subset of those instruments and midi channel definitions follow that template.

How do I ensure that this doesn’t happen? If it can’t be done today, I’m requesting that this be possible in a future release. Otherwise, the template mechanism doesn’t really work for I’m guessing anyone who cares about playback.

I’ve just tried doing a similar thing here and this works as expected for me: (not in VE Pro, but the same principle should hold)

  • create a new project and add two solo violins (or one violin with two voices)
  • load a plugin and add two solo violins to it
  • save the endpoint configuration and create a playback template
  • create a new project with one solo violin
  • enter notes in two voices
  • turn on independent voice playback for that instrument
  • select the playback template

Expected: one instance of the plugin is loaded and both of the voices are routed to the respective channels. If you add a further violin, or add another voice then it will load another plugin, but then the next voice will use the 2nd channel of the plugin.

If you are finding that another instance of VE Pro is being created then that suggests you have more voices in the current project than you had when you created the endpoint configuration.

Well I’m as confused as ever now, I think the problem stems from the history documentation. It describes saving a Template by clicking the Save Manual Playback Template button in the endpoint setup dialog. There is no Save Manual Playback Template in the endpoint setup dialog. There is just a Save Endpoint Configuration button.

So I think my problem is I haven’t been saving the template correctly. Please tell me exactly how to do this.

I’ve been saving the project file that the template was created in. I think this is not the same as saving an edited template. I’ve also been clicking the Save Endpoint Configuration button.

But my results differ materially from yours, so I suspect I am just doing it wrong somehow.

There are several different scenarios

Firstly to create the Endpoint Configurations:

  1. Using a plugin for a single instrument, eg piano is routed to a single instance of Pianoteq. In this case use the ‘Save Endpoint Configuration’ button from the Endpoint setup dialog, since we are only wanting to store the routing information for a single plugin
  2. Using a single plugin for several instruments, or for multiple voices. eg an instance of Kontakt with a string quartet. Use the button from the Endpoint Setup dialog as above.
  3. Using multiple plugins for multiple instruments. In this case, load a project that reflects a typical ensemble you write for (eg film orchestra). Load as many plugins as you need and ensure that every instrument is routed to a plugin. Use the Save Endpoint Configuration button at the bottom of of the VST Instruments window. This will save the state of all plugins.

Now to create the Playback Templates:
There are two common use cases. One is to use the endpoint configs as building blocks where you can easily build up a template, eg use pianoteq for pianos, Kontakt for harp, SoundIron for choirs and HSO for everything else. The other case corresponds to item 3 above where you have a full orchestra endpoint configuration and so you just want to use this whole configuration for a different project.

I would suggest creating some small endpoint configurations and playback templates to get some familiarity with them before scaling up to large VE Pro instances.

OK, I am doing it like case 2 and only for three instruments.

I create a piccolo, flute and oboe. The piccolo has one voice. The flute and oboe have two voices each.

I create an endpoint setup that has the piccolo on channel 1, flute on channel 2 and 3, and oboe on channel 4 and 5, I then save the endpoint config.

I create a template called VSL template and add a manual template that has the above endpoint config, followed by a Silence automatic template.

It is connected to VE Pro and plays instruments on all 5 correct channels. I then save this project and clear the VE pro server.

Now I create a new project with just a flute. I add notes on both voices. I then go to play mode and select the VSL template.

I go to write mode and it adds the instance of the saved template. The endpoint setup shows a flute with two channels on 2 and 3 as expected. But the channel settings on the left panel of play mode show a flute with all voices switched off and connected to channel 3. This is wrong, it should be on with up stem voice connected to Chanel 2 and down stem voice connected to channel 3. If I enable the voices, it adds a new instance of VE Pro. This shouldn’t happen either.

The end point setup shows plenty of available channels and shows all the instruments (in this case just the flute) and it is assigned correctly.

So that’s where I’m at. I’ve started this whole process several times and always end up here.

After you have set the independent voice switch for the flute, try re-applying the playback template at that point (I know this shouldn’t be necessary, but I’m trying to get to the bottom of what’s happening here). Or set that switch before applying the playback template.

Incidentally, it’s not necessary to add the Silence config to the template - anything that can’t be mapped to an instrument won’t have anything loaded.

Same as before in either case.

The up stem voice gets assigned to channel 3 (instead of 2) and the down stem voice has no VST assigned and no channel. And a new VE Pro instance is loaded.

I’ll have to resume with this when I’m back in the office next week.

For what it’s worth, I ran through the exact same scenario using the Amadeus Library (which is Kontakt based) and get exactly the same results. I wanted to rule out VE Pro as being the problem.

I read something in the history document about this, but am not sure if it is supposed to be fixed. It isn’t in case you’re wondering.

I can’t get a two voice subset of an existing playback template to assign channels correctly (or at all) no matter what I do, and it crashes or hangs most of the time between tries.

And it still creates an extra instance in the process.

Here is a crash log:
Dorico Diagnostics.zip (440 KB)

I won’t be able to look at the crash logs until I’m back in the office, though I think one of them is one of the VE Pro-related crashes. Do you experience crashes if you are not using VE Pro?

I’m not able to reproduce the case of it not working correctly. I’ve just created a project with a single violin and two voices, with independent voices turned on, then applied the playback template with a string quartet endpoint configuration, and it loads just one instance as expected. Could you provide some reproduction steps?

I just tried HSSO + HSO Pro on this file and it works. But VE Pro doesn’t.

Here is a test case and the relevant endpoint config and playback template.
test.zip (330 KB)
Put the template and endpoint config in the appropriate places.

Launch VE Pro server

Launch the test.docico file

Turn on the all voices button in play mode for each instrument (or not depending on whether you think that is required). I’ve tried it both ways.

apply the template provided

the only instrument that gets channels allocated is the violoncello and that requires two instances even though there are plenty of channels and ports available in the endpoint setup provided. the other instruments don’t get allocated at all.

VE Pro will crash when the second instance is loaded.
try to quit Dorico - it hangs.

I haven’t been able to load this as the EndpointConfigs directory is empty.

Sorry about that. Try this one…
test.zip (1.77 MB)

I can see that there are two cellos in the endpoint config, but one is a section player and one is a solo player. So if you create a second voice in a cello part then the endpoint config can only provide the mapping for one, so it will lead to a second instance being loaded.

OK, I see that issue. My bad.

Here’s a file with only section players. (Section players in the endpoint config have two voices).

This one still doesn’t allocate voices correctly and loads a second instance. The violin does stay in the first instance, but allocates voices to what are violin 1 and violin 2 rather than both voices to violin 1. Maybe, in the violin allocation, this doesn’t matter as they have the same endpoint characteristics, so I suppose this particular case can go either way and still work.

test2.dorico.zip (327 KB)

When it’s applying the playback template, there’s no distinction between ‘allocate the sounds for two violin instruments’ and ‘allocate the sounds for one violin with two separate voices’. They both just amount to ‘find me two entries in the endpoint config that can provide this sound’.