The MusicWeaver is a real-time MIDI data stream manipulator (call it "MIDI Morphing!"), using an interlinked net of small processing modules. You build your desired network graphically as a 'flow-diagram' through simple drag-and-drop operations. Do simple things like note transposition or keyboard splits, or more complex operations such as performing different transformations according to parameters of individual MIDI events — such as the velocity of notes — or at specific points in a sequence. The range of modules is always expanding, and so are the possibilities.
Because the 'diagram' that determines the flow of MIDI data is two-dimensional, you can have many streams, branching and merging as needed. Each section of each path can apply its own processing to the notes and so on flowing through it. You can create several streams from a single input (maybe have some handle different segments of the keyboard range) or perhaps provide others from prerecorded sequences — triggered by particular input events. Much of the capability of the MusicWeaver modules is based on the ability to 'mark' individual events in a stream, and direct them to separate streams depending on which marks are set.
The suite is a particular application of the general 'Weaver' scheme, which is unique in its ability to handle — intermixed but distinguished — multiple types of data simultaneously. Any data can flow along any path in a Weaver diagram, but will be processed only by those elements that recognize it, and passed unchanged by others.
This means, for instance, that in addition to MIDI data the MusicWeaver has the notion of 'Director' events. Some of these can be used to alter paths of data flow in your diagram; others can trigger variable MIDI events to affect pitch bend or controller levels. Director events can be generated from selected MIDI events (e.g. program change) or from external inputs such as a joystick.
Also included in the distribution is the suite of "StreamWeaver" modules. These provide for processing text and generic binary data streams. One module in particular, "PipeStream", will run any shell command on input piped from one Weaver path, and send its output on another. For instance, in conjunction with some provided interface modules, this would let you use a Ruby or Python script to do custom processing on MIDI.
This is the fifth Haiku update. See the README included in the package for details.
This was an interim upgrade so that the BeOS version would at least run on Haiku as well. The release 2.8 modules were rebuilt to remove dependencies on BeOS R4 conventions, but the code was not changed in any way. It runs on BeOS exactly like the previous release, but for Haiku is now superseded by the above. (It is missing the newest modules in the above of course.)
The complete list of modules is at the end of this page in the Module List section. Earlier release descriptions are collected in the History page.
Release 2.8.5 been built only under Haiku, so it will no longer run in BeOS. It should run under any recent version of Haiku. The earlier final BeOS version remains available, but is unlikely to be developed further. Even a (BeBox) PPC version is still available(!), but hasn't been updated in years.
The main program and most of the modules should work under any suitable system, but to make the most of MIDI you will need a suitable MIDI interface and other relevant hardware such as a Synth and Keyboard Controller.
The packages are available for downloading as zipped archives (links below — choose the one appropriate to your system); these should unpack the contents into a single folder with icons and attributes attached (but see the README regarding Configuration-Diagram file icons).
Pete Goodeve Berkeley, California e-mail: pete@GoodeveCa.NET email@example.com