an advanced MIDI pattern
sequencer for Linux

Current FTP Version: 1.99.2
Current CVS Version: 1.99.2


What is SoftWerk ?

SoftWerk is a software analogue MIDI sequencer, modelled on hardware analogue sequencers like Doepfer's Schaltwerk. It can be used for pattern-based music composition, and offers almost all the features of its hardware cousins, plus quite a few more.

I don't own a Schaltwerk, but I do have one of its baby cousins, the MAQ 16/3. I love the MAQ 16/3, but I loved the description of the Schaltwerk even more. Alas, I didn't want to spend $1500 on a new one, and it seemed to me that although a software-based equivalent would lack real, simultaneously variable knobs and possibly suffer from timing issues, it would be possible to expand the capabilities of the Schaltwerk, while at the same time benefitting from the visual display model possible on a computer. I hope that you will agree that Softwerk proves that this hope was correct.

This is the second major release of SoftWerk. The first one used the excellent, but closed-source, XForms library as its GUI toolkit. This new version uses the Gtk-- toolkit instead. In addition to this substantial change, the new version includes many new features.

SoftWerk is a tool for generating pattern-based musical structures. It is an input and controlling instrument for rhythmic trigger patterns, arpeggios, chord triggers and other rhythmic structures. All of its functions are available and visible simultaneously. The main features are:


  • an arbitrary MIDI pattern sequencer.
    • (of course, "arbitrary" really means "whatever your system can support", but most contemporary desktop machines can support 8 sequences of 16 steps with almost zero system load.
  • Controls for each step: on-off switch displays current MIDI value for that step.
  • Steps can be enabled/disabled and have their values changed while the pattern is running, resulting in lively musical structures. Sensible control of user interface to promote intuitive and rapid manipulation of pattern parameters.
  • Any step can be controlled by an external MIDI controller. Steps "learn" the controller interactively.
  • Per-sequence volume control, and mute button.
  • Display of the active steps and the actual step
  • Per-sequence volume control.
  • Per-sequence MIDI input and output ports. Each sequence may be connected to any MIDI port described in the configuration file (including FIFO's for communication with other sensible Linux MIDI software running on the same host).
  • Per-sequence MIDI channels for input and output.
  • Each sequence can generate defined MIDI messages (note on, note off, controller event, program change, aftertouch, etc.) or send arbitary raw MIDI data. A sequence may be used as a series of individual steps, or as a single chord of notes. A sequence may be used as an arpeggiator (starting after a trigger and stopping after a complete cycle).
  • Note and chord rows can be "MIDI relative": incoming MIDI note data will cause the sequence to transpose.
  • Alternatively, a row can be used for internal control, generating note length or gate intervals for one or more other rows.
  • Any sequence may be triggered on or off by any external or internally generated MIDI events (i.e. the MIDI output of softwerk can be used to trigger patterns within it). Triggers may be:

    once fired, it won't fire again as long as the triggered sequence is running.
    multiple firings will cause multiple runs of the sequence, one after the other.
    refiring of a trigger while a sequence is running will return it to the first step, whence it will run again.
    the sequence will stop when the trigger is fired

  • Direction (forward, backwards, end-to-end, random), first and last steps of a sequence are all independently programmable for each track.
  • "Randomize" button fills a sequence with random values
  • "Off" button turns all steps in a sequence off.
  • storage and loading of any configuration, limited only by disk space.

Last modified: Tue Nov 28 00:02:19 EST 2000 by Paul Barton-Davis
[Best Viewed with Any Browser]