about kluppe
kluppe is a looper software, built with live performances in mind. it runs under linux and uses jack for audio i/o. it is released under the GNU license. you can download, use and redistribute it for free. i wrote it for my own needs, but i'm always happy to hear about other people's experiences or needs concerning kluppe. if you want to contact me please write to
click here for a screenshot of kluppe in action.

^ back to top

downloading, compiling & starting kluppe
kluppe's current version (0.6.15) can be downloaded here.
in order to use kluppe, you will have to compile it. since it uses some libraries, you should install them first, including the developers versions.
the libraries are: jack, gtk, libxml liblo libusb libsndfile and libasound2.

on my "debian unstable" system i get all i need for compiling with the following command (as root):
apt-get install gcc make libgtk2.0-dev libsndfile1-dev libxml2-dev libjack0.100.0-dev libusb-dev liblo0-dev libasound2-dev
this will install the needed libraries and header files plus compiler and make (just in case you don't have them already).
if you are not using a debian based linux system, please have a look at the documentation of your distribution for help installing the libraries.

next you have to unpack and compile kluppe:
cd /usr/local/src [change to a working directory]
tar -xvzpf /path/to/kluppe-VERSION.tar.gz [unzip kluppe (insert correct path and filename)]
cd kluppe-VERSION [jump into the unpacked directory]
make [this is the compile command]
su [become root if you are joe-user]
make install [install kluppe's files in /usr/local/bin and /usr/local/share/pixmaps]
congratutalion. you did it :)
click here for a screenshot of a typical compilation.

if you use debian linux you can simply "apt-get install kluppe (currently in the unstable branch)". for other .deb based systems (ubuntu...) you can get the kluppe debian package directly from paul brossier' page.
for rpm-based distributions (fedora, suse, mandrake...) binary packages can be found here.
be aware, this binary packages may contain an older version of kluppe.

before you start kluppe, you will have to start the jack daemon.
please visit the jack homepage for instructions, if you don't know how to use jack.
once jack is up and running, you can simply start kluppe with kluppe or kluppe /path/to/projectfile.klp.

^ back to top

basic concepts and functionality

after startup, kluppe will automatically connect the main output to the soundcards output ports via jack. also it will connect the input ports of a looper to soundcards inputs when you create it.
you can always use a jack-connection software like qjackctl to adjust the connections as you need them.

vie kluppe's filedialog, you can alwas save and load the actual state of kluppe projects.
these files are stored in ~/.kluppe/ by default and usually have .klp extensions.

kluppe consists of several loopers, each of them hosting a buffer.
to start using kluppe, you first have to open a new looper (menu: file->new looper or "new looper" button at the lower left corner.)
every looper sends it's output to kluppe's main out (L+R). alternatively a looper has seperate jack-outputs for sound and the actual playback position. thus you can route every single looper according to your needs.

next you have to create or load a buffer. again, this can be done via file menu. or the buttons in the bottom row.
the difference between the three methods is: "new buffer from file" loads a soundfile from disk into RAM. so far kluppe can only handle uncompressed sound formats (no .ogg, .mp3 or similar). "new discstream" opens a soundfile and only copies the actually needed data into memory. this feature is great for long soundfiles (e.g. many minutes), but has the drawback of a greater risk of dropouts while playing and no recording into the file. "new empty buffer" creates a buffer without content in your desired length. ou can fill it via jack-streams.
beware of big buffers. since kluppe is optimized for live-performances, all buffers are kept as raw data in memory.
a buffer can be mono or stereo, and every buffer can be assigned to several loopers. thus you can play with one soundfile in two or more different loopers, loading it into memory only once.

for every looper you created, you can assign a buffer via it's buffer menu (1).
now you can start playing (2) the buffers content and recording (3).
if you got that far, you should really stop reading this documentation and start exploring kluppe in real life now ;-).

^ back to top

looper waveform gui

above is an example of a typical waveform view. you can record into a buffer and play back independently at the same time. the playback selection is (bright-)blue, while the recording selection is red. if the two selections overlap (or if they are identical) the color is pink.
the locators for playback and recording are green and red. the recording locator will always run at regular speed, while the playback locator can change it's speed and direction. most of the looping-controls can be done via mouse operations:

the normal operation is to link the recording selection to the playback selection. in this mode the left mouse button will change both areas. if you want to change rec. and playback independently you have to uncheck "link rec to play loop" in the loopers options menu.

left mouse button (playback): middle mouse button (zoom) right mouse button (recording)
if the options "snap to grid" and "show grid" are enabled in a loopers "options" menu, the mouse operations will snap into an adjustable rhytmic grid. here is another example, showing a stereo buffer with grid and overlaping selections:

^ back to top

looper controls

as a quick help, you can always hold the mouse cursor over a looper's control element and a tooltip will appear:

here is a description of a loopers gui-elements:

^ back to top

looper menus

a loopers menu has 3 entries:
the buffer menu:

the options menu:

the playmode menu:
this menu will let you define the mode in which the looper plays the buffer's sounds.

the custom playmode dialog:

here you can draw your own playmode.
if the looper is in "custom position" playmode, this dialog represents the position of the playlocator (y-axis) according to the position the playlocator *would* have in loop mode (x-axis).
if the looper is in "custom speed" mode, this dialog represents the speed of the playlocator (y-axis) according to the regular position of the playlocator in loop mode. just try it and you will find out.

^ back to top

if you want to contact me please write to