Chris@350
|
1
|
Chris@2160
|
2 How to compile Sonic Visualiser from source
|
Chris@2160
|
3 ===========================================
|
Chris@2160
|
4
|
Chris@2160
|
5 (NOTE: Refer also to .travis.yml and .appveyor.yml to see what the
|
Chris@2160
|
6 continuous-integration processes do to run a build)
|
Chris@2160
|
7
|
Chris@350
|
8
|
Chris@1671
|
9 Windows
|
Chris@1671
|
10 -------
|
Chris@350
|
11
|
Chris@1671
|
12 Use the Qt Creator IDE with either the MinGW compiler (for 32-bit
|
Chris@1671
|
13 builds) or Visual C++ (for 64-bit builds).
|
Chris@350
|
14
|
Chris@1671
|
15 For details, see the wiki page at
|
Chris@1671
|
16
|
Chris@1671
|
17 https://code.soundsoftware.ac.uk/projects/sonic-visualiser/wiki/WindowsBuild30
|
Chris@1671
|
18
|
Chris@1671
|
19
|
Chris@1671
|
20 MacOS
|
Chris@1671
|
21 -----
|
Chris@1671
|
22
|
Chris@2160
|
23 Build from the command line, but do not use the configure script.
|
cannam@1725
|
24
|
Chris@2160
|
25 Install Qt5, either via Homebrew or from the official installer.
|
Chris@2160
|
26
|
Chris@2160
|
27 If you are building Sonic Visualiser from a repository checkout,
|
Chris@2160
|
28 install Poly/ML via Homebrew (`brew install polyml`) and run
|
Chris@2160
|
29 `./repoint install` before proceeding. This isn't necessary when
|
Chris@2160
|
30 building from an official source release.
|
Chris@2160
|
31
|
Chris@2160
|
32 Then run `qmake -r` and `make`. (You may need to provide the full path
|
Chris@2160
|
33 to the correct `qmake` executable for the version of Qt you want to
|
Chris@2160
|
34 build with.)
|
Chris@1671
|
35
|
Chris@1671
|
36
|
Chris@1671
|
37 Linux
|
Chris@1671
|
38 -----
|
Chris@1671
|
39
|
Chris@1671
|
40 $ ./configure && make && make install
|
Chris@1671
|
41
|
Chris@1671
|
42 The following additional libraries are required or optional:
|
Chris@350
|
43
|
Chris@1673
|
44 REQUIRED Qt v5 http://qt-project.org/
|
Chris@1673
|
45 REQUIRED Vamp Plugin SDK v2.x http://www.vamp-plugins.org/
|
Chris@1673
|
46 REQUIRED Rubber Band Library http://www.breakfastquay.com/rubberband/
|
Chris@1673
|
47 REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/
|
Chris@1673
|
48 REQUIRED libsamplerate http://www.mega-nerd.com/SRC/
|
Chris@1673
|
49 REQUIRED FFTW3 http://www.fftw.org/
|
Chris@1673
|
50 REQUIRED bzip2 library http://www.bzip.org/
|
Chris@1673
|
51 REQUIRED Sord and Serd libraries http://drobilla.net/software/
|
Chris@1673
|
52 REQUIRED Cap'n Proto http://capnproto.org/
|
Chris@350
|
53
|
Chris@1673
|
54 Optional MAD mp3 decoder http://www.underbit.com/products/mad/
|
Chris@1673
|
55 Optional Oggz and fishsound http://xiph.org/oggz/
|
Chris@1673
|
56 Optional liblo OSC library http://www.plugin.org.uk/liblo/
|
Chris@1673
|
57 Optional JACK http://www.jackaudio.org/
|
Chris@1673
|
58 Optional PortAudio v19 http://www.portaudio.com/
|
Chris@1673
|
59 Optional PulseAudio http://www.pulseaudio.org/
|
Chris@350
|
60
|
Chris@350
|
61 Although JACK, PortAudio, and PulseAudio are individually optional,
|
Chris@1671
|
62 you will need to have at least one of them in order to get any audio
|
Chris@1671
|
63 playback. Usually JACK is preferred on Linux, with PulseAudio as a
|
Chris@1671
|
64 backup, and PortAudio is used elsewhere.
|
Chris@350
|
65
|
Chris@350
|
66 On Linux, you will need the ALSA libraries (used for MIDI).
|
Chris@350
|
67
|
Chris@1700
|
68 For Cap'n Proto, currently you will need the v0.6 release which (if
|
Chris@1700
|
69 not available as a package) can be obtained from the releases page on
|
Chris@1700
|
70 Github. To build it, you might do something like
|
Chris@350
|
71
|
Chris@1700
|
72 $ curl -L -o capnproto-v0.6.0.tar.gz https://github.com/sandstorm-io/capnproto/archive/v0.6.0.tar.gz
|
Chris@1700
|
73 $ tar xf capnproto-v0.6.0.tar.gz
|
Chris@1700
|
74 $ cd capnproto-0.6.0/c++
|
Chris@1700
|
75 $ autoreconf -i
|
Chris@1671
|
76 $ ./configure --enable-static --disable-shared
|
Chris@1671
|
77 $ make && make install
|
Chris@1671
|
78
|
Chris@1671
|
79 For the rest, if you happen to be using a Debian-based Linux, you
|
Chris@1671
|
80 probably want to apt install something like the following packages:
|
Chris@1671
|
81
|
Chris@1671
|
82 build-essential libbz2-dev libfftw3-dev libfishsound1-dev
|
Chris@1671
|
83 libid3tag0-dev liblo-dev liblrdf0-dev libmad0-dev liboggz2-dev
|
Chris@1671
|
84 libpulse-dev libsamplerate-dev libsndfile-dev libsord-dev
|
Chris@1671
|
85 libxml2-utils portaudio19-dev qt5-default libqt5svg5-dev raptor-utils
|
Chris@2124
|
86 librubberband-dev git mercurial autoconf automake libtool mlton
|
Chris@1671
|
87
|
Chris@2160
|
88 If you are building Sonic Visualiser from a repository checkout, then
|
Chris@2160
|
89 the configure script will use Repoint to obtain further checkouts of
|
Chris@2160
|
90 various modules. You will need to have a SML compiler installed for
|
Chris@2124
|
91 this to work, such as SML/NJ, MLton, or Poly/ML - hence the presence
|
Chris@2124
|
92 of mlton in the Debian package list above. This is not necessary when
|
Chris@2124
|
93 building from an official Sonic Visualiser source release.
|
Chris@2124
|
94
|