Xsample contemporary strings expression map problems

Hi all,

Is anyone using Xsample’s contemporary strings library with Dorico?
I’ve imported cuebase expression maps that look like they should be working but seem to jump to random presets.

Xsample is supposed to send controller #0 information for patch changes towards articulations. For instance ‘Vibrato MW’ is preset 3, so programming ‘Natural’ to be controller 0, #2 should give me ‘Vibrato MW’ as the default. This seems to work but setting ‘Pizzicato’ to #69 (for patch 70 with 0 as first patch) Dorico instead hits patch #44.

I’m using the default mutual exclusion groups, so pizz should be excluded from ‘natural’.

In the Kontakt file I’ve confirmed I"m using ‘preset mode’. The expression maps also send controller #32, which is also supposed to be patch change, so it could be a conflict there.

If anyone could help, I’d appreciate it.
thanks

Are you sure the “Pizzicato” switch is being triggered? Check the Playing Techniques lane in Key Editor.

Thanks, Eggsalad.

That’s weird, but you’re right. What’s listed in the playing techniques lane is just weird.
It goes from base ‘natural’ with internal effect ‘staccato’, so both natural and staccato active, to ‘open 1’ plus ‘pizzicato’ plus ‘sul ponticello’.

I tried deleting my test sul ponticello but it still won’t switch even between pizz and arco, where it says base ‘natural’ and ‘pizz active’.

In the imported cubase expression map every articulation is listed as base, which I think should be correct for this library since all articulations are set through controller 0.

Its also using ‘create mutual exclusion groups automatically’.

I must be missing something basic here.
thanks for your help

IIRC there’s an old thread on importing Cubase maps with a cautionary note that they are not guaranteed to work. There was also a more recent thread in which Daniel showed the logic behind how Dorico interprets expression map switches for playback.

That said, I prefer to set up manual exclusion groups (eg to ensure sul pont is not possible with pizz. etc) . You could also experiment using add-on switches rather than base.

Thanks, Janus.

I think I may have found the problem. I imported the same expression maps into Digital Performer and did a couple of tests there. It looks like the maps were built with a specified midi channel 1 for the controller 0, articulation change messages. I had violin on Kontakt channel two but the expression maps were sending controller 0 messages to Kontakt midi channel 1. Deleting the midi channel makes it send out the same midi channel as the library is set in Kontakt and now it seems to be changing articulations properly.

Will report back once I redo all the maps and re-import them into Dorico.

When I opened these xsample contemporary strings expression maps in Digital Performer, they had a midi channel specified with the controller 0 information. In Dorico when I open up the expression maps I don’t see a midi channel option with these expression maps. But I expect it must be embedded in the cuebase map, but not identified by Dorico.

I deleted all the specified midi channels with controller 0 in DP’s expression maps and it now works fine. But it won’t export those into cuebase expression maps so I’m trying to do the same edits in Dorico but the midi channel specified in don’t show up in the controller 0 messages.

I assume that if I knew the text strings I could just open the expression maps in textedit and delete that information, but otherwise there doesn’t seem to be an easy fix for this other than rebuilding the controller maps from scratch.

Anyone have any ideas?

Although I can understand why you wouldn’t be keen, I do think that setting up expression maps from scratch in Dorico is the best way to get to a good result. I’m not familiar with Xsamples specifically but I imagine that the setup for each patch is more or less the same, in which case you only need to create one expression map that you can reuse for each patch.

Thanks, Daniel. I’m afraid you’re right on this one.

I went as far as redoing the Dorico file so that each xsample instrument was on a separate Kontakt instance, so that each one could be on midi channel 1 in case that would solve it, but it didn’t help.

Xsample has about 80 different patches available through controller 0 assign, lots of interesting articulations and combinations of articulations. I just have to balance out how much time it’ll take me to build the articulation maps for demo files before I record.

I wish I could export the now working expression maps from DP.
Oh well.

Perhaps you can at least use the DP maps as a reference as you start building your expression maps in Dorico, which will hopefully save a little bit of time.

I only have the ancient Xsample Chamber Ensemble, not the Contemporary Strings. But I’m assuming the setup is similar (ie most articulations are triggered through CC#0). I find it works reliably (though not perfectly). I have one Kontakt instance per instrument and a common expression map for strings. (There are slight variations in patches available between instruments, but I’ve chosen not to include them all -yet. These are some of the more esoteric patches like bow behind bridge).

I suggest you create a spreadsheet: Instruments across the top, articulations down the side and just tabulate the CC#0 triggers. From this it is relatively trivial to create a minimal set of expression maps.

My biggest concern (perhaps fixed in the later library?) has been dynamic balancing between patches. Still a work in progress, but I think adjusting the expression map volume ranges is the route to go. If anyone has better ideas, I’d love to hear them.

I’ve started, but its tedious and slow figuring out which articulation goes with which technique. Jete = ricochet, fluatando = sul tasto…

Since everything is done by control message that seems to mean every articulation needs to be part of a mutual exclusion group. And with control 0 that I have to separate articulations for multiple articulations, sul tasto + tremelo, etch.

Tedious, as is the fact that the controller 0 patch data changes with each instrument.

I tried opening up the original expression map in text edit to see if I could find the string that specified midi channel and delete, but couldn’t find it.

Tedious? Yes. Difficult no.

It is simply a matter of connecting each playing technique that you want to an appropriate playback technique and then telling Dorico how to trigger the right patch.

Unfortunately there is no standard for how a library (in this case Xsample) names a patch and how you might want to trigger that patch (via a playback technique).

I only use mutual exclusion groups as a last resort when articulations don’t switch off correctly.

You only need to be concerned about midi channel if your vst has multiple instruments (with different patches) loaded. In this case I prefer to use absolute channel changes. And you should include in your natural (and init) articulation a channel change back to your base.

1 Like

Dorico expression maps don’t indicate an overall MIDI channel. They do include channel change messages if used in switch actions. MIDI channels are set in Play mode, and you can see the overall configuration of channels and Expression Maps in the Endpoint Setup dialog.

Dorico expression maps don’t indicate an overall MIDI channel. They do include channel change messages if used in switch actions. MIDI channels are set in Play mode, and you can see the overall configuration of channels and Expression Maps in the Endpoint Setup dialog.

I expect the issue with these cubase expression maps was that they DID include midi channel settings with controller information. In digital performer I was able to see that controller 0 messages were sent on midi channel 1. I could also delete the channel specification and then the expression maps worked great. In Dorico the maps can’t show or edit midi channels for controller information, so I both couldn’t see that they were mapped to channel 1 or edit them to remap them.

I’m building new maps, but its slow making everything work. Fortunately most of the patches are similar throughout the xsample strings, controller 0, #69 is pizz in all the strings.

Interesting. I’m not familiar with Cubase expression maps. I have dug through Dorico expression map XML quite a bit. I expect that when Cubase maps are imported into Dorico, that sort of MIDI info is simply not included, since CCs aren’t mapped to channels. (Or that an explicit channel change to 1 action was included every time there was a CC 0 action, but you would have noticed that.)

Anyway, good luck!