µ MIDI Controller User Guide
µ MIDI Controller User Guide
What's new in this version?
Registration and Utilities
Using a Tablet and Pen
This guide describes Dramatic Software's µ MIDI Controller Version 2.6. This version was released on February 20, 2006. Please visit the Music Unfolding website for news about updates.
µ MIDI Controller is a software MIDI controller. Although it can be used for other purposes
(musicians being very creative), it was designed to get notes into MIDI enabled devices. This includes hardware and software synthesizers and MIDI capable music notation programs. Our goal is to provide a means for musicians to be able to achieve musical performances using only their computer. We have provided dynamic and control capabilities not usually found in software MIDI controllers. Because of this, it can take a bit of time to master using this software, but we think you’ll find it worth the effort. Try it. We hope you have fun with it.
What's new in this version?
Version 2.6 includes a Universal version for users of Intel-based Macs. There are also new features to the interface. The transparency level can be adjusted on the controller window. In addition, any image can be used as a background in the controller window. A few minor bugs have been fixed.
To install the application, drag to a folder of your choice. "Applications" is a good location. If you are upgrading from a previous version, your current documents should import without any problem. But, please make backups of them before opening them, just to be safe.
Please write down your license number and re-register the new version with your existing code. This will only be required during this transition and future upgrades will automatically transfer your existing license number. Please contact us if you have any questions.
µ MIDI Controller requires Mac OS X Version 10.4 or above.
Tablet features require a tablet device. To get the full range of features, a Wacom Intuos or Intuos2 (or higher) is required.
Requires a MIDI enabled destination, either software or hardware.
µ MIDI Control is based around instrument documents that describe the configuration of the controller. You can define as many controllers as you like. The number of controller windows
that can be open at a time is limited only by your computer's memory. Controller windows look something like this (their appearance is configurable).
The surface of the controller defines the basis for what notes and control parameters get sent to your MIDI device. Key presses on the keyboard actually cause the notes to be sent to your
MIDI device. Which note is sent when a key is pressed is completely configurable. Here is a list of what can be controlled.
• The horizontal position of the mouse controls the base note value.
• The vertical position of the mouse controls the velocity of the notes.
• When a key is depressed and/or the control key is held, vertical mouse motion sends a control parameter. The control parameter is configurable and can be assigned using the instrument configuration panel.
• When the caps lock is on or the option key is depressed, moving the mouse horizontally plays a glissando across the notes defined for the surface.
• Clicking and dragging sends a configurable control parameter. The default parameter is pitch bend.
• Double-clicking the control surface turns the MIDI controller on or off. The "LED" in the upper left shows the state. When the controller is turned off, it will send a note off message for each note that is still playing. When the controller is in tap or pen mode, this feature is deactivated.
• When in tap mode, clicking the control surface sends the note under the cursor.
• The arrow keys can be configured to send MIDI control parameters. Each key can be used to send different parameters or they can be locked in pairs.
• The vertical lines on the control surface denote note transitions. The number of notes in each division is configurable.
Note that these features will be described in greater detail in the section on how to configure them.
We'll give a brief description of the menus to ease navigation discussions in the rest of the document.
The "µ MIDI Controller" menu provides access to the preference pane, as well standard quit and hide commands.
The "File" menu provides the standard set of menu items. You can even print the controller surface if you want. Why you might want to do this, we don't know. But, the general philosophy of the application is to not restrict what doesn't need to be restricted.
The items in the "Edit" menu are not particularly useful for this application. You may find cut/ copy/paste useful at times.
The "Control" menu has four items for setting the state of the active controller.
The "Window" menu is where the action is. The menu item "Instrument Parameters" brings up the configuration panel for the controllers. The "Note Converter" item brings up a small panel that is useful for converting between note names and MIDI note numbers. At the bottom of this menu is a list of open controller windows. The entry with a check beside it is the "active" window. The configuration panel works on the active window only. Any window entry with a disk beside it is in an unsaved state.
The "Help" menu has a single entry. This entry brings up a panel with a button that links you to the Music Unfolding website's online version of this document. The original help system documents have been moved to this document in PDF format.
If the controller window toolbar is hidden, you can click on the button indicated by the red arrow to expose it.
This will place the window into the state in the below.
µ MIDI Controller can be configured to work similar to a split keyboard. But instead of the split being defined by a position on the keyboard, it is possible to configure it to send chords on one channel and single notes on a different channel. One-touch chords and single notes are configured in separate sections of the configuration pane.
The section labeled "A" is the control section for the single note MIDI channel. The sliders are volume, balance, pan, and portamento time respectively as you go down the list. The check boxes at the bottom are portamento and legato controls.
The section labeled "B" is the control section for the chord channel. The control in this case are volume, balance, pan, and chorus depth. The check boxes at the bottom control the hold pedal and legato.
The next section controls connections to MIDI devices. The pop up list allows for selection of the MIDI destination for the controller window. This will be described in detail in the section on connecting MIDI devices. The area labeled "C" is the MIDI channel selector for the single note part of the split. The section labeled "D" is the MIDI channel for the chord split. Note that when the two channels are the same, several of the controls will become disabled. These are the controls that would be redundant. For users of version 1.1, setting both devices will make the controller behave as it did in version 1.1 (except for the addition of the chorus and hold controls).
The section labeled "E" is a basic means of sending program changes to the MIDI device that is connected. The Chord button sends the program change for the chord channel. The Note button sends the control change for the single note channel.
The section labeled "F" provides four control buttons; an On/Off button, a button for setting the controller into pen mode, a button for setting the controller into tap mode, and an all notes off button.
The pen mode button shows the current state of the controller. Pressing the button toggles the state. The tap mode button also shows the current state. If a note appears on the button, then clicking on the control surface will send MIDI notes. The button is an image of a controller surface, so a note on the surface indicates notes can be sent from the surface by tapping.
Pressing the all notes off button will send an all notes off message on both channels. This can be useful for clearing "stuck" notes. Note that some MIDI devices don't respond to the all notes off message. If this is the case, turning the controller off will send a note off for each of the individual notes that the controller considers to be on, such as any note that has had a note on message sent but has yet to send a note off message.
The "G" labels the "LED" that indicates the controller on/off state. Double click anywhere on the controller surface to toggle the on/off state of the controller, or use the on/off button or the
Control menu item.
Go to the "Window" menu and select "Instrument Parameters" menu item. Now click on the window of the controller that you want to configure. The name of this window/controller should appear as the instrument name near the top of the parameters window.
Note that the controller document must always be saved to keep the changes.
Pressing the "Set Window" button sets the location and size of the controller window. (The tool bar state is not part of this configuration. It remembers its last state independently). The notes
per division entry field sets the number of notes between lines on the controller surface. If you don't want lines, simply set this value to 128. For example, if the "Notes per division" entry is set to "3", every third note defined for the controller surface will be followed by a line. The
"Controller Colors" area is used to set color for this particular controller. The default values for these colors can be set in the preferences panel.
This section is followed by four tabs. We will look at the MIDI Parameters tab next.
There are three fields for velocity zones.
• The first is "number," which will be the number of velocity zones as the mouse moves vertically up the control surface.
• Next is "min" for minimum, which is the value for the velocity field that is at the bottom of the controller window.
• The next field is "step," which is the increment for each velocity zone as you move up in the controller window. Please keep in mind, that there are 128 values from 0-127 for this parameter. The maximum that will be sent is 127, so that if this is configured for a value greater than
127, 127 will be sent. Also, remember that a value of "0" is equivalent to a note off message.
It is best to avoid "0" unless you really want this.
• The default configuration has 15 zones with a minimum of 1 and an increment of 9.
The next item to discuss are the MIDI control parameters that are sent when the mouse moves vertically while keys are depressed. When the "split" MIDI channels are different, these messages are only sent to the split for single notes. If you want to apply these effects to chords, you must set the two MIDI channels to be the same.
There are two configurable actions for vertical motion of the mouse, selectable by pop-up menu. The first for when the key itself is depressed and the other for when the "control" key is held while a key is depressed. There is an extensive list of choices for each, including none, aftertouch, mod wheel and breath control. Note: "aftertouch" is actually channel pressure, but is commonly called aftertouch. This action works on every note that is currently sounding for that MIDI channel.
Threshold and step can be set for each configurable action above. Threshold is the amount of additive mouse movement that must occur before a control value is sent. Step is the increment that is sent for every change in the mouse position. For example, if threshold were set to 5 and step to 10, and the mouse were wiggled up and down a total of 5 increments, on the sixth increment, the threshold will be met and 10 will be sent for each increment after it's past the threshold. We recommend that you experiment with these parameters until you get a feel for how it works and how you like it set for each controller.
Remember that different control parameters have different value ranges. Aftertouch takes values from 0-127. Breath control and mod wheel range from 0-16,383 and pitch bend is from
-8192 to 8191.
If the "control" key is depressed, only the parameter set for the "control" key will be sent, as it overrides the other parameter. For example, if "key" is configured for aftertouch and "control" is configured for mod wheel, when the "control" key is depressed, only mod wheel messages will be sent.
The next section is used to configure the control parameters that are sent by mouse/pen actions. Pressure, x tilt, and y tilt are really only useful for tablet devices. Each of these is set using a min and a max value. The control is computed using the algorithm: min + v (max - min), where v is the value of pressure, x tilt, y tilt, or drag.
For the tilts, v is taken to be (tilt + 1) / 2. This means that moving the stylus to a zero angle sends the average of the two values. Setting the angle all the way negative, sends the min value and all the way positive sends the max value.
When a drag or a pressure motion stops, the min value for this control parameter is sent
(once). For tilt angles, the possibilities are little more complex. If the controller is in pen mode before the pen is in proximity of the tablet, then when the pen leaves proximity, the minimum value will be sent. If the controller is not in pen mode when the pen is brought into proximity, the final value sent will be the angle that the pen is at when it leaves the proximity of the tablet.
Remember that bringing a pen into proximity of a tablet will temporarily set the tablet into pen mode (until the pen leaves proximity).
If the device you are using is not pressure sensitive, a mouse click will cause a pressure sensitivity of the maximum value to be sent. The mouse release causes a minimum value to be sent. If you don't want this to happen, remember to set the pressure pop-up to "None."
The "Mouse Parameters" tab provides a means of entering the note values defined horizontally across the control surface. These may be entered in any order desired. There are 128 possible notes for a MIDI controller (0 - 127). The note placement can be random but, the order they appear in the list will be the order they are placed on the control surface.
Everything, except the list of note values, is simply a convenient means of generating the list of note values. Only the list of notes generated is saved with the document.
For the generators, the low note and octave also selects the scale. High note and octave select the limit of the generated notes. The scale types are chromatic, diatonic, pentatonic, whole tone, and octave. In an example of a diatonic scale where the low note is G3 and the high note is G5, this diatonic scale will be generated: G3, A3, B3, C4, D4, B4, F#4, G4, A4, B4, C5, D5,
E5, F#5, G5. The list will show MIDI note numbers, where C4 is 60.
The octaves are numbered from -1 to 9. Middle C is C4.
The "+" or "-" buttons add or delete notes on the note list. Click once on the note list to select a note and click the "-" button to delete that note. Clicking the "+" button appends a zero to the end of the list. Double-click on a note entry to select it for editing. Type in the desired value and press return. Pressing "return" or "tab" will move to the next entry on the list. Pressing shift
"tab" will move to the previous entry in the list. After the desired list is obtained, press the "set" button to make this list active for the controller.
Note: If you want to permanently save it for a controller, you must still choose "Save" from the
The "Keyboard" tab section configures which keys correspond to single note offset. The values you enter for "Note Offsets" are not MIDI note numbers. They are offsets from the note number that the mouse is positioned over on the controller surface. One way to think about this would be to compare it to a trumpet. The location on the controller surface is analogous to the valves depressed and the character pressed (note offset) is the overtone being blown. This is why the pop up list is expressed in terms of intervals.
As in the "Mouse Paramaters" section, the list of pairs (key, note offset) is what is important.
The elements in this section are convenient methods for adding values.
The "key" is the character on the keyboard. The "Note Offset" is the value that will be added to the note value selected by the mouse position. For example, say you have a key note offset pair of "(z, 2)" and the mouse is currently over a note location of "58." Pressing the "z" key will send a note on message for note "60."
Enter a key into the "Character" text field, select the step size desired from the pop-up list, enter the desired octave offset, press the "+" button and the desired key note offset pair will be entered into the table. If you want to enter the offsets by number, choose "other" from the popup list and enter the note offset directly into this field.
Note: Negative values for note offset are legitimate. But remember that legal values are only from 0 to 127. If you have a number less than zero or greater than 127, zero or 127 will be sent in their place.
This table can be edited directly as in the "Mouse Control" section. Allowed character values are from the standard set of characters, including shifted values, but not "option" characters.
The "set" button must be pressed to make the list active. The document must be saved to permanently retain the entered values.
To the right of this area is a section to configure the MIDI control messages that are sent by the arrow keys. Each of the four arrow keys can be configured separately or in pairs. The check box marked B in the figure, couples the left and right arrows together. The check box marked A causes the MIDI Parameter value to snap back to the base value defined by the left entry box.
The right entry box is the increment value. The MIDI parameter value will be incremented by this much for each keypress. Holding the key down causes a succession of increments to be sent. Note that either value can be set to a negative value.
Chords differ from the single note entries described above. Chords are not offsets from the base note defined by the mouse position. The list of notes in the "Note List" are absolute MIDI note numbers. In the example shown above, when a 'z' is pressed, a chord consisting of the notes 48, 52, 55, and 59 is sent regardless of the position of the mouse. The mouse position still does provide the velocity for the notes in the chord. Also note that unless the two MIDI channels are configured to be the same, the MIDI parameters will not be sent for the chord channel. This is done to allow the effects to be played on the lead/melodic line while keeping the chords "pure". If you want to use aftertouch, etc. on the chords, both MIDI channels must be configured to match.
As in the "Mouse Parameters" and "Keyboard" sections, the list of pairs (key, note list) is what is important. The elements in this section are convenient methods for adding values. Once a chord is defined in the table, it can be directly edited there.
The "key" is the character on the keyboard that will trigger the chord. "Root" is the root note of the chord. "Octave" is the octave for the root note of the chord. The chord pop-up button allows you to chose from an extensive list of defined chord types.
Enter a key into the "Character" text field, select the "Root" note for the chord from the pop-up list and set the octave, select the desired chord type from the pop-up, press the "+" button and the desired key-chord pair will be entered into the table.
To delete a defined chord from the table, select the chord to be removed by single-clicking on the table, and then press the "-" button.
The table can be edited directly. Allowed character values are from the standard set of characters, including shifted values, but not "option" characters.
The "set" button must be pressed to make the list active. The document must be saved to permanently retain the entered values.
Note: Remember that the legal values for notes are from 0 to 127 and octaves range from -1 to
9, with middle C being C4 and note number 60.
Note: The result of sending multiple note on messages as well as nested or overlapping note on note off messages is up to the MIDI device that receives the messages.
Note: It is legal to define a character in both the single note section and the chord section.
µ MIDI Controller uses CoreMIDI to connect to MIDI devices. CoreMIDI is a bundled part of OS
X. You don't need to do anything to enable CoreMIDI. Since there is only one MIDI system to worry about and it is built into the system, it is easier to work with than past MIDI configurations. Still, it can be confusing to configure all of the various systems and devices. You may need to consult the manual for whatever MIDI device that you are trying to connect with µ MIDI
There are two ways for MIDI sources like µ MIDI Controller to connect to other MIDI devices
(destinations). µ MIDI Controller provides both means. It should therefore be possible to connect to any MIDI destination.
The first method can be used when the destination device, such as a synthesizer or notation program, presents itself to CoreMIDI as a destination (called a virtual destination). In this case, the destination will be shown in the pop-up list pointed to by the red arrow in the image above.
The pop-up list shows a list of destinations. Many software MIDI devices don't present themselves as virtual destinations. But, this is probably the method you will need to use to connect to external MIDI hardware. MIDI interface hardware will appear as destinations in this list. An example of a program that does present itself in this way is Plogue Bidule.
The second method of connecting involves configuring µ MIDI Controller to work as a virtual
source. The first step in doing this is to decide how you want µ MIDI Controller to present itself as a source. It can either present itself as one source for all documents or as a separate source for each controller window. The choice is controlled by the "Create a virtual source per document" checkbox in the "Preferences" panel. Changing this preference will not take effect until you quit from µ MIDI Controller and relaunch it.
The second method must be used for MIDI destinations that don't present themselves as virtual destinations. Note that when using this second method, it is likely that you will need to launch µ MIDI Controller (if you select a destination per controller) and have opened whichever controllers you want to use before launching the destination program. CoreMIDI does not require this. In fact, whenever a new source or destination comes online, CoreMIDI sends a notification to all attached devices. Several MIDI devices that are currently available don't take advantage of these notifications. It should be expected that more will do so in the future. Both
Plogue Bidule and µ MIDI Controller use these notifications to dynamically provide for new connections as they come online.
Now we’ll explain how to connect to MIDI destinations which do not show themselves as destinations to CoreAudio, using Propellerhead’s Reason as an example. Remember to launch µ
MIDI Controller first and open the controller window you want to use. Then, go to the MIDI destination pop-up on the MU MIDI Controller window toolbar. Select "Virtual source.”
Launch Reason and choose the preferences menu item. Then choose "Advanced MIDI" setup.
Select the virtual source that you want to connect to. In Reason, you can select a different source for each of the four available MIDI busses. You can then assign different MIDI channels to devices in the Reason rack as you would for any other MIDI source. When working with programs like Reason, it is probably best to use the "one source" configuration described above.
Between the two methods we discussed, you should be able to connect to any CoreMIDI enabled device.
Registration and Utilities
The registration tab is part of the user preferences panel. To get to the user registration panel, go to the µ MIDI Controller menu and select "Preferences" from the menu.
There are two tabs under "Preferences." The first tab "Preferences" sets default colors for background and grid lines for controller surfaces. New instrument windows will have these colors for backgrounds and grid lines.
You can also select whether a new document will be created at program launch.
The "Create a virtual source per document" checkbox configures how µ MIDI Controller presents itself as a Virtual source. If this checkbox is selected, each document window will appear as a separate source to destinations. If it is not selected (this is the default), there will be one source for all documents.
Under the tab, "Registration", it shows "demo" when the program is in demo-mode. It also includes the date when the demo was started. If the program is registered, it will show "registered", along with the date of registration. To register, enter your registration number in the text field and enter with "enter license" button. If you need to register your copy of µ MIDI Controller, you may go directly to MusicUnfolding.com to register by pressing the "Music Unfolding"
There is also a utility panel for converting standard note names to MIDI note numbers. This utility is available under the "Window" menu.
You can enter note name values using the pop-up menu and octave fields to enter a note name. Pressing <return> will cause the MIDI note number to be displayed. The panel works in reverse as well.
Using a Tablet and Pen
To put the controller in pen mode, click on the Pen/Keyboard button in the toolbar. The button is in the section labeled F in the picture. The image for the button shows the current state of
the controller. You can also use the menu item in the Control menu. If the controller is not in pen mode, bringing a tablet device that supports pressure into proximity of the tablet will flip the controller into pen mode. If you also place the tablet in tap mode, then Pen click (or tap) to
play is enabled. Clicking on the controller surface will play the note under the cursor.
When using a pen, three new means are available for sending MIDI Control parameters:
• X-axis tilt angle
• Y-axis tilt angle
The control value is computed using the algorithm: min + v (max - min), where v is the value of pressure, x tilt, y tilt, or drag.
For the tilts, v is taken to be (tilt + 1) / 2. This means that moving the stylus to a zero angle sends the average of the two values. Setting the angle all the way negative, sends the min value and all the way positive sends the max value. You can set the positive direction using the tilt angle direction check boxes.
Basically, you have to try this. This stuff is FUN!
You can use the Wacom Tablet application to configure the tablet for easier use of µ MIDI Controller. First launch µ MIDI Controller. Then go to the Wacom Tablet application and click on the
Add Application To List button. Choose µ MIDI Controller from the running applications list and choose the tools you want to configure from the tools list. We'll describe configuring the stylus here. Click on the µ MIDI Controller icon in the application windows. Select the stylus to configure from the tools list. Select the Mapping/Speed tab. Select Pen Mode. Now click on the advanced mapping button. There are a variety of means available to set up the mapping of tablet to controller surface. The easiest is probably to click the Set Display button and then choose the "Click to define" method.
Use the Tilt tab to configure the sensitivity of the tilt angle control.
Use the Tip Feel tab to configure the pressure sensitivity control.
Use the Tool Buttons tab to configure the pen. Try setting the Eraser to send the modifier option and the second button to send the modifier control. Set the first button to send a click.
Hold the stylus off of the tablet. When the stylus touches the tablet, you are sending a mouse click. When you move on the tablet surface, you are sending a mouse drag. The angle controls work when the stylus is within proximity of surface, even if not touching it.
Try setting up the menu strip functions to send character presses that map to chords. You can do this under the Tablet Buttons tab in the Wacom Application.
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project