Tuesday, November 8, 2011

Installing Marsyas on Windows 7 using Visual Studio Express 10

This post is similar to the previous one about installing Marsyas on Ubuntu with the Python bindings. The process is relatively involved but it is worth the effort as having the Python bindings makes prototyping really nice and easier. The instructions are similar to the ones provided in the manual for Windows XP with a few minor changes. First you need to install the necessary tools (cmake, subversion and Visual Studio Express)
  1.  Download the CMake 2.8 windows installer and install. 
  2.  Download the TortoiseSVN graphical user interface client to subversion using either the 32-bit or 64-bit installer depending on your system configuration (I like to tick the box for installing the command-line tools but that's an optional step)
  3. Download Microsoft Visual Studio Express C++ 2010 and install 
  4. Download the latest DirectX SDK and install 

Checkout the latest version of Marsyas from the svn repository by right-clicking on your desktop, selecting svn checkout (Tortoise-svn integrates with Windows and provides this option) and pointing to the
Marsyas svn repository at Sourceforge:

Here is how it looks on my computer:

You can specify where you want the Marsyas source code to be extracted. In my case I selected
to extract on my desktop: C:\Users\gtzan\Desktop\marsyas.

The next step is to run CMake to configure Marsyas and generate the Visual Studio Express 10 solution file.
After installing CMake there should be an colored triangle icon on your desktop labeled CMake (cmake-gui). When you first run CMake make sure you change the generator to Visual Studio 10 and select use native compilers. This is how it should look:

Click on it and Browse Source and Build to specify where the source code resides and where to build the command-line tools. In my case I selected C:/Users/gtzan/Desktop/marsyas/src and C:/Users/gtzan/Desktop/marsyas/build. This is how it looks on my screen:

Click on configure and if everything worked ok. You should see all the pink colored options turn to grey. A common problem is failure to find the DirectX directories. By clicking on the Advanced toggle button you can display all the configuration variables that CMake uses. If the DirectX directories can not be found then you might need to manually specify them by clicking on the button with the three dots next to DSOUND_INCLUDE and DSOUND_LIBRARY. This is how it looks on my screen:

If all the entries are grey now you can generate the Visual Studio C++ 10 solution file by clicking on Generate.

Now you are ready to compile Marsyas using Visual Studio C++ Express 10. (The process is pretty much identical if you have the full version of Visual Studio). Open the marsyas.sln file in the build directory:

 Change the Solution configuration to Release and now finally compile by either clicking F7 or by selecting Debug/Build Solution from the top menu. Wait for a while. If everything went well compilation will fininsh with some warnings but no errors.

You can now check the Marsyas command-line tools that should reside in build/bin/Release (in my case
C:\Users\gtzan\Desktop\marsyas\build\bin\Release). Using the Visual Studio Command Prompt navigate
to the right directory and run:

mudbox -t sine


and you should hear a sine wave playing through the speakers. Press ctrl-c to exit. CONGRATULATIONS - Marsyas is installed - happy hacking.

In my next post I will describe how to install Python with NumPy and Matplotlib, swig and how to configure/compile/install the Python bindings for Marsyas. 


  1. Can you please explain how Marsyas can be used with java in an eclipse project?

  2. Hi
    I am using Marsyas for a project. I Change the Solution configuration to Release and compiled, but I get an error:
    LINK : fatal error LNK1181: cannot open input file '..\..\bin\Release\marsyas.lib'
    41>Project not selected to build for this solution configuration
    ========== Build: 3 succeeded, 36 failed, 0 up-to-date, 2 skipped ==========

    I have followed all the steps above. I could not locate the marsyas.lib file. Is there something I missed or forgot to do?


    1. Did you find anything useful to solve this problem. I am having problem too with the code.