MIDI-Mouse Instructions
Introduction
MIDI-Mouse has two windows, the first which can be used to generate up
to four MIDI continuous controller (CC) messages calculated from the
mouse position and the second which can generate up to another four
MIDI CC messages calculated from two selectable externally-generated
CC messages. In addition, it is possible to assign MIDI note messages to
most of the keys on the keyboard. Typical use would be for the control
of soft-synths such as those in ReBirth and Reason from Propellerheads,
but it can be used with any program or external MIDI device that responds
to CC messages. The program requires OMS version 2.2 or greater, and has
been successfully used with MacOS versions 7.6 to 9.1.
Starting up
Running the program for the first time will open first a splash window
while OMS is initialised and the preferences file is read (if present).
Assuming all goes well, the following dialog window will open:
The pop-up menus are for the selection of the input and output ports
that the program will use. MIDI messages arriving on the two input
ports can be mixed to the output A port, along with the CC messages
generated by clicking in the control square. The CC messages from the
input transformer can be sent either to the output A or output B port.
Set Input B to be the same port as Input A to disable it, and likewise
Output B will be ignored if it is the same as Output A. After selecting
the various ports, press Ok to continue to the main program.
TIP: the port selection dialog at startup can be disabled in
the Preferences dialog.
The MIDI-Mouse window
This window always remains open, and represents the control centre for
generating CC messages by clicking with the mouse in the control square.
At the top of the window there are "LED" indicators which flash to indicate
MIDI activity. The Tx LED turns green whenever the program is sending MIDI
messages. The Rx LED flashes green whenever MIDI data is being received on
Input A (in case of too much data it may flash red, indicating data loss
due to buffer overflow but this should not happen in normal use). The Rx B
LED flashes green whenever MIDI data is being received on Input B. If
Inputs A and B are the same port then the RX B LED is greyed out.
Next to the Rx B LED is the Input Mix popup menu which selects which input
data to mix to the Output A MIDI Port. If set to "Mix Off" then no data
from either input will be sent, but it will still be possible to see if
input messages are being received by watching the RX LED's.
TIP: since MIDI feedback can cause system instability, in cases where
such problems can occur - for example sending CC messages to a sequencer
via IAC with MIDI Thru enabled - check that the Rx LED's do not echo the
Tx LED before enabling the Mix option.
Below the MIDI LED's is the control square. Click in this square to
generate CC messages according to the patch settings (see
below). Two modes of operation are possible, selectable in the preferences
dialog:
(a) Click and hold
Click in the control square, holding down the mouse button and moving the
mouse to generate CC messages. In this mode the control square turns light
blue(*) when active.
(b) Click on / Click off
Click once on the control square, the control square turns light orange(*),
and move the mouse to generate CC messages. Click again in any of the
windows or on the menu bar to stop again.
(*) these are the default colours, but they can be changed in the
Preferences dialog.
New in version 1.0.1
A MIDI command - either a note or a CC message can now be generated on
clicking/releasing on the control square. This can be used, for example,
to automatically activate the effect to be controlled just by clicking
in the control square and then have it automatically switch off again.
The options are (in the Preferences dialog):
Off: No message sent
Note Note on/off sent when control square is activated and again when
it is deactivated
CC CC with value of 127 sent when control square is activated, and
then with value of 0 when it is deactivated
The channel and note/CC number can be chosen as desired.
To the right of the control square are four bars used to graphically
represent the CC output values. Bars corresponding to disabled CC output
channels will be greyed out.
Below the control square are the patch selector and the patch name. The
patch defines how the CC messages are generated from the mouse position
and is described in more detail below. There are ten patches available.
Click on the patch number or press the corresponding number key on the
keyboard (press '0' for patch 10) to change the patch. Note that the
patch cannot be changed while the control square is active, and pressing
a key in this situation will only cause the program to signal the error
with a beep.
Patches
Each patch has a name which can be edited (up to 25 characters). For each patch
there are four CC output channels (A, B, C, and D). For each channel it is
necessary to set the following parameters:
(a) Algorithm
This is a popup menu which sets how the output value follows the mouse position.
X represents the horizontal position and Y the vertical position. Both X
and Y have a range of 0 - 127. The available settings are:
Setting CC value sent (CC range 0 - 127)
Off No CC output
X X value
Y Y value
X + Y X + Y
X * Y X x Y
! X 127 - X
! Y 127 - Y
! (X+Y) 127 - (X + Y)
! (X*Y) 127 - (X x Y)
X - Y X - Y
Y - X Y - X
(b) Multiplier
This is a popup menu which allows the result of the algorithm to be
scaled (note that the values sent are always limited to the legal
range of 0 - 127).
(c) MIDI Channel
The calculated CC value is sent with this MIDI channel.
(d) CC number
The calculated CC value is sent as this MIDI controller. As an example, 1
corresponds to the modulation wheel on a typical MIDI keyboard.
TIP: holding the Command (Apple) key down and clicking on this text will bring
up a popup menu which can be set up (see the CC Name Mapping settings) with
the names of the controllers for easier programming.
(e) Zero reference
The CC values are calculated as the difference between the control square
and centre and the click point (so they are -63 at the bottom/left of the
square, zero at the centre, and +63 at the top/right). After applying the
algorithm and then the multiplier, this value is then added to the zero
reference value before limiting the output to the allowed range of 0 - 127.
The zero reference allows the centre point of the output values to be
shifted. Use 64 as the default value.
If this all sounds too complicated, just experiment with the patch files
provided with the program. Here are some simple examples:
Follow horizontal mouse position
Algorithm X
Multiplier * 1
Zero Ref 64
Follow vertical mouse position, but reversed (127 -> 0 instead of 0 -> 127)
Algorithm ! Y
Multiplier * 1
Zero Ref 64
Follow horizontal mouse position, but with a range of 0 - 64 (ie centred on 32)
Algorithm X
Multiplier * 0.5
Zero Ref 32
Cross-fade two faders, following the vertical mouse position
(with Fader A responding to CC 12 on MIDI channel 1, and Fader B
responding to CC 11 on MIDI channel 2)
Fader A Fader B
Algorithm Y Algorithm ! Y
Multiplier * 1 Multiplier * 1
MIDI Channel 1 MIDI Channel 2
CC Number 12 CC Number 11
Zero Ref 64 Zero Ref 64
The final control to note is the window mode selector (a small triangle).
Clicking on this triangle changes how much of the window is visible. Four
possible settings are available, in the sequence:
The Input Transformer window
The Input Transformer works on exactly the same principle as the MIDI-Mouse
window, with the only difference that the X and Y values are taken from
externally-generated MIDI CC messages. The X LED at the top of the window
will flash yellow when receiving the correct MIDI CC message, set by the
two edit boxes directly below it which are used to set the incoming MIDI
channel and CC number. As an extra option, set the CC number to -1 to
respond to pitch bend information (the box will be highlighted with a
light blue colour when set to respond to pitch bend). To the right of
the X input channel settings are the Y LED and the corresponding two edit
boxes for the Y input.
TIP: the CC Name Mapping popup menu is available also for the X and Y
input CC number edit boxes.
To the right of the Y LED is the popup menu which selects the output port
for the CC messages generated by the Input Transformer, and below this are
four horizontal bars to represent the CC output values (greyed out if the
corresponding channels are disabled).
Points to note
The Input Transformer X and Y CC messages can come from either (or
both) of the two available input ports.
The Input Transformer is only active when the Input Transformer window is
open.
If input mixing for the corresponding input port(s) is active, then the X and
Y CC messages will be passed directly to the output if the Input Transformer
window is closed.
The patch values are interchangeable with the MIDI-Mouse window, and can
be copied and pasted between the two windows.
Click on the patch select number or hold down the Control key and press the
corresponding number key to change the selected patch.
The Input Transformer can be active while using the MIDI-Mouse window, for
a total of eight possible CC channels active simultaneously.
The window mode selector is present in this window as well. Four possible
settings are available, in the sequence:
The CC Names mapping dialog
This dialog allows the names used in the popup menu accessible by
command-clicking the CC number edit boxes in the MIDI-Mouse and Input
Transformer windows. The number to the left of each box is the CC number
to which the text will be associated. Name length is limited to 25
characters. Click on the Save button to save all the names to a file. Click
on the Load button to reload the names. Two CC Names map files are provided
with the program in the "MIDI-Mouse CC maps" folder:
Empty CC Map contains the basic CC NNN names (for resetting
without quitting)
Standard MIDI CC Map contains the names of the standard MIDI
control change names
The Keyboard Note mapping dialog
In order to generate MIDI note messages from the computer keyboard it is
necessary to enable the MIDI notes in the keyboard note mapping dialog.
This dialog has four "pages", selected using the radio buttons at the top
of the dialog window. The left three buttons choose the pages for the
various key characters, divided into lower case (a - z), upper case (A -
Z), and other characters. An example is shown below:
Note key mapping
For each keyboard character there are five parameters to set:
(a) Enable / velocity mode
This is a popup menu with the following options:
Off: key disabled
Fixed: pressing the key will generate a MIDI note on/off message
with the fixed velocity setting
CC A - H: pressing the key will generate a MIDI note on/off message
with a velocity value determined by the last output value of the selected
CC output channel (so that the velocity can follow the mouse position). In
the case of the output channel not being active, the fixed velocity setting
is used.
(b) Note off mode
This is a popup menu with two options:
Immediate: in this mode the note off message is sent immediately after the note on
message. Use this mode for fastest response when the note length is not significant - eg drum notes
Key up: in this mode, the note off message is sent only when the key is released.
Use this for notes with sustain
(c) MIDI channel
Use this edit box to set the MIDI channel of the note to be sent.
(d) Note number
Use this edit box to set the note number to be sent. Hold down the Command
key and click on this box to select the note using the Note Names mapping
menu (see next section)
(e) Fixed velocity
Use this edit box to set the note velocity to be used for the Fixed
velocity note mode
The note key mapping can be loaded and saved using the Load Notes and
Save Notes buttons in the dialog window. One file contains the settings
for all the available keys, regardless of which of the three key pages is
selected. Note that the key map file does NOT contain the note names
mapping information
Note names mapping
To make the note selection easier it is possible to set names for the note
numbers, in the same way as for the CC names. Clicking on the Note Names
radio button at the right of the dialog window selects the note names
mapping page of the dialog:
In this page it is possible to set a name (up to 25 characters) for each
note name. These names can be recalled as a popup menu by
commmand-clicking on the note number edit boxes in the note key mapping
pages. The names map can be loaded or saved using the Load and Save
buttons. Note that the names map file does NOT contain the information
from the note key mapping pages
Note that the position of the keys on the keyboard is not taken into account,
only the character generated when the key is pressed, so the supplied maps
may need to be adjusted according to the keyboard layout.
The Preferences dialog
At the top left of the dialog there are popup menus for changing the input
and output ports without quitting the program. At the top right, there are
buttons for setting the mouse control mode for the MIDI-Mouse window, and for
disabling or enabling the port selection dialog when starting up the program.
To the bottom left are check boxes for setting which MIDI messages are
passed on to the output from the mix inputs. If the box is not checked, the
corresponding MIDI messages are blocked. To the bottom right are four
coloured squares which show the present colours used for the window
backgrounds and for the active modes of the control square. If the colour
picker extension is available in the system folder, clicking on the
coloured square will allow these colours to be changed. All preferences are
stored in the MIDI-Mouse Prefs file which is saved in the same folder as the
MIDI-Mouse application.
MIDI-Mouse menus
About MIDI-Mouse... brings up a message showing the version number
of the program, a reminder of the web site address, and how much memory is
available to the program.
Open... will open the standard file dialog for loading a patches
file. This can be used to load patches both for the MIDI-Mouse window and
the Input Transformer window. When both windows are open, the patches will
be loaded for the frontmost window, which will be highlighted with a red
outline around the patch selector and patch name area.
Close is available when either the Input Transformer or
MIDI Analyser windows are open and frontmost, and simply closes them.
Save... saves a patch file containing the ten patches of
either the MIDI-Mouse window or the Input Transformer window. When both
windows are open, the patches are saved for the frontmost window, which
will be highlighted with a blue outline around the patch selector and
patch name area. The patch files are identical in format for both
MIDI-Mouse and Input Transformer windows, and so are interchangeable.
Quit use Quit to exit from the program.
Undo is not implemented and will always be dimmed.
Cut is available only when text selections are active and
performs the usual text cutting operation.
Copy has two functions. When text selections are active
then it performs the usual text copy operation. When no text boxes are
active, however, it can be used to copy the selected patch in either the
MIDI-Mouse or Input Transformer windows (if both are open, the patch is
copied from the frontmost window). When Copy is selected for a patch, a
blue outline rectangle around the patch selector and patch name area is
flashed for a moment to indicate the copy source.
Paste has two functions. When text selections are
active then it performs the usual text paste operation. When no text
boxes are active, however, it can be used to paste a previously-copied
patch to either the MIDI-Mouse or Input Transformer windows (if both are
open, the patch is pasted to the frontmost window). When Paste is selected
for a patch, a red outline rectangle around the patch selector and patch
name area is flashed for a moment to indicate the paste destination.
Clear has two functions. When text selections are
active then it performs the usual text clear operation. When no text
boxes are active, however, it can be used to reset the selected patch
in either the MIDI-Mouse or Input Transformer windows (if both are
open, the patch is pasted to the frontmost window). When Clear is selected
for a patch, a red outline rectangle around the patch selector and patch
name area is used to indicate the patch which will be cleared, and a
dialog is opened so that the clear operation can be confirmed or cancelled.
Preferences... opens the Preferences dialog.
OMS Version... displays a message containing various
details of the OMS drivers installed.
OMS Studio Setup... opens the OMS Studio Setup program (*).
OMS MIDI Setup... opens the OMS MIDI Setup window (*).
MIDI Analyser opens a window with a rudimentary graphical and
hexadecimal display of the MIDI data being received, or brings it to the
front if it was already open. If it isn't obvious how it works and what it is
doing then it won't be any use me explaining it anyway :)
* it is quite likely that the program doesn't respond correctly to all the
possible changes that can be made with these two options - you have been
warned...
MIDI-Mouse brings the MIDI-Mouse window to the front.
Input Transformer opens the Input Transformer window if it
is not open, or brings it to the front if it was already open.
MIDI CC Names Mapping... opens the CC names dialog.
MIDI Note Key Mapping... opens the Keyboard Note mapping dialog.
All Notes Off sends note off messages for all presently
defined key notes. This may be necessary in cases in which notes remain on
after releasing the keys, for example if the Caps Lock key is pressed while
other keys are held down.