Compiling Tony » History » Version 7

Chris Cannam, 2014-06-17 10:35 AM

1 1 Chris Cannam
h1. Compiling Tony
2 1 Chris Cannam
3 1 Chris Cannam
_Warning: Not all that easy_
4 1 Chris Cannam
5 1 Chris Cannam
At the moment you need to compile three separate parts in order to have a working installation of Tony:
6 1 Chris Cannam
7 1 Chris Cannam
 # The Tony application itself
8 1 Chris Cannam
 # The pYIN Vamp plugin used for general pitch and note estimation
9 1 Chris Cannam
 # The CHP Vamp plugin used for detailed pitch analysis
10 1 Chris Cannam
11 7 Chris Cannam
The source code for the plugins is all included in the source package for Tony, in subdirectories called @pyin@ and @chp@ respectively, so you only need to download the one package. But after you've downloaded it, you need to compile and install the plugins separately from the main Tony application. *We do intend to change this* but that's how it is at the moment I'm afraid!
12 1 Chris Cannam
13 1 Chris Cannam
h2. On Linux
14 1 Chris Cannam
15 2 Chris Cannam
Tony depends on a lot of additional packages, including Qt (either Qt4 or Qt5), the Vamp plugin SDK, Rubber Band, libsamplerate, libsndfile, libmad, libid3tag, Serd and Sord, liboggz, libfishsound, FFTW3, JACK, and PulseAudio. The configure script should test for these.
16 1 Chris Cannam
17 4 Chris Cannam
* Download the source code package from the "download page":/projects/tony/files, or check out the "Mercurial repository":/projects/tony/repository.
18 4 Chris Cannam
* Run @./configure@ and (if that succeeds) run @make@.
19 4 Chris Cannam
* For each of the @pyin@ and @chp@ subdirectories:
20 4 Chris Cannam
** @cd@ to that directory
21 4 Chris Cannam
** run @make -f Makefile.linux64@
22 4 Chris Cannam
** if that succeeds, install the compiled plugin by copying @*.so@ to the directory @$HOME/vamp/@ (create this directory first if it doesn't exist).
23 5 Chris Cannam
24 5 Chris Cannam
You should be able to run @./tony@ in the main Tony directory now.
25 5 Chris Cannam
26 5 Chris Cannam
h2. On Windows
27 5 Chris Cannam
28 5 Chris Cannam
Compiling from the source package is very hard on Windows because it has so many library dependencies. But if you check out the source from "the Mercurial repository"/projects/tony/repository, most of the dependencies will be checked out for you as subrepositories. So I recommend doing that.
29 5 Chris Cannam
30 5 Chris Cannam
Development of Tony happens in the default branch, so if you want to be sure you have a stable version (without developer churn going on) you should update to the most recent tagged release in the repository.
31 5 Chris Cannam
32 6 Chris Cannam
To build, you will need the "Qt5 SDK":http://qt-project.org with Qt Creator IDE. When installing Qt5, make sure you have the MinGW compiler toolset selected (either as well as the Visual C++ one or instead of it).
33 6 Chris Cannam
34 6 Chris Cannam
 * Start Qt Creator and open the project @tony.pro@ from the main Tony directory.
35 6 Chris Cannam
 * Configure the project to use Qt5 Desktop with MinGW, in release mode, and *disable* the Shadow Build option.
36 1 Chris Cannam
 * Copy the file @version.h.in@ to @version.h@ and edit it to replace the text @@PACKAGE_VERSION@@ with the appropriate version (this part really shouldn't be necessary -- sorry!)
37 7 Chris Cannam
 * Build the project
38 7 Chris Cannam
39 7 Chris Cannam
If that succeeds, you will need to build the plugins:
40 7 Chris Cannam
41 7 Chris Cannam
 * In Qt creator, open the project @pyin/win32-build/pyin.pro@
42 7 Chris Cannam
 * Configure the project to use Qt5 Desktop with MinGW, in release mode, and *disable* the Shadow Build option. (The plugins don't actually use Qt at all, we're just using a Qt project file to enable a build with Qt Creator.)
43 7 Chris Cannam
 * Build the project
44 7 Chris Cannam
 * Install the plugin by copying @win32-build/release/pyin.dll@ to "the Vamp plugin directory":http://vamp-plugins.org/download.html.
45 7 Chris Cannam
 * Repeat for the @chp@ plugin.