Intro  Screenshot  Installation  Running  Download  Docs  Contact 


TabSynth is a program for making sounds based on the position of the cursor inside a window. Tablets are supported and may be used for additional control (via pressure and tilt). TabSynth was written as a project for Music 420 at Stanford University. Licensed under the GPL2, TabSynth is free software.

TabSynth is written in C++ and uses a plugin system for making sounds, so it is easy to extend it in many ways. The Synthesis Toolkit (STK) library is used for synthesis. Among the provided plugins is a physical model of a Theremin.

TabSynth was written for and known to run on Linux, although it may not be too difficult to get to run on other systems. It has been developed on and tested with Ubuntu 8.10 and Fedora 10.


Depicted here is TabSynth running on Ubuntu. The included Theremin plugin is shown. As Tabsynth uses gtkmm, its looks will adapt to whatever GTK theme you have. Click on the image to make it bigger.


TabSynth must currently be compiled from source. This requires a C++ compiler (g++) as well as the development files for gtkmm amd STK. TabSynth is known to compile on Ubuntu 8.10 and Fedora 10. Let me know if you get it running on any other distros / platforms.

Installing gtkmm

gtkmm-dev should be provided in the repository of most distros. In particular, Ubuntu 8.10 and Fedora 10 both have it easily available. The Makefile looks for gtkmm-2.4, though it's possible an older version may also work.

Installing the STK

STK is not uncommonly included in distro's repositories, however the version shipped with Ubuntu 8.10 is too old to work with TabSynth's provided plugins. (We need at least 4.2.1 and 8.10 provides 4.2.0). Fedora's version is recent enough. DUE TO API CHANGES IN 4.4.0, NEW VERSIONS OF STK DO NOT WORK WITH TABSYNTH <0.2! Work on porting is currently in progress.

Ubuntu users must manually install the STK libraries. Some instructions for doing that can be found here (look for the part called "Library Use"). I have outlined the important steps below:

Installing STK from source
  1. It's probably best to get rid of any existing, older version of STK using your package manager.
  2. Download the newest sources from here.
  3. Untar and cd into the directory just created
  4. ./configure
    The default options should probably suit you, but if you want JACK output or something like that, feel free to peruse the STK documentation to look up the correct flags.
  5. make
    This step will probably fail. I think this is because STK was made for gcc3 but most new distributions bundle gcc4. In order to get it to compile, either use gcc3 or modify the source as follows (thanks to Nelson Lee for figuring this out):
    • In stk/include/Stk.h:
      1. add #include <stdlib.h>
      2. change #include <string> to <string.h>
    • In stk/src/Messanger.cpp, add #include <algorithm>
    • In stk/src/RtAudio.cpp, add #include <limits.h>
  6. Copy src/libstk.a somewhere in your library path (/usr/local/lib is probably a good candidate). It may be necessary to run ldconfig before your system will recognize the library.
  7. Copy everything in include/ to a folder called stk/ somewhere in your include path (e.g. /usr/local/include/stk/).
  8. Copy everything in rawwaves to a folder called stk/rawwaves in your share path (e.g. /usr/local/share/stk/rawwaves/
  9. That should be everything. If the step below still complains about stk not being found, check your library and include environmental variables to make sure they're looking in the right place.

Compiling TabSynth

To install, get the newest sources (see below) and run "make" in the root tabsynth directory. If you're lucky, it will compile and produce a tabsynth executable :).

(New in 0.2)To install TabSynth system-wide (and add entries to the application menu) run 'make install'


If you ran 'make install' TabSynth should be in your application menu. Also, you may run the command tabsynth. If you didn't run 'make install', then you must run ./tabsynth from the root tabsynth directory.


The recommended method of obtaining TabSynth is to grab the latest version from its public Mercurial repository. The project is currently hosted at

To get a copy of the most recent code, either visit the above link and use the download function, or install Mercurial and use the following line:

hg clone

Alternatively, you may download a source tarball from here. Note that these may only be updated periodically and are liable to be out of date.


In addition to this page, the following forms of additional documentation are currently available (they are included with the source distribution):


TabSynth was written by Cosmin Deaconu. He may be contacted at cozzyd AT gmail DOT com. Please use the bug tracking at bitbucket to file bug reports.