Swami is a cross platform application and can be used on Linux, Mac OS X, Windows and many Unix variants. Basically anywhere where the GTK+ graphics toolkit and supporting libraries can be used. The installation procedure varies greatly between the different platforms and choice of whether to use a pre-built binary package or compile the application from source code.
The availability of binary application packages for some operating systems is lacking, but will be improving in the near future. Let us know if you are interested in packaging Swami for a particular platform.
Several Linux distributions have pre-built application packages of Swami. The author uses Ubuntu Linux for development and offers packages for several releases of it. If you are using another distribution of Linux, please consult the applicable package manager and consider providing information for your distribution for inclusion in this documentation.
Make sure you install the latest version of Swami, but at least 2.2.1.
sudo apt-get update sudo apt-get install swami
Mac OS X
We don’t currently distribute official Mac OS X binaries, but some users have reported successfully building Swami on this platform.
We don’t currently distribute official Windows binaries, but some users have reported successfully building Swami on this platform.
Building Swami From Source Code
Building Swami from source code can be a rather involved process and especially difficult for someone who has no previous experience building free software. Linux is usually the easiest OS to build Swami on, since it is what the author uses for development.
These instructions are specific to Ubuntu Linux, but should be adaptable to other Linux distributions, by replacing any package install commands with those applicable to your distribution.
Start up a Terminal application.
Install required development applications and libraries with the following command:
sudo apt-get install build-essential cmake-curses-gui automake libtool gtk-doc-tools libgtk2.0-dev libsndfile1-dev python-gtk2-dev librsvg2-dev libgnomecanvas2-dev libglade2-dev fftw3-dev libfluidsynth-dev git
Either download and extract the latest source archives of Swami and libInstPatch from the SourceForge Files page or checkout the latest development source code of libinstpatch and Swami from the git repository with these commands:
cd ~/code # Example location to checkout source code into git clone git://git.code.sf.net/p/swami/code swami-code cd swami-code
CMake Build System
The new build system is based on CMake and is the recommended method of building libinstpatch and Swami. The older autoconf/automake method is described below. CMake has several front ends, including a graphical interface and a curses terminal based interface. The curses interface is described here.
Build and install libInstPatch library:
cd libinstpatch # Append version when using a release archive mkdir build # Create build directory cd build ccmake ..
This will start up the CMake curses interface. Press ‘c’ to configure, then ‘e’ to exit the configure status page. Provided there were no errors a list of options will be displayed. You may want to change some settings, such as the CMAKE_INSTALL_PREFIX where the application will be installed to. If you change any options, press ‘c’ again and ‘e’ to exit back to the main menu. Once you are satisfied with the settings, press ‘g’ to generate the Makefiles and exit the config utility.
Then run the following commands to build libInstPatch:
make sudo make install
Build and install Swami:
cd ../../swami # Append version when using a release archive mkdir build # Create build directory cd build ccmake ..
This will start up the CMake curses interface (usage is the same as described above).
Then run the following commands to build Swami:
make sudo make install
A menu item should then be available on your desktop’s menu or alternatively you can execute Swami from the command line (provided /usr/local/bin is in your systems PATH):
Swami depends on several software libraries and applications. Below is a list of the most prominent packages, which themselves may have their own dependencies. When using a Linux distribution or some other free software distribution system (such as fink on Mac OS X or Cygwin for Windows), it should be possible to install a package and all its dependencies in a semi automated fashion. When such a system is not available, obtaining the required dependencies can be a daunting task. For the purpose of building Swami, the development versions of the dependencies will need to be installed (application headers, etc).
- pkgconfig (part of the build process)
- gobject, glib and gthread >= 2.32
- libsndfile >= 1.0.0
- pygobject-2.0 >= 2.0 (optional – for Python binding)
- libInstPatch >= 1.2
- gtk+ >= 2.12
- librsvg >= 2.8
- libgnomecanvas >= 2.0
- gmodule >= 2.32
- fluidsynth >= 1.0 (optional – required for sound output)
- fftw >= 3.0 (optional – required for FFT instrument tuning plugin)