Send Mod Wheel Data via MIDI Out

• Apr 1, 2018 - 23:11

I am using the MIDI Out function with Musescore 2.2 to send midi data to Kontakt Player. Some of the instrument files have different timbres available via the "Mod Wheel". I can adjust the values of the mod wheel from Kontakt Player itself, but can Musescore send Mod Wheel Information (i.e. cc1 = 127 or cc1 = 0) to Kontakt? This would be nice so that the Mod Wheel can be changed automagically during score playback.

I know that there are symbols in the Master Palette, (MIDI Controller 100% etc.) but as far as I can tell they are only symbols, and are purely cosmetic.


In reply to by Nicolas

Oh wow, I had no idea this menu existed, this is great! For my purposes I would only need to send a given CC with a set value at a specific time.

I do have a few questions about implementing this on my own:
What is the purpose of creating multiple channels, and how is this interpreted in outside software?
What do the "ctrl" and "value" variables do in the MidiAction element?
How do you select a specific MidiAction to be used in the score?

In reply to by Cadence Point Music

You will need to experiment yourself.

What do the "ctrl" and "value" variables do in the MidiAction element?
The controller number and its value.

How do you select a specific MidiAction to be used in the score?
Once defined in instruments.xml, and instruments.xml added in Preferences.
Add a staff text for the given instrument in the score, right click > staff text properties > MIDI actions, the midi actions listed in instruments.xml should be listed and selectable.

If you figure it out, it would be cool if you could share your instruments.xml !

In reply to by Daniel

Yes, I am working on integration Virtual Drumline with Musescore. So far Ive created a new instruments.Xml file for about half on the unpitched percussion instruments using the keymaps available here:

Currently I'm using JACK and Carla (vs Midi out added in 2.2), and running Kontakt as a plugin in Carla.
Sending Mod Wheel messages to Kontakt is the last piece of the puzzle.
I am planning publishing the modified instruments.xml and making a tutorial when I finish.

In reply to by Cadence Point Music

Curious why you are using JACK and Carla vs MIDI out?

I'm also currently working on getting MuseScore to work with VDL and would love to collaborate on this effort. I'd also suggest to engage Hugh Smith, who very recently joined If you are already using VDL, he is the one that created the VDL notation standard, guide and templates. I'll see if he can chime in here -

In reply to by Daniel

I'm using JACK and Carla to get around the use of MIDI Channel 10 for drumset instruments. Musescore will assign the first drumset staff to MIDI channel [A] 10. For the second drumset staff, Musescore assigns it to MIDI Channel [B]10, and so on.

You can also get arround this by changing the drumset instrument to some pitched instrument, like a piano. This however, will not allow you to input notes, only change the current pitches with the up/down arrows.

You can also use the Musescore 3.0 Nightly build and change the MIDI Channel assignments in the mixer.

But I've found it best (for me) to use Carla in "Multiple Clients" mode to run multiple instances of the Kontakt 5 plugin. My only fear of using this method is the system resources taken up by running 4+ instances of a Kontakt Plugin, I haven't experimented with this though.

This is what the Carla patchbay window looks like, I've renamed each Kontakt plugin to match the instrument it represents.

As far as the instruments.xml goes, I currently have .drm files made for all of the Accessories, Combos, Cymbals (hand & suspended), Drumline, Drums, and about half of the Effects. I currently have a skeleton of each category in an xml file, then I am inputting note assignments through the 'edit drumset' GUI in Musescore. Once I finish I will have to copy and paste the contents of each .drm file to the master VDL_Instruments.xml file.
Right now I do have all of the Drumline instruments in the VDL_Instruments.xml file:


Here is a link to download all of the .drm files I have so far:…

As far as assigning notehead and staff line goes, I just made an educated guess on what would be most appropriate.

My first post:

