Next: , Previous: Compiling on Ubuntu, Up: Step-by-step building instructions

2.2.7 Compiling with Visual Studio Express 2008 on Windows XP

These instructions were used to compile Marsyas using the Microsoft Visual Studio 2008 Express IDE in Windows XP

  1. Download and install Microsoft Visual C++ Studio Express 2008 from (you might need to install Microsoft Silverlight to view the webpage).
  2. Download and install Microsoft Direct X SDK from These instructions worked with installing Direct X August 2008 (DXSDK_Aug08.exe).
  3. Download and install the CMake 2.6 binary using the Win32 installer from
  4. Downlaod and install the Tortoise SVN GUI client from
  5. The Tortoise client is integrated with Windows so right clik on your desktop and checkout Marsyas as described in the basic installation instructions.
  6. Launch cmake and specify the source and build directory you want to use for Marsyas for example c:\marsyas\src and c:\marsyas\build. Press configure until all the options are grey and then click ok
  7. Go to the c:\marsyas\build directory where you will find a Visual Studio project file named marsyas that you can open with the Visual Studio 9 Express IDE to compile Marsyas.
  8. The binaries are created in build\bin\Release or build\bin\Debug depending on which build configuration is used.

The following optional steps can be used to setup Marsyas to be able to read MP3 files through libMAD an external MPEG audio decoder.

  1. Download the libMAD library source code from
  2. In the msvc++ folder of the libMAD package there is a Visual Studio project file. Double-click on that and build the library. This should generate a debug (or release) folder depending on your configuration in msvc++ which contains a libmad.lib file.
  3. Using cmake, set WITH_MAD to ON and click configure. The CMake configuration of Marsyas needs to determine the location of the libmad.lib library file and the location of the mad.h include file. You can either add the corresponding directory to your PATH or you can manually point the mad_INCLUDE_DIR to the msvc++ folder directory and mad_LIBRARY to the libmad.lib file generated earlier. Finally click configure and okay.

The following optional steps can be used to setup the Marsyas python bindings using SWIG and setup the NumPy,SciPy,Matlplotlib environment in Windows. It is a great free substitute for MATLAB and integrates very nicely with Marsyas all in a Python environment.

  1. Download and install Python 2.5 (IMPORTANT: NumPy and SciPy don't yet work with the more recent 2.6) from The easiest way is to just use the .msi installer.
  2. Download and install numpy superpack for python 2.5 from the sourceforge webpage of numpy
  3. Download and install SciPy 2.5. Follow the dowload link at
  4. Download and install ipython from which is an enhanced interactive python interpreter that can add MATLAB like plot capabilities to Python.
  5. Download and install matplotlib from This adds plot capabilities.
  6. If everything has worked so far you should be able to run the examples shown in the matplotlib webpage in your python or ipython environment.
  7. Now you it is time to install the SWIG python bindings. First you will need to download and install SWIG from The easiest method is to just unzip somewhere in your hard drive. I chooce c:\swig. Inside this new directory there is a bin directory with the swig executable. This directory needs to be added to your system PATH environment variable so that CMake can find the SWIG installation.
  8. We are almost there. Start CMake and enable WITH_SWIG and reconfigure Marsyas. If swig is found correctly the corresponding build files are updated. To install the marsyas python module you will need to run the INSTALL target of the Marsyas solution inside Visual Studio. This target can be found on the left side of the Visual Studio IDE. There is a tree list list of different kinds of things you can compile. One of them is the INSTALL target. This will build and install all of Marysas including the Python bindings into your system.
  9. There is one final little step. For some reason I have not figured out the marsyas module is compiled as _marsyas.dll and gets copies to the default location for installed Python modules. You will need to rename this to _marsyas.pyc for things to work for some versions of Python. It seems that for more recent versions of Python it needs to be called _marsyas.pyd.
  10. You should now be ready to run Marsyas inside Python. Try launching a Python interactive interpreter and trying:
              import marsyas

    If it works you have succeeded and can try the various python Marsyas scripts in src/swig/python.