Automatic Knob Twiddler
© 2002, Russell Borogove
General Description
MIDIBounce is an automatic MIDI controller driver. It uses 8 LFOs to drive its controllers; the user can select the MIDI device, MIDI channel, controller IDs, and MIDI value ranges to use.
Most of MIDIBounce's user interface is self-explanatory.
MIDI-out capable devices in the system appear in the large box in the upper left; one device at a time may be selected, and the channel number to use selected from 1-16. The Active light blinks when MIDIBounce is sending MIDI data to an output device.
Each of the 8 independent LFOs has all its controls on a single line. A checkbox at the left enables or disables the LFO. The controller number to send on is selected from a list box; both controller numbers and their corresponding standard assignment names are given, so feel free to mock the MMA's lack of foresight and imagination in defining the controllers. The waveform used by the LFO may be selected from the usual suspects. "Noise" outputs continuously differing random values, while "Random" does a sample- and-hold at the specified tempo.
Tempo is specified in beats (defined as half LFO wave cycles) per minute. Minimum and maximum set the range for the controller values output.
MIDIBounce automatically saves its state on shutdown and reloads it on the next startup via a file named midibounce.ini. It's worth noting that the settings file is stored in the folder whence MIDIBounce is launched; if you use shortcuts in different folders to launch it, each launch point should keep its own settings. Future versions of MIDIBounce should become more conventional in their settings management.
Development Notes, Known Bugs, and Limitations:
It seems to work with MIDI Yoke and Audiomulch. Beyond that, who knows? I have had one report of success using Hubi's MIDI Loopback.
MIDIBounce tries to send MIDI updates about every 60 milliseconds (16.7 times per second). Each update can consist of 8 controller updates, each of which is 3 MIDI bytes, for a modest total of 400 bytes per second. This is substantially less than the bandwidth of a hardware MIDI channel (3125 bytes/sec).
Future updates may include MIDI start/stop capability in order to sync knob action with your sequencer.
Revision History:
v0.5 - Initial Release.
v0.6 - Added "noise" and "random" LFO waves, changed
freq/tempo control to BPM from CHz (what was I thinking?).
Terms:
MIDIBounce 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.
This software may contain bugs, errors and other problems that could cause system or other failures and data loss. Consequently, it is provided to you as-is, and I disclaim any warranty or liability obligations of any kind.
If you wish to redistribute the software, please distribute it in its packaged .zip-file form, or another archive format, along with this documentation.
You have the right to decompile, disassemble, reverse-engineer, and modify the software for personal research and for fair-use purposes such as adapting the software for interoperation with other systems. I don't believe that I can legally take this right away from you, though some large companies might try. If you'd like access to the source code, it's possible we can work something out; drop me a line.
You do not have the right to reverse-engineer or modify the program in order to violate my copyright on the software, e.g. to distribute a version with "the serial numbers filed off".
Legals:
MIDIBounce is copyright © 2001-2002 Russell Borogove.
http://www.tinygod.com/
VST™ is a trademark of Steinberg Soft- und Hardware GmbH.
http://www.steinberg.net/
AudioMulch is copyright ©1997-2002 Ross Bencina
http://www.audiomulch.com/