Midi Tab
Midi Tab
MIDITab v0.3
(c) 2002, Russell Borogove
mailto:[email protected]
=============================================================================
General Description:
MIDITab is an interface application between Wacom and compatible graphics
tablets, and MIDI out devices in the system. A stylus device moved over
the tablet will generate corresponding MIDI controller messages. Each
stylus or mouse device usable with the tablet can drive multiple MIDI
controllers -- up to twelve different "logical controllers" each operating
from 2 to as many as, theoretically, 8 different controls.
MIDI out devices in the system are selected from a list. One device at a
time may be selected, and one MIDI channel on that device will be used
according to the MIDI channel selector. The MIDI rate selector limits the
update rate at which MIDITab will send data; reduce this if its MIDI output
is swamping a target device.
To explain MIDITab's "control set" system, some background is required:
Wacom-compatible tablets can support stylus devices, which may be doubleended ("tip" and "eraser"), and puck or mouse devices. These devices may
have buttons and several (up to 8) axes of control: X, Y, and Z being the
basic positional axes; two pressure axes (one corresponding to how hard
the tip or eraser is being pressed against the tablet); and three angular
axes defining the orientation of the device in space. In practice, most
hardware uses only a subset of these axes, typically (X, Y, tip pressure)
plus possibly (azimuth/yaw angle, tilt/pitch angle). As far as the software
is concerned, the tip and eraser ends of a standard stylus are two separate
devices. Finally, some tablet hardware can support two devices in use
simultaneously.
MIDITab represents the MIDI controller settings corresponding to each
stylus or mouse device as a pair of "control sets", one basic and one
alternate. When the stylus is reversed from tip to eraser end, MIDITab
automatically switches to the corresponding control set, allowing a
performer to easily control twice as many parameters as they would
otherwise. The buttons on the mouse or stylus are used to switch between
the basic and the alternate control set for that device, which redoubles
the parameters available. Finally, if a second stylus or puck is brought
into use with a tablet which supports multiple devices, the second
device has its own pair of control sets. Thus MIDITab can handle up to
twelve control sets:
Tip
1, Alt Tip
1, Tip
2, Alt Tip
2,
Eraser 1, Alt Eraser 1, Eraser 2, Alt Eraser 2,
Mouse 1, Alt Mouse 1, Mouse 2, Alt Mouse 2
(In practice, the names for the control sets are derived from the
tablet software drivers, and so will be (a) different from this and
(b) stupid historical misnomers.)
Each control set defines, for each of 8 possibly-supported axes, a MIDI
controller number, a minimum and maximum MIDI value, and a granularity
tablet, it will struggle gamely for a short time, then give up and selfdestruct, yielding the tablet to whatever other application thinks it's
so damned important that it has to have the tablet all to itself.
=============================================================================
Future Enhancements
App should offer to save before quitting if settings have changed.
Currently, all MIDI controllers are considered to be 7-bit. I may add
14-bit support in the future.
Dual-tracking seems a bit flakey, I hope to investigate and improve the
implementation.
Add an option to convert stylus tilt-and-angle data to a second cartesian
X-Y pair, thereby eliminating the jump from angle 1.0 to 0.0.
Convert this doc to attractive HTML.
Create attractive icons.
=============================================================================
Revision History:
v0.1 - Initial prototype
This version supports only a single controller set, and was
released only as a proof of concept.
v0.2 - Multiple controller sets
12 independent controller sets supported.
MIDI rate limitation implemented.
MIDI granularity implemented.
Pitch bend and channel aftertouch added to controller options.
Tablet megalomania contention management implemented.
v0.3 - Load-save and dual-tracking functionality
Added load and save features
Rewrote half the internals to better support dual-device-trackin
g
mode, probably introducing many bugs in the process
Fixed a crash which occurred under moderate-to-heavy CPU load
Added "none" controller assignment option (default mapping for
obscure axes)
Shuffled default controller assignments
Default button response is now "shift", not "lock"
Disabled auto-switch of edit set
=============================================================================
Terms:
MIDITab is free to take and use as you will. If you like it, or if you
don't like it, please drop me an e-mail telling me so.
If you make music with it, and make that music available to others, tell
me that the music is available. That means if you sell CDs of your stuff,
you tell me how to buy a CD; if you let people download MP3s for free,
tell me where I can do the same.