Controlling Sibelius from your MIDI keyboard

A MIDI keyboard, yesterday (courtesy simonrobic on Flickr)

Input maps allow you to control various aspects of Sibelius’s playback and note input features directly from your MIDI keyboard or control surface. Sibelius comes with a bunch of input maps for Avid’s M-Audio controller keyboards, but you can create you own simply enough with a sprinkling of XML. Read on to find out how.

In order to edit an input map file, you’ll need a good text editor. On Windows, I’d suggest SciTE, and on Mac, I’d suggest TextWrangler. You could also go for a dedicated XML editor, though the input map format is simple enough that you shouldn’t need all that complexity.

Open up one of the supplied input maps to get a look at the structure of the file. You’ll find the input maps inside the Input Maps folder in C:\Program Files\Sibelius Software\Sibelius 6\ on Windows, or by right-clicking on the Sibelius 6 application package and choosing Show Package Contents, then going to Contents/Components/Input Maps.

Take a look at the structure of the file. The basic structure is a Header, followed by a section called Controllers in which there can be one or more named ControllerSets, within which you can define individual Controllers.

Let’s look in detail at the standard XML preamble and the header:

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="InputMap.xsl" version="1.0"?>
<InputMap xmlns:im="">
    <Name>Axiom 49+61</Name>
    <Description>Basic (non-HyperControl) mapping for Axiom 49 or 61 using its default Program</Description>
    <AutoMatchRegExp>Axiom (49|61)</AutoMatchRegExp>

Name is the name that appears in the Input Devices dialog, and Description isn’t currently shown anywhere in Sibelius, but it’s useful to fill it in.

AutoMatchRegExp is a regular expression that tells Sibelius to automatically select this input map for a given input device if the name matches the regular expression defined here.

DefaultControllerSet tells Sibelius which of the ControllerSets defined below should be used by default when the input map is first loaded.

Here’s the beginning of a ControllerSet:

<ControllerSet Name="Global">
<!-- Buttons to transport controls -->
<Controller Type="Switch" Input="MIDI:CC:*:21" Output="META:TRANSPORT_REW"></Controller>

A ControllerSet has a Name value, which is what you use to switch between different ControllerSets using the META:CONTROLLER_SET_SWITCH switch.

The Controller element has the following attributes:

  • Type: this can have a value of Switch (i.e. a toggle, on/off) or Value (i.e. a number between 0 and 127, for continuous changes)
  • Input: this is the input received from the MIDI keyboard to be used as the trigger for a specific control. This can have a value of MIDI:CC:x:y, meaning a MIDI controller, or MIDI:NOTE:x, meaning a specific note, or MIDI:PC:*:x, meaning a MIDI program change.
  • Output: this is the event to be triggered. The values allowed for Output are listed below.

It’s worth dwelling on the Input and Output values for a minute. The Input values are:

  • MIDI:CC:x:y, where x is either a value from 0-127 or an asterisk (*) meaning “any value” to represent the MIDI controller amount, and y is the number of the specific MIDI controller, e.g. 1 for modulation, 91 for reverb, etc.; or
  • MIDI:NOTE:x:y, where x is a velocity value or an asterisk (*) meaning “any velocity”, and y is the MIDI note number (60 = middle C, or C4); or
  • MIDI:PC:*:x, where x is the number of the program change, from 0-127.

The Output values are as follows:

Playback Controls
Type Output Description
Switch META:TRANSPORT_FWD Fast-forward
Switch META:TRANSPORT_RECORD Flexi-time Record
Switch META:TRANSPORT_PLAY_FROM_SEL Play > Play From Selection
Switch META:TRANSPORT_LINE_TO_START Play > Move Playback Line to Start
Switch META:TRANSPORT_LINE_TO_END Play > Move Playback Line to End
Switch META:TRANSPORT_LINE_TO_SEL Play > Move Playback Line to Selection
Switch META:TRANSPORT_GO_TO_LINE Play > Go to Playback Line
Mixer Controls
Type Output Description
Value META:MIXER_STAVE_VOL:num:V2 Volume of staff num
Value META:MIXER_STAVE_PAN:num:V2 Pan position of staff num
Switch META:MIXER_STAVE_SOLO:num:V2 Toggle solo staff num
Switch META:MIXER_STAVE_MUTE:num:V2 Toggle mute staff num
Value META:MIXER_CLICK_VOL Volume of click track
Switch META:MIXER_CLICK_MUTE Toggle mute for click track
Value META:MIXER_VI_VOL:num:V2 Output volume of virtual instrument num
Value META:MIXER_VI_PAN:num:V2 Pan position of virtual instrument num
Value META:MIXER_VI_FX:num:V2 Effect output of virtual instrument num
Switch META:MIXER_VI_SOLO:num:V2 Toggle solo of virtual instrument num
Switch META:MIXER_VI_MUTE:num:V2 Toggle mute of virtual instrument num
Switch META:MIXER_VI_SHOW_UI:num:V2 Show/hide window of virtual instrument num
Value META:MIXER_GROUP_VOL:num:V2 Volume of group fader num
Switch META:MIXER_GROUP_SOLO:num:V2 Toggle solo for group fader num
Switch META:MIXER_GROUP_MUTE:num:V2 Toggle mute for group fader num
Value META:MIXER_MASTER_VOL:num:V2 Master volume fader level
Switch META:MIXER_SHOW Show/hide Mixer window
Switch META:CONTROLLER_SET_SWITCH:set Switch to another ControllerSet in the input map
Type Output Description
Switch META:COMM_KP_0 Keypad 0
Switch META:COMM_KP_1 Keypad 1
Switch META:COMM_KP_2 Keypad 2
Switch META:COMM_KP_3 Keypad 3
Switch META:COMM_KP_4 Keypad 4
Switch META:COMM_KP_5 Keypad 5
Switch META:COMM_KP_6 Keypad 6
Switch META:COMM_KP_7 Keypad 7
Switch META:COMM_KP_8 Keypad 8
Switch META:COMM_KP_9 Keypad 9
Switch META:COMM_KP_PLUS Keypad + (plus)
Switch META:COMM_KP_MINUS Keypad – (minus)
Switch META:COMM_KP_ENTER Keypad Enter
Switch META:COMM_KP_DOT Keypad period (.)
Switch META:COMM_KP_SLASH Keypad slash
Switch META:COMM_KP_ASTERISK Keypad asterisk (*)

In the table above, num refers to the number of the staff, and set (for META:CONTROLLER_SET_SWITCH) refers to the name of another ControllerSet.

And that’s pretty much it. Armed with the above information and a bit of examination of the supplied input maps, you should be able to create your own. If you come up with any input maps you’d like to share, please get in touch!


  1. Jamsire

    Ooooh this was a good one.

  2. Martin Marris

    Hi Daniel, are there values for controlling: (1) the function keys, especially of course F7 through F12, (2) the Shift/Ctrl/Alt and Arrow keys? Thanks!

    1. daniel

      No, the documentation I have provided is complete.

  3. Steve

    Thanks for this – really useful. I’ve been working through it and found a few puzzles while looking at the Sibelius-provided input map files.

    For example, I see lines like:
    <Controller Type="Switch" Input="MIDI:PC:*:1" Output……
    Does this imply I can use MIDI:PC as well as the MIDI:NOTE and MIDI:CC you mentioned??

    I also came across:
    … but I don't see why master volume should have the :o:V2 on the end??

    Lastly, I found:
    <Controller Type="Switch" Input="MIDI:CC:*:113:127"
    … which seems to have too many parameters after MIDI!!

    Any comments on these would be most welcome.

    1. daniel

      Thanks for your comment, Steve. I had omitted to document MIDI:PC:*:x, which is of course for a program change. It is also correct that the MIXER_MASTER_VOL parameter has :V2 on the end, so I’ve corrected that too.

      As for the specific case of MIDI:CC:*:113:127, that looks like an error in the input map to me. Sibelius will simply ignore any extra parameters it doesn’t recognise.

  4. Neil Rolnick

    Looking through this, and wonder if there’s an alternative way to approach it, without making specific map files. Since I use my iPad with Lemur to control things on the computer, is there a way to figure out what the mixer sliders are looking for in term of midi cc #s? If I could see that info, I could easily program the Lemur/iPad to supply whatever midi cc#s are required to control the mixer faders remotely … which is all I’m really interested in.

  5. Reinhard

    Hi Daniel,
    thank you for your tutorial. Recently I tried to connect a infrasonic M49 to my Sibelius 7.5.1 (OSX 10.9.5). The keys work fine, but I have no idea, how to control Sibelius’ transport and mixer volumes. Can you (or anybody else) help? Thank you.

  6. HG

    Hi Daniel and Reinhard!
    I use Sib 7.5 on Mac with an M-Audio
    Oxygen 61 Keyboard.
    The transport-keys and the keypad-keys work fine (I use the transport-keys on the midi-keyboard for transport-remote and the program-change keys for the note-lenghts.
    But the mixer-volumes and faders don’t…
    Has someone an idea, how to manage it?
    If interested, I will send you my input-map for Sibelius, send me a mail, I will return
    the file.

    Thanks for help


  7. Dave

    I’d be very interested in how to map 7.5 to a Yamaha arranger/workstation. I have a PSR-S910, similar to Tyros 3.

    San Antonio, TX

  8. Derek Williams

    Trying to get this going using an Oxygen61 under Edinburgh University networked Windows 7 > Sibelius 7.5 however there is no ‘Input Maps’ folder following the directory path specified. Any updates on how to do this? Just want the keyboard to be able to control the things the manual specifically states it will control out of the box, but doesn’t on Mk 4, i.e. Mixer faders, L/R balance, transport controls etc.

  9. Derek Williams

    This applies to Macs too, even when the Oxygen49/61 input map is specifically chosen in Input Devices.

  10. Keith Nash

    I have purchased an M Audio Code45 and cannot get its transport controls to work with Sibelius 7.5. Have tried programing the pads as per Code45 manual but when touched they merely produce a high note response from the PC. Can anyone help? There is also a huge delay between keying and notation on the staves which is greater than the delay when using other midi keyboards such as a Roland electronic piano. Any suggestions?

  11. Ian Gray

    Thank you for all of this excellent knowledge. I just recently purchased a Novation Impulse 25 MIDI Controller and am using Sibelius 7.5

    Is their someone out their that could help with this process, if I were to copy and paste XML somewhere. This is veryyy over my head and just wish to write music and input it better using this keyboard. It works cool on Logic and Abelton, I understand how automap would need to see DAW for it to work that route. I’m wondering if their is an easier way.

    Is it crazy to be THAT easy by hitting a program/learn button on the keyboard, choose what button on the keyboard I want to program, and then click that function on my computer in Sibelius.

    Anyhelp since I can’t return this controller. Could it be as easy to just use it as MIDI and not USB? HELP!!!!

  12. pablo

    I have a M-audio keystation pro 88 and I would like to assign function to the knobs and faders. Is it possible?

  13. Pablo

    Thanks for the article. It is a little hard for me to understand it for now. I am trying to map the sibelius key pad to the maudio buttons. Is there anyway to do so?

  14. pablo

    Hello I am trying to control sibelius 7.1 with a Maudio Keystation Pro 88. The only functions I can use are the transport Rew-Forw-stop-Play and Rec, Pitch bend, modulation and the foot pedal for sustain. I opened the midi input map on the application support folder but I the number of the controllers switches and buttons does not match with the controller numbers. And besides the functions I mentioned above, the other controls do not work.
    Here is an example

    The STOP controller # on my keyboard is A41
    The PLAY controller # is A42
    Thank you for your help. I am still learning to use the keystation 88 pro

  15. pablo

    Hello I am trying to control sibelius 7.1 with a Maudio Keystation Pro 88. The only functions I can use are the transport Rew-Forw-stop-Play and Rec, Pitch bend, modulation and the foot pedal for sustain. I opened the midi input map on the application support folder but I the number of the controllers switches and buttons does not match with the controller numbers. And besides the functions I mentioned above, the other controls do not work.
    Here is an example

    The STOP controller # on my keyboard is A41
    The PLAY controller # is A42
    Thank you for your help. I am still learning to use the keystation 88 pro

Leave a Comment

Your email address will not be published. Required fields are marked *