[ p a w f a l ] [ s p i r a l s y n t h ] [ s s m ] [ m i ] [ p i x e l _ s t r e a m ] [ n e b o g e o ]

Spiral Loops Homepage
Menu items




Quick Manual



Email me


Quick Links




Linux Sound and Midi Pages

Note: SpiralLoops isn't being supported any more. This is because there is now a much better featured spiralloop plugin for SpiralSynth Modular.

SpiralLoops is an experimental loop based sampler for Linux or FreeBSD.

The idea of SpiralLoops is to provide a simple, visual tool for looping and layering of sounds; which can be sourced from either wav files on disk, or from sound generating plugins.

SpiralLoops allows you to create loop based compositions with the minimum feedback time between the decisions you make and your ears.
The looping mechanism is very flexible, you can lock the timing of loops together, or offset them for creating complex sequences, such as polyrhythms.

Loop triggers can be used to cause interation between the loops, and as an expermental way of creating music.

Spiral Synth uses the standard OSS/Free sound output (/dev/dsp). This should work on ALSA too.

Check out the forum on pawfal for information and discussion, and if you make music with SpiralLoops, or linux in general - register your exisence on the pawfal artists stack.

Email me and tell me what you think, any features you want, or if you can't get it to work etc etc...


This is one loop window. Click on the picture for an shot of the whole loops app running.

  • Unlimited number of loops can be mixed together.
  • Plugin fuctionality allows different sound generators to be sampled, or played along with the loops.
  • Loops can be sped up or slowed down or have the're length changed as they play.
  • Each loop has a seperate low pass filter, to change the dynamics of the sound.
  • The sample playback can be scratched using the mouse. This feature can also be used for getting loops in sync.
  • Loop triggers, for building up complex patterns.
  • Cut, copy, paste between loops.
  • Hold button replaces the sample with the latest output, so samples can be progressively mangled.
  • Output can be rendered in realtime into a Wav file.
  • Stereo output and panning of samples.
  • LADSPA plugin support planned, but not yet implemented.
  • Plugins
    Plugins for SpiralLoops can be sampled into a loop, or simply played alongside SpiralLoop's output. (If you just want to layer together wav files, you won't need any plugins at all)

    SpiralSynth. Can be adapted to work as a plugin, see the README for details.

    There is also a smaller version of SpiralSynth specifically designed as a SpiralLoops plugin. This was written because my machine was unable to comfortably run the full synth and SpiralLoops together.

    SpiralSynthBaby is a two oscillator synth, and runs about twice as fast as SpiralSynth.

    After building the code, you'll get a file called SpiralSynthBaby.so which can be loaded by SpiralLoops.

    Source code:
    Latest: SpiralSynthBaby-0.0.2.tar.gz


    SpiralLoops is released under the terms and restrictions of the GPL license.

    To build SpiralLoops from source, you need FLTK 1.0.9 or later.

    Binary format:
    i386-Linux binary

    Latest: SpiralLoops-i386Linux-2.0.0.gz

    Old binaries:

    Source code:
    Latest: SpiralLoops-2.0.0.tar.gz

    Old source code:

    To keep updated about SpiralLoops, and other software release, join the pawfal mailing list!

    Quick Manaul
    A quick guide to operating SpiralLoops.

    Left Mouse Button Selects the region.
    Middle Mouse Button Use over the loop to "scratch" the loop play position. This isn't really scratching yet, as it doesn't change the pitch of the sample, this is mostly useful for syncronising beats by hand.
    Right Mouse Button Rotates the loop, to move the start point.
    Filter emphasis
    Filter cutoff
    Master Sets this loop to be the master.
    Update Shows the play position in the loop (quite slow to process at present)
    Play Toggles the loop playback.
    Magic number Displays the ratio of play length to master loop play length.
    Record from plugin
    Load wav file
    Double Doubles the length of the loop.
    Match Matches the speed and length of the master loop.
    Hold Re-samples the stored loop with the one just played, this way filter modulation, scratching etc can be recorded. (not availible during recording)
    Cut [ctrl-x] Removes the selected region, and puts it in the copy buffer.
    Copy [ctrl-c] Copys the selected region to the copybuffer.
    Paste [ctrl-v] Inserts the copybuffer to the region start.
    Paste Mix [ctrl-b] Same as paste, except it mixes the copybuffer over the loop.
    Half [ctrl-h] Halves the length of the loop. (removes the second half)
    Zero [ctrl-z] Zeros the selection.
    Select All [ctrl-a] Selects all of the loop.
    Reverse [ctrl-r] Reverses current selection.
    New Trigger[ctrl-t] Add a new trigger to the loop.

    About Triggers

    Loop triggers are an experimental feature to modify playback of your loops, and create interactions between the loops in a workspace. These interactions can become very complex, and result in interesting rhythms and compositions.

    Basically, triggers are placed on a loop, and will start another loop playing when they are passed over by the play position (select update to see where this is on a loop).

    Triggers are created by pressing ctrl-t over a loop. They can be moved around the loop by dragging them with the left mouse button.

    Each trigger has two numbers associated with it, the one above the frigger is the number of the loop that will be started (between 0 and 10) cycle through the loops with the middle mouse button.

    The number to the right of the trigger is the stop-count. This specifies the number of times the trigger will be passed before stopping the current loop. If the stop count is zero, the loop won't be stopped. Cycle the stop-count with the right mouse button.

    The best way to find out how triggers work is to have a play with them, they are a little difficult to explain, but are actually quite simple. With only a few loops, and a couple of triggers, you can build a fairly interesting rhythm up that may take a while to fully run through. The best thing is that you can change the triggers in real time, and hear the effects as you change them.

    2.0.0 Sunday 7 May 2001.

    Per-Loop Effects
    Workspace Load/Save
    Reverb (of sorts)
    GUI Tweaks/Enhancements
    Sample startpoint altering with right mouse button.
    Update works properly now.
    Stereo - panning of mono samples.
    Reverse sample selection.
    General bug fixes.

    First release 0.1.0 Saturday 2 December 2000.