I'm just getting my feet wet with what's going on, but here are a few thoughts so far (in no particular order) (and I'm not trying to completely change the way things are done in MuseScore, these are just some of my initial ideas on what most likely needs to happen in order to facilitate sample libraries as complex as VDL):

The ability to/for:

  • have staff text trigger keyswitches.
  • staff text and/or articulations as modifiers, send controller values/keyswitches to playback engine.
  • pitched percussion tremolos to properly trigger sampled rolls, as opposed to subdividing (machine gun). (In VDL, this is a modwheel change.) I'll define "properly" later.
  • define an input pitch for each individual sound (i.e. for when using a MIDI keyboard for note input).
  • account for unpitched sustained sounds, on a per sound basis. Most unpitched sounds can be triggered just once and will naturally decay as the sample file plays, but certain sounds need the trigger key to remain pressed for the duration of the note (i.e. a sustained buzz roll).
  • various bits above can be defined either on a per instrument basis, or globally.

Other ideas/thoughts:

  • Cleanup XML file, i.e. instead of (or in addition to) some of the nested tags, use attributes, especially on "Drum" (use self-closing tag, i.e. <Drum attr1="" attr2="" etc=""/>). (Why? Better/easier maintenance of file, greatly reduce the number of lines. I have some recommendations as to some "best practices", if anyone cares.)
  • EXCEPT, when the sound needs to have a modifier and/or a controller value passed to the player, then you're probably better off using nested tags.
  • Save workspace state, i.e. open panels stay open in palette - or a checkbox for the option to do so.
  • I like the idea of having all data an instrument needs in one place (XML instruments files). [Sib has various bits defined in three different places.]
  • Noteheads, see link above.

allegr0, I peeked at the files you provided and it looks like you're making decent headway. And I'll be curious to see how exactly you have your MuseScore-talking-to-Kontakt-Player configuration setup. Sib's patch autoloading feature comes in handy when a score gets dense, having to deal with multiple instances of Kontakt Player and such. But, that said, most MuseScore/VDL users may not push things beyond a single instance.

OK, I'm done for now.

In reply to by chznvrt

I'm not sure how much you've experimented with this, so I'm just going to assume you haven't to cover all my bases.

This is a pretty detailed video about setting up JACK and Musescore

Once that is all set up, dowload Carla from the KXStudio website. Once you've installed it, go to Configure Carla>Paths>Vst and add the path to the Kontakt 5 vst plugin. It's probably (Program Files/Native Instruments/VST Plugin XX bit)
Next go to Configure Carla>Engine and change process mode to "multiple clients"

You'll have to restart Carla. Make sure Jack is running before you open Carla or musescore. Make sure that the Jack server is running (press the play button in the jack window), I made the mistake of only opening the application without actually starting the server. Once Carla has been restarted click on 'add plugin' and select "Kontakt 5 8 out". Or whatever version of Kontakt you use

In the Carla Rack, click on the gear icon in the top left corner of the Kontakt plugin, this will bring up the Kontakt player window.

This will be the main plugin, all of the instruments in Midi A will be sent to this one. (this is labeled mscore-midi-1 in the patchbay) If you're writing for pitched percussion instruments, you would open their respective VDL instrument here and assign them their appropriate Midi channel. This is also the plugin where the first unpitched percussion instrument will go, it is assigned MIDI channel 10.
Any subsequent unpitched percussion will need its own Kontakt plugin, also, if you have more than 15 pitched instruments in your score they will be placed here.

Next, the Carla patchbay:
If you have non-VDL instruments, you can leave the connection from the blue musescore audio outs: 'left' and 'right'.
If you do this, you will have to go to View>Mixer in Musescore and mute each channel that has a VDL instrument. Then connect the Kontakt plugins as shown in the picture above.

I think that covers everything

I've been experimenting with this, and I have it working, but only when using MIDI out from Musescore.
I cannot get the CC messages to send through JACK.
Any Ideas on why this could be?

Do you still have an unanswered question? Please log in first to post your question.