The MusicWeaver for Haiku

A Simple Configuration

Here is a fairly basic (but useful) configuration, that is simple enough to tour in some detail. It assumes a keyboard/synth connected to USB-MIDI, being used to drive the internal software synth.

The diagram window toward top left shows all the elements in the configuration and their connections. Each has its associated control panel open (indicated by the red outlines), and these have been arranged around the diagram in roughly the order of connection.

Second from left in the diagram — with its control panel labelled "MIDI I/O" — is the MidiLink element that makes the connection to external MIDI. On its left is a Program element where the patch to be used by the keyboard can be selected directly from a list. This is handier than the usual keyboard scheme of multiple button-presses to get the desired patch!

At the extreme right is the Synth element that drives the Haiku synth. For variety it has been loaded with the "Vintage Dreams" soundfont of 80's type analog synth voices (which should be findable on the web). The Program element above it has a matching list of presets loaded from an appropriate (text) file.

The remaining two elements in the middle are just to prevent Program events that might be sent from the keyboard actually affecting the synth. The left-hand MsgMarker adds a specific 'mark' to all program events, which is detected by the Splitter to its right to cause it to discard those events at that point. Everything else that the keyboard might generate, such as Controller events, is assumed to be wanted, and will pass on through.

A Fancier Configuration

This one gives much more real-time control than the one above, but it would take far too long to delve into it in detail. Some broad observations, though:

The idea here is to be able to generate, and switch between, several parallel MIDI streams, from the original single stream from the keyboard. You can see a couple of Composite elements on the right that contain 'sub-diagrams', one of which is open below the main diagram. These are set up each to generate two streams — to individual MIDI channels — from a single input stream. Either or both can be fed from the Switcher element to their left. The switching is done by decoding Program events from the keyboard.

The four Program panels at the right of the image represent elements within the sub-diagrams. The names are duplicated because the original composite element was just pasted in twice; they could be renamed afterward if desired. Most of the other elements do not have their panels open, to avoid clutter.

At the far left is a MidiFile element that will play any standard midifile. It feeds the MidiLink through a Transpose element that can be used to change to a more convenient key if playing along. Some other (unidentified) elements in the diagram are a PitchBend, and a SetRPN used to fine tune if one is, say, playing along with an old recording.

At the bottom of the image is the Tracker window holding the modules that can be dragged into the diagram to build it. Only some of them are shown in the space available here, of course. I apologise that the icons are all bitmap rather than vector, but the effort of converting everything to HVIF is not on the horizon right now! Even so, you can see that many of them are still just generic.