Dorico and VSL Dimension Strings


I would like to use the VSL Dimension Strings as ensemble, divisi and individual players with Dorico. In the process I would like to avoid having to replicate each player in Vienna Ensemble Pro (VEPRO) and MIR PRO. Each player’s instance should serve at the same time as an individual player, part of a divisi group (Vni I div 1-7, etc.), part of a full section (Vni I, Vni II, Vle…).

So, for example, an instance of VEPRO (DS Vni I) would include 14 first violins. Another instance of VEPRO (DS Vni II) would include 12 second violins. Each player will have a separate MIDI channel: P1=Ch01, P2=Ch02, and so on.

I want to be able to drive an individual player as a solo instrument from a single staff in Dorico. Or a group of players as a single divisi staff. Or the full instance as a complete section, still from a single staff in Dorico.

Is this possible? Can I have a single staff do the following?

a) drive all the MIDI channels in a VEPRO instance (a full Vni I section, for example)
b) drive multiple MIDI channels in a VEPRO instance (for example, channels 1-7, corresponding to players 1-7)


I suggest you read the information on pages 38-39 (regarding independent voice routing, which allows you to drive different MIDI channels from a single staff or single instrument with divisi sections) and pages 66-67 (regarding VST expression maps, which allow you to define technique changes that require changes of MIDI channel) of the Dorico 3 Version History PDF.

Daniel, thank you very much for the hint! However, I fear I was not clear in explaining what I want to do.

If understand correctly, independent voice playback allows a single voice in a staff to drive multiple MIDI channels. You can have two voices in a Vni I part, and the upper voice will be able to play a small strings ensemble on MIDI channel 1, while the lower voice will play a different strings ensemble on MIDI channel 2.

What I want to do, is to have a unison voice in a staff drive multiple MIDI channels. All the voices in a staff will play all the MIDI channels, or a selected group of MIDI channels, in an instance of VEPRO.

The VEPRO instance would be made of separate solo violins from the Dimension Strings library. Vno 1 will be on MIDI channel 1, Vno 2 on MIDI channel 2, and so on. Dorico should play all of them (or a selected number of channels) from a single staff.

This multi-channel VEPRO instance will made a full strings section. But made of individual soloists, each one on its MIDI channel.

Maybe this can already be done, and I just didn’t understand the instructions you pointed me towards.


In the end, I think I will have to create different VEPRO instances for each use case.

  • A 16 violins instance, all on MIDI channel 1, all going to the Master Bus, for the full Vni I staff.

  • An 8 violins instance, all on MIDI channel 1, all going to the Master Bus, for the Vni I/a group (first divisi group).

  • An second 8 violins instance, all on MIDI channel 1, all going to the Master Bus, for the Vni I/b group (second divisi group).

  • A 16 violins instance, each one with its own MIDI channel, either going to the Master Bus or to a separate Ouput pair, for the cases where each violin is treated separately (as in Ligeti’s Atmosphères or Boulez’s Notations).

In case I need less violins for each group, I’ll mute some of them. Dorico should remember the mute status of VEPRO’s channels.

All the above, also for Vni II, Vle, Vc, Cb.

In the score, solo and divisi parts will be in staves separate from the full section.


You indeed cannot make a single voice trigger multiple endpoints.

Thank you for confirming, Daniel. It would be useful to see something like that in a future version of Dorico.

In the meantime, I’ve discovered something really nice: to work with Logic, I have to create a multi-out VEPRO instance. Each audio out of this instance, corresponding to a VEPRO channel, will be an Aux and a separate Track in Logic. This is the only way to separately manage VEPRO channels from Logic.

Dorico doesn’t need any particular audio configuration to deal with this multi-out VEPRO instance. Each of the audio outs from VEPRO is heard when you play the score.

So, considering the various setups I described above, dealing with VEPRO instances going to the Master Bus (therefore pre-mixed to a single Out pair), or with each channel going to separate Out pairs makes no difference: Dorico will receive and mix them as well.


Paolo, did you ever figure out the best approach here? I am just getting up to speed with Dorico now finally, and trying to understand the best way to work with my VSL libraries. Most of the playback templates that come provided are of no use to me, since I don’t have the special editions…

Just wondering what you Ended up doing with any and all of the VI and/or synchronized libraries.

Just fooling around with this. According to concept of independent voice playback in divisi from the manual, I can assign voice 2 and voice 3 to different midi channels (or to different endpoints). Ok so far, but the problem I have is that voice 1 needs to play to a different endpoint depending on whether its in divisi mode or not, the exact sound would actually depend on how divisi parts are current, to make matters even more complicated.

For example, if strings are in unison, then voice one goes to first endpoint which is all 8 players in unison.

If we go to two part divisi…then voice 1 now needs to go to a different sound of only 4 players in VSL dimension…which could either be a different endpoint…or…there could be a keyswitch that changes its sound to the divisi sound. Along with voice 2 going to a seperate endpoint that already has its own 4-player divisi sound.

Etc… It gets a little more complicated if you divide again…theoretically up to 8 part divisi with dimension strings…

So the question is: is there a way for a divisi change to register as a playback technique in the expression map in order to send an Add-on keyswitch?

Or is there some way to detect in the expression map when Dorico has switched its divisi mode so that the map can channelize the first primary voice differently, etc…?

If there is 3-5 part divisi, then voice one would need to go to an even different sound and if there is 6-8 part divisi then voice one would need to play an even different sound then that…

Not a best approach, but one that might work. This is how I do with the VI Dimension Strings:

  • In VEPRO, I create an instance with more groups of Vni I:
    – one with each player on a separate MIDI channel for the individual players;
    – one with all the players on the same MIDI channel for full ensemble;
    – another one with a variable number of players, for divisi (a)
    – and another one, also with a variable number of players, for divisi (b)

Each of the groups above is assigned to a different MIDI port.

  • In Dorico I use separate voices for ensemble and divisi:
    – MIDI channel 1-1 for Vni I ensemble;
    – MIDI channel 2-1 for divisi (a);
    – MIDI channel 2-2 for divisi (b);
    – MIDI channel 3-1…16 for the individual players.

Voices in divisis are a bit complicate, since the number you see in Write mode is not the same you see in Play mode. For example (if I can keep track of the numbering):

  • Vni I ensemble is Up-stem Voice 1 → this matches Up-stem Voice 1 in Play mode.
  • Vni I divisi (a) is automatically assigned to Up-stem Voice 1, and this is Up-stem Voice 2 in Play mode. In Write mode, you can change it to Up-stem Voice 2 to separate it from the ensemble voice and route it to a different sound, and it will become Up-stem Voice 3 in Play mode.
  • Vni I divisi (b) is automatically assigned to Up-stem Voice 1 on its stave in Write mode, but it will be Up-stem Voice 2 in Play mode. If this voice number is already taken by Vni I divisi (a), it will be Up-stem Voice 3 in Play mode.

In any case, it seems you can have separate voices for the ensemble and the divisis.

As for the individual players, I tend to use them as separate player in Dorico as well, instead of as divisi. There would be no issue of voice assignment here.


Have you considered to solve this within the realms of VSL? You know that - given you have the VI Pro Player - you can load up to 16 individual violins into one VI matrix? One matrix using all of the 8 individual players is prepared for you by VSL as “All Violins”. You would then have to copy more players into the “b” slots, switching off the cell X-fade option. You then can add another matrix containing only six violins, and a third preset containing only Violin 1.

In Dorico you would have to create an expression that uses keyswitches to switch between these ensemble sizes.

The setting up of the matrices can be tedious though.

Since I use my own custom presets, I have to keep programming as simple as possible. Dealing with cells with 8 or 16 slots (x2 where crossfades are required) would be a massacre.

Therefore, I went for separate presets for individual players. By using Vienna Ensemble, mixing and matching them becomes very easy. Different blends of the ensemble also become as easy as just mixing the individual players.

With the Synchronized version I use a different approach (I have a single preset for each Dimension Strings ensemble, and turn off the mic channels depending on how many instruments I don’t need on a stave).


So do you guys use some kind of custom playback market symbol every time it changes divisi or how do you signal the expression maps to send key switches or automation for every divisi change?

I use the usual div. and unis. in the score to visually show the division change. No need to tell anything to the expression map, since I just route the MIDI messages to the correct sounds for the voices played by the divisi parts.


But how does voice #1 know whether it needs to be full ensemble or group 1 in DS?

I do this way:

  1. Create all the needed VSTi in Play mode. So, a VSTi for Vni I Tutti, one for Vni I div. a, one of Vni II div. b.
  2. In Write mode, insert a divisi change.
  3. In the top stave, assign Vni I div. a the Up-stem Voice 2. In the lower stave, you can leave Vni I div. b the Up-stem Voice 1.
  4. In the top stave, edit the Up-stem Voice 1 start and end points to avoid your measures to be filled with rests from it.
  5. In Play mode, use the track inspector on the left to assign a VSTi to each of the voices. As described above, voice numbering might not match with Write mode. But you can see which voice is which by looking at the shown notes.
  6. Assign the correct MIDI ports/channels, depending on how you configured the sound generator.

Done! You have routed your divisi/voices to the correct sounds.


I see. Thanks for sharing your work flow, I will have to play around with that.

I have some music where the music is changing often…several times per system often…between unison, divisi and three part divisi. So for a given instrument staff, it will be changing in non-condensing view, between one stave, two divisi staves or three divisi staves occasionally…and in each case the notes on the first stave, will need to go to one of three different potential sounds. In the the second stave it could be one of two different sounds. The third stave would always be the same, when used at all. And actually there is still potential for 4 part divisi, which would just multiply the above combinations.

I was under the impression that when you set the independent playback in the PLAY page to send each of those voices to different endpoints…that its global for the whole project…but I am not sure that approach would work well for me… Or maybe I’m misunderstanding some of what you’re doing. Not sure how you reassign the the up stem voice 1 to different sounds in each divisi section.

it seems to me that I need to use something like @MassMover was suggesting with a play technique to trigger a keyswitch, which could either call up a matrix in VIPro, or in the Sync Dim Strings product, there are already existing keyswitches for switching which of the Divisi or unison sounds to use. In those cases it could be handled such that maybe 3-4 plugin instances would be needed, one for each potential divisi staff…and then a keyswitch could determine which actual sound to use depending on the divisi change that just took place.

But I wish there was a way for the expression map to detect the divisi change without me having to add an additional custom playback technique (and hiding it) every time there is a divisi change…which like I said…at least for some music I’m trying right now…is frequent enough to be laborious.

In this case, I would suggest an alternative (that is what I usually do): don’t consider the individual players of groups as divisi, but as separate players. A separate player/stave will be the unison. Each of them will point to the dedicated sound.

Divisi are a practice used to split an ensemble in two, or (see Debussy) in three. After them, the use of considering ensemble as aggregates of soloist require a different way of thinking: individual string instruments are to be considered as individual performers, and as part of an ensemble.

The same applies to the winds: they continue to be mostly individual players, but it is also important to consider them an ensemble, and not only for unison (cluster, chords, massive “fx” textures).

In these case, I would personally not use divisi.


I’ve lately been setting up a small (4/4/3/3/1) string orch with the Special Edition Synchron Strings. I have created playback techniques for switching Group/Desk/Tutti, and so have four instances of 1st violins, four of 2nd etc. – all fit a single instance in Ensemble Pro. So First slot is Violin 1 Tutti (switched to Group 1), second is Desk 2, 3rd & fourth is Player 3/4. I can switch First slot to Desk 1 or to solo; and I can switch second slot to solo, so I can have four solo first violins. With Divisi set up accordingly in Dorico, I can address each separately.

1 Like

@Marcabru do you know if there is any way to use the divisi change itself for the playback technique or do you have to manually place an additional playback technique (word or symbol?) on the score?

I don’t think so (meaning I don’t think there’s a way) – I put them in anyway on the basis that the players will want to know