Controlling Sibelius from your MIDI keyboard Posted: 08 Oct 2010 03:41 PM PDT 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:
10001 Axiom 49+61 Basic (non-HyperControl) mapping for Axiom 49 or 61 using its default Program Axiom (49|61) StaveSettings
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: 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. 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.; and MIDI:NOTE:x, where x is the MIDI note number (60 = middle C, or C4) The Output values are as follows: Playback Controls Type Output Description Switch META:TRANSPORT_START Play Switch META:TRANSPORT_STOP Stop Switch META:TRANSPORT_REW Rewind Switch META:TRANSPORT_FWD Fast-forward Switch META:TRANSPORT_RECORD Flexi-time Record Switch META:TRANSPORT_REPLAY Play > Replay Switch META:TRANSPORT_PLAY_FROM_SEL Play > Play From Selection Switch META:TRANSPORT_ALL_NOTES_OFF Play > All Notes Off 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 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 Keypad 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!