The MusicWeaver

for Haiku

(BeOS Release — August 2010 — still available)

(Page last modified 2015 August 31)
(Download links later on in the page)
[example screen clip]

Click here for screen shot examples


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.

Release 2.8.5 for HAIKU — August 2015

This is the fifth Haiku update. See the README included in the package for details.

Release 2.8 for BeOS — rebuild (Oct 2009, released August 2010)

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.

Requirements

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).


Downloads:

For x86 HAIKU only:

Release 2.8.5 — August 2015

Download x86 HAIKU musicweaver (1.4MB)

For the BeOS release 5 and later:

Release 2.8

Download x86 musicweaver August 2010 (1.6MB)

Alert!

If the MusicWeaver crashed under BeOS Personal Edition when you, say, tried to run the Synth Demo, read this.
Download PPC musicweaver March 2007 (850KB)


Author:

                                Pete Goodeve
                                Berkeley, California

                e-mail: pete@GoodeveCa.NET
                         pete.goodeve@computer.org

Back up to my other BeOS/Haiku stuff


Module List

Below is a list of all the modules currently in the 2.8.5 distribution. Please refer to the documentation in the package itself for full descriptions (it would take too much space here to be informative).

Universal Modules:

JoinPaths
BridgeIn
BridgeOut
Switcher
TriggerSwitch
Stepper

MusicWeaver Modules:

AcceptMidi
Analyze
ChanMarker
ChordMarker
ChordPacker
ChordSelect
ClearMarks
Controller
ControlMarker
DeGlitch
Drawbars
IndexRange
Karaoke
KeyMarker
KeyRange
KeySig
KeyTrack
MasterVolume
Metronome
MidiChannel
MidiCounter
MidiDelay
MidiFile
MidiLink
MidiMon
MidiPlay
MsgMarker
Notator
NoteOff
NoteOffType
OneNote
PitchBend
Polyphony
ProduceMidi
Program
RanDelay
RePlay
SetRPN
ShiftMarks
Splitter
Synth
SysExGen
SysExMon
SysReset
TimeSort
Transpose
UseIndex
UseValue
ValueAdjust
ValueRange
VelAdjust
VelMarker

StreamWeaver Modules:

GetFile
PacketMon
PipeStream
ReadFile
StreamView
WriteFile

Midi_Extra Modules:

D_Aftertouch
D_Controller
D_PitchBend
GamePort

Midi_Stream Modules:

MidiStream
StreamMidi