The archives reflect the directory structure of my development environment. With any luck, this will make it easier to sort out the files and plop them into whatever your environment looks like. The makefile and scoptions more or less define my environment hierarchy, but there's a picture of it here. If there are any questions or insights or you just feel the urge to say “Hey!”, there's a mailto: at the bottom of the page.
There is more stuff in the exe directory than is in the table below. Feel free to use stuff, but don't whine if it's broken or
you can't figure it out. And really do not use the RandomChords or Lorenz tools if you are afraid to
lose work or you get annoyed when the Guru visits.
name | size | date | description |
doc | dir | tool documentation | |
exe | dir | compiled tools, ready to use and abuse | |
BPLibs | html | link libraries for general more-or-less useful functions & for implementation of real-time configurable tools | |
essential stuff | 33,960 | various | you will need this stuff: makefile; scoptions; modified toolstart.c, bars.h, debug.c; load of macros; tool id header; common ui structs |
AlternateTuning | 24,105 | 01-Mar-99 | free yourself from the bonds of 12-tone equal temperament! NB: you'll also need the Tonleitermeister accessory |
Tonleitermeister | 29,908 | 01-Mar-99 | accessory to create and edit alternate tunings for AlternateTuning.ptool |
Bypass | 13,854 | 12-Jan-96 | real-time, controllable pipeline tool skipping thing; pipeline processing becomes dynamic |
CCrider | 13,936 | 18-May-99 | drag a pot and generate control change events |
Chopper | 15,033 | 14-Nov-96 | new & improved Subdivider replacement/alternative |
ClipThing | 8559 | 25-Sep-97 | clipboard management accessory: save and load multiple clips. due to b&p limitations, the ultimate goal of retaining their names eluded me. |
Crossfade | 9334 | 12-Nov-96 | a primitive attempt at what was accomplished with the Space tool (see below), but can be useful for fading between patches on two different channels |
Curves | 15,928 | 13-Sep-97 | velocity or control change curve generator for the toolpad |
DensityFilter | 11,672 | 20-Nov-96 | only allow a certain number of some kind of event per time period |
Detectrol | 9798 | 27-Nov-96 | toggle a controller when some event is detected (to switch something else mostly) |
DurationFilter | 12,827 | 03-Sep-97 | filter note events based on their duration (which is one reason NewArticulator came into existence) |
DurRand | 14,133 | 01-Mar-98 | controllable duration randomizer (and it plugs values into event.duration...) |
Keyolator | 14,807 | 18-Nov-96 | map note events to a new key/mode; this is what Todor meant (cf. LockInKey) |
LockInKey | 10,068 | 07-Feb-94 | force notes into a different key; I misunderstood what Todor meant when he told me there was a need for tool like not this, but Keyolator |
MegaBranch | 11,334 | 03-Mar-98 | configurable, controllable alternative/replacement for Branch Out |
MIDIDifferenceFilter | 11,730 | 06-Nov-97 | filter events based on their difference in value from the previous event |
MIDIEventFilter | 12,615 | 31-Mar-99 | filter, uh, MIDI events |
Modomatic | 11,909 | 04-Dec-97 | real-time controllable replacement for Modulator that works correctly from a musical standpoint |
Mono | 5088 | 15-Nov-97 | gate overlapping note events in a clip (toolpad only) |
NewArticulator | 5806 | 12-Nov-96 | replacement for Articulator because the original tool didn't change event.duration |
Neccococo (NewEcho) | 23,280 | 03-Mar-98 | new & improved MIDI echo tool; of course, it's real-time controllable. And, it displays all 3 digits for clock ticks! |
Off2CC | 6448 | 17-Aug-01 | convert note offs to control changes (I think someone asked for a tool to do this?) |
Ornament | 20,345 | 18-Nov-99 | seriously-configurable tool for applying ornamentation snatched from arbitrary clips to notes passing through. Also useful for generating melodic material (cf. melting(Freud) elsewhere on this fine website) |
PC2CC | 6424 | 18-Apr-00 | convert program changes to control changes (another special request, I think) |
PitchClassMask | 13,717 | 12-Nov-96 | filter based on the pitch class of a note (pitch class is sort of like a note is the octave is disregarded) |
Procrastinator | 12,628 | 19-Aug-97 | delay events in the pipeline in deference to other events (pipeline only—sorry Mike, now you can flesh out processlist() ;) |
RandomChords | 21,014 | 26-Feb-95 | real-time random “chord” (actually, sonority) generator; tres fun, but a bit flakey. based initially on code from Computer Music in C by Phil Winsor |
RandomNumbers | 18,790 | 14-Sep-97 | an accessory that intercepts calls to functions->random() to allow using different random number generators or distributions; some code based on Computer Music in C by Phil Winsor and Computer Music by Charles Dodge and Thomas Jerse (eww, Fortran) |
Ranger | 13,208 | 03-Mar-98 | maps input notes to an output range that may be smaller or larger than the input for non-12-tone-equal-tempered craziness, and it's controllable in real-time |
Space | 19,091 | 12-Nov-97 | emulates panning using two MIDI channels, volume (cc7) messages, and fairly decent math; based on code from F. Richard Moore's Elements of Computer Music, and there's room for additions such as changing the angle of the virtual speakers and their distance from the listener if anyone is interested |
StickIt | 18,210 | 02-Sep-97 | virtual joystick that generates control change events |
SumChange | 16,509 | 27-Nov-95 | generates a control change when the sum of received events exceeds a threshold (not terribly useful most of the time) |
TimeWarp | 9522 | 22-Oct-97 | padtool to make a clip fit into a time span. it's just a step to the left... |
UpIsDown | 12,547 | 11-Nov-97 | stupid name, but Invert was taken; this tool does real intervallic inversion and responds to real-time changes in various ways. |
V2CC | 8481 | 04-Jan-98 | converts velocity to a control change message, in case you need to do that. |
wormhole | 6180 | 03-Mar-98 | Originally written by the inimitable Ryan Osman, I couldn't leave well enough alone (it was his fault; he sent the code to me). Wormhole sends/receives messages like Transmitter+Receiver, but is way cooler & tighter, and has 32 channels of sheer enjoyment. |
wye.zip | 838 | 04-Dec-97 | configurable, MIDI-controlled y-valve for your piping pleasure |
AccessSkel.c | 6456 | 04-Mar-99 | skeleton code for an accessory |
aDoSnapshot.c | 551 | 08-Feb-97 | boilerplate code for writing a snapshot of a tool |
aDoSysEx.c | 1394 | 01-Dec-96 | boilerplate code for reading a snapshot of a tool |
aDoSysexMenu.c | 394 | 19-Nov-96 | boilerplate code for handling a tool's sysex menu |
aHiloCCname.c | 2493 | 02-Sep-97 | boilerplate code for a proportional gadget callback that displays control change names |
aSendSecret.c | 559 | 08-Feb-97 | boilerplate code for sending a clandestine Message to a tool->window->UserPort (used to refresh configuration windows, and not all that exciting) |
debug.c | 2055 | 15-Jan-97 | originally from Todor, but I added prototypes and stuff, plus writing to a static RAM disk (which I find more useful than writing to console: especially if a tool crashes) |
toolskel.c | 12,405 | 04-Dec-97 | skeleton code for a tool |
toolstart.c | 1093 | 11-Nov-96 | nominally modified tool startup code (mostly massaged for the compiler's pleasure) |