Welcome to the House of Weavers...

Page last updated 14 October 2016

The Weaver v3.0.2

The actual release version is actually now 3.1 — I'll update the page to match someday... This is the program that forms the core of the two suites below. Follow the link for details.

The MusicWeaver

Build functions to perform multiple transformations on MIDI streams in real time... Enhance live performances...

The StreamWeaver

"Visual Pipes" for shell commands... with windowed input and output... (No relation to — more recent — commercial progams of the same name!)

The Weaver suites are 'Construction Kits' that let you build complex functions out of simple elements, by placing them in a diagram and connecting them together. Simple mouse drag & drop operations are all that's needed to construct the diagram.

Each suite of modules is targetted toward a specific type of data --- MIDI in the case of the MusicWeaver, generic posix data streams for the StreamWeaver --- but they all use the same diagram-manager program. Any kind of sequential data that needs to be processed in a series of steps can in priciple be handled by the scheme --- provided suitable modules for the purpose exist. All data is tagged as to its nature, so that modules will only concern themselves with data that they know about; different kinds can thus be freely mixed, interacting only when --- and if --- necessary.

Follow the links above for more information on the individual packages and for download links (PPC and Intel).

Other BeOS (and HAIKU!) programs by Pete


— New for 2016... A command-line app that displays selected GUI controls in a panel and returns their values.

One facility I've often wanted in Haiku (and even back in BeOS days) is a way for a shell or other script to display textcontrols, menus, and so on, and retrieve their values. I finally had a project that really needed such an app, so I decided to write it. Here's a demo:

The panel generated by demo.sh
(included in the package)

Here's another screenshot, of my initial usage for a "Photo-tagging" script. The panel at top left controls the actions of the script with its pushbuttons. The one below pops up as needed to allow entry of details for the photo.

"Gadgeteer" lets you specify the controls you want in a panel, and their layout, on the command-line, and returns their current values when the "DONE" button is pressed. Currently it provides (fixed) labels, textcontrols, (popup) menus, checkboxes, buttons, and sliders. Control dimensions and positioning can be customized via parameters. The window resizes itself to accomodate them.

The output is a separate line for each control with its relevant data: the text from a textcontrol, the item from a menu, or the label/blank line for on/off controls. Normally, clicking 'DONE' outputs the data and quits the app, 'CANCEL' quits without output. Any other pushbutton causes output, too, but doesn't quit; the action can be distiguished by the data in the button's output line.

Gadgeteer's command line is different from the usual bash arguments. It is in YAML syntax [but not YAML grammar!], as a set of "key: value" pairs, separated by commas and enclosed in braces. This allows compact and flexible specification of the layout and other parameters controls need. If it's preferable for any reason, you can instead give the specifications in a file — again in YAML syntax (either 'JSON-like', or line oriented). You can include several files if you need, and even — if you are careful — mix them with command line arguments. The README in the package has all the details. The executable is self-contained; it needs no special libraries or other dependencies.

Bug 2016/6/2: In v0.8, a global "div: 0" doesn't work! (Leaves the divider in the middle.) A local "div: 0" does work, or for now you can use "div: 1" which should be visually indistinguishable. Fixed in v0.8.1.

You can download it as a zip or in hpkg form. The contents are equivalent. The source is now also available for download. .

Download Gadgeteer (v0.8.1 2016/6/4) for haiku here (62kB zip file)
Download Gadgeteer (v0.8.1 2016/6/4) as an hpkg here (62kB hpkg)
Download Gadgeteer_0.8.1 Source (157kB zip)
(The app will run in BeOS R5 also, but has to be recompiled. If anyone actually wants that, let me know.)


— a regular-expression matching program with a difference.

matt is a simple, old-fashioned, command-line driven program, but I believe it is fairly unique in relation to commonly available tools, such as grep and awk, with somewhat similar functions. Like them, it locates segments of a text by matching with regular expressions. Unlike them, it is not 'line-bound': an expression 'locates' exactly the text that it matches, rather than the line that contains it. The matched segment may be part of a line, or extend over several lines.

That seemingly minor difference in strategy means that matt can handle tasks that are difficult or impossible with the other programs. It can pull entire paragraphs that match some desired criterion out of a text, locate elements within an HTML or XML file, and so on. In fact it can even look for byte sequences in binary files (see below).

An "output template" may be specified that controls exactly what is output when a match is found.. It can reorder segments of the match, or insert other text determined by the content of the match. If desired, the unmatched portions of the input can be output unchanged, interleaved with the (transformed) matches, so alterations can be made where desired throughout a file.

One other feature that may be important is that matt is (by default) UTF-8-aware. Both the regular expressions and searched text may contain UTF-8 byte sequences, and will be handled properly. Alternatively it has an "8-bit clean" mode, in which it scans a file as full 8-bit bytes; in this way it can even scan binary files using regular expressions containing arbitrary bytes of interest.

matt was available first for BeOS, because that's where I developed it, but it's straightforward posix code and also runs on Linux etc. I've packaged the source with a fairly general Makefile. It's available for download here, where you can also read a little more detail.

This release (v1.4 — January 2006, docs updated April 2016) improves handling of unmatched text after it has been scanned; previously it would accumulate all text until it hit a match; now it disposes of buffers once they are done with.

The v 1.3 release (April 2005) finally provided a fully working '-8' option, that properly processes binary files, with regular expressions that can contain any 8-bit byte. It also added a couple of new conditional template elements (see docs).

Download matt v1.4 for x86 Here (34KB zip file BeOS/Haiku only)
Download matt v1.4 as an hpkg (36KB HaikuPM Package)
matt v1.4 for BeOS-PPC still available Here (24KB zip file BeOS only!)


This package allows you to mount your Psion Series 5 (5mx or Revo) as a BeOS file system, and access the Psion from the Tracker. (Based on 'PalmBeach' by Michael Pieper for the Series 3 machines.) Intel only at the moment.

The current version has added facilities for copying Contacts data (5mx/Revo) to BeOS Person files. To go in the other direction, use the VCard-People package below.


The VCard format is an open standard used for storing and interchanging personal ("Business Card") data by applications on many platforms. The two small programs in this packaga will convert between this format and BeOS 'Person' files, making it possible to share contact data between BeOS and other platforms.

Packages are available for both x86 and PPC. They are identical except for the executables themselves. Source is included.

Download vcardpeople.zip for x86 Here (56 KB)
Download vcardpeople.zip for PPC Here (41 KB)


Now well over fifty years ago, in May 1951, the very first 'Computer Game' made its appearance, at the Exhibition of Science (part of the Festival of Britain) in South Kensington, London. The NIMROD Computer played the game of NIM against visitors to the exhibition. This simulation for the BeOS attempts to recreate the experience of playing against that old machine. No high-speed game action here, and it's mostly in glorious black-and-white (!) but it illustrates a bit of history that probably should not be forgotten.

(The link above describes the original machine in more detail.)


A freely distributable [and very useful!] little utility that lets you give shell scripts icons that will accept dropped files as arguments, open Terminal windows, and so on...

Follow the link for more information and downloading. (PPC & Intel)


A slightly extended version of the long-standing BeOS file-sharing and chat app. In both Haiku and BeOS versions.


Another little tool. This one lets you create Image maps for your Web pages. Follow the link for more information and downloading. (PPC & Intel)

Other Haiku/BeOS programs on this site


This is the best GUI FTP client I've come across. Unfortunately it's not mine... (:-/) It was written by Momoziro in Japan about ten years ago. There were a few slight defects in current Haiku, though, so I've fixed it up a little (and given it an icon!). Click on the link above for more details and download links


This one is not mine, either — I simply did the port to BeOS. It is a marvellously flexible (though command-line driven) program for downloading images from, and generally managing, your digital (still) camera. It's Intel only at the moment, I'm afraid.


Here is another quick port. 'Antiword' is a program by Adri van Os that converts Microsoft Word files to either Postscript or plain text (and now XML and PDF). This is now version 0.37 of the program (2006/01/31).

The program itself compiles directly from the author's sources. The source is therefore not included in the package, as it is readily available from the author's own site.

An 'Install' script icon is provided, for quick setup. For convenience to those who have xicon, some scripts have been included that will let you convert or view Word files with drag-and-drop.

Download Antiword for x86 Here (230 KB)
Download Antiword for PPC Here (220 KB)
Original Author's website:


Once in a long while, one comes across a real lost gem. I recently had a need for a program like this and, after some fairly heavy googling, I found spiff. Its purpose is to compare word (and numeric value) sequences without regard to whitespace or newlines. It therefore works where diff doesn't — where text has been reformatted, for instance. It will even compare floating-point values with a tolerance, so you can look for significant differences in two data files.

Written over 15 years ago by a guy at BellCore, it compiled under BeOS with only a couple of trivial language updates. I haven't moved it over to my ol' BeBox yet, but the source is in the package so you can build it yourself for your machine (it also compiles on Linux...).

Download spiff (for x86 R5) Here (105 KB) (includes source)

And finally, one for Haiku only (unfortunately due to a BeOS bug):


An input filter to disable CapsLock. Details and download at the above link.


                                Pete Goodeve
                                Berkeley, California

                e-mail: pete@GoodeveCa.NET

Wallace Tartan