Dorico - MIDI CCs and Program Changes w/ Kontakt Multis

I’ve read thru a lot of the posts that deal with Expression Maps and I’ve learned a LOT. Also the Dorico reviews on has been great as well. But there’s still some issues that maybe the community has some answers for.

As a composer I’m either writing in Cubase or in a Notation program. If I’m writing in a notation I tend to prefer using a Conductor’s score format as I can keep everything as linear as possible. Since I am using a mostly Kontakt instruments (mainly Spitfire Audio’s Symphonic series) I’m trying to make the most out of Kontakt multi-instruments as they can combine patches in to a single target, each with their own built in MIDI CC- triggered articulations. A lot of libraries (Spitfire included) have different patches for solo, a2 a6, etc.

For instance, the brass in the Spitfire Brass has a unique patch for Solo, a2 and a6. Ideally, say for French Horns, I’d create a Kontakt multi with FH Solo on Program 001, FH a2 on 002 and FH a6 on 003.

I’ve had weird results with this - sometimes success but mostly, unexpected behavior and failure.

Yes, I’ve gone thru the process of creating a new Engrave -> Playing Technique and then creating a new Playback playing technique. Then in Play -> Expression Maps, I can add it to a new or existing map from the list, assign a the appropriate Program Change number and click OK. When I go Write, I can highlight a note, bar, whatever, hit Shift-P and select my new playing technique from the list.

However, sometimes it works and mostly it doesn’t. It might recognize the first program change but won’t any subsequent program changes.


Just had a thought, as a feature request, would it make sense to have in the Write tab a Write -> “Create MIDI Event” action? That way, it would be independent of any techniques or could be related to a simple text object like, say “a2” or “+1”. As a reference, check out the John Williams Signature Series scores from Hal Leonard.

We agree that it would be useful to be able to trigger arbitrary MIDI events without requiring them to be notated in Write mode: this is something we plan to add in future.

In the meantime, you may find that the problems you are experiencing with unreliable switching can be mitigated by inserting an otherwise redundant reset to the “nat.” playing technique before the next switch, to clear things down and make sure that Dorico knows what combination of playing techniques it is expected to use.

1 Like

I’ve had similar issues, but that was because I had forgotten to add a KS for the natural sound (Nat/open etc) in the expression map. Whith that one added it works as a charm.

Great to hear about the MIDI event development! Definitely looking forward to that. (Also still looking forward to syncing up with Cubase… :smiley: )

I did find a workaround that kind of made me smh and say “Doh!”. I thought that maybe part of my problem was that brand new playing techniques created from scratch may have support issues and therefore unexpected behaviors. The workaround I discovered is that instead of creating a new technique, I decided to choose the “New From Selection” and see where that went.

It was the right choice and totally solved the problem. As an example, here’s what I did for the “a2” technique. (And maybe this will help other people as well)

I decided to choose “legato” as the base playing technique as that technique seemed to be fully supported and was a direction, rather than attribute. So I opened up Engrave -> Playing Technique, highlighted “legato” and clicked on New From Selection. from there I renamed it “Spitfire - a.2” across the board (popovers, etc.). I then clicked “Edit” by Playing technique to Edit Playing Techique Group. I again selected “legato” and clicked on New From Selection and called it “Spitfire - a.2”. I left everything else alone. I was simply renaming as I went and left all other defaults in place.

Then I went to the Play tab and clicked Play -> Expression Maps and chose an existing HSO map to modify. In my case I decided to use HSO Flute Solo as the base map. I then clicked the “+” symbol to add a new technique and found my “Spitfire - a2” in the list. I selected that and clicked on Program Change with a value of 2.

I repeated the process for Spitfire - Solo and Spitfire - a6 so I had three new techniques, all based on the existing legato technique.

Next I went to the connected Kontakt VST and created a new multi instrument. I threw in three different patches in to Program 001, 002 and 003 (Solo, a2 and a different a2 respectively).

Then I went back the Write tab and inserted the first technique. Shift-p got me to the list and when I hit the letter “s” the “Spitfire” techniques I had created were there and ready to go. So inserted the three different ones across 10 measures or so and…

SUCCESS!!! Kontakt showed that the programs were switching back and forth without any problems and exactly where they should have. It was cool to see the playing technique track in Play also list them correctly where I had inserted them. And, from an engraving perspective, they appeared just like they would in a professional layout as I did not have to have any kind of manual resets (like nat.) inserted.

HOWEVER! There was one more issue that popped up but it wasn’t a Dorico issue. It was a VEPro issue.

Normally, I have Dorico connected to different instances of VEPro which house all of my VSTs. With VST3, Program Changes are no longer recognized so imagine my frustration to learn that VEPro would not recognize the incoming PC commands. Grrr… :angry:

Good news! I found a workaround for that as well.

  1. I went back to Dorico and changed from Program Change to MIDI Controller. I then used an unused CC (CC# 33 in this case) and mapped the three Spitfire techniques to MIDI CC# 33, value 0, 1 and 2. Kontakt Program Changes are “0” based so Program 001 is actually based on Progrma Change 0.

  2. I had to go in to Kontakt and click on the “KSP” button at the top to insert a Kontakt script. I chose the “Transform” from the Presets button and created a preset to convert from MIDI CC# 32 to Program Change.

As soon as I did that, I was able to insert the correct Solo/a2/a6 playing technique instruction in Dorico and the corresponding Kontakt instrument in VEPro flawlessly changed programs back and forth on the fly.

After 6 hours of trial and error I was basically dancing!!

I hope people find this helpful. I tried to spell out my process as clearly as possible so that other folks can follow along if they are looking to do the same thing.

One more note on the MIDI event issue. There is a tiny bit of lag (which is reasonable) for VEPro/Kontakt to respond to the Dorico command. This is where MIDI events could really help as we could move the event back a few MIDI ticks so that it triggers slightly BEFORE the note/beat/bar to account for latency.

Unless there’s already a way to do that???

Yep, Daniel said something similar. But check out my response to Daniel and see what you think. I’m trying to avoid KS methods in general as different libraries seem to have different KS layouts and I’m trying to consolidate methods as much as possible. But thanks for the suggestion. :sunglasses:

Hehe, well, my post covers basically all Inknow about this. :joy: and I’m glad I did manage to set up the expression maps for my Garritan libraries. That’s one reason why I love NotePerformer (the other is the awesome sound…)
But I’m glad it all worked out for you! :+1:t2::clap::grinning: