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@2425
|
8 On Windows and Mac is it actually easier to build from a checkout of
|
Chris@2425
|
9 the Mercurial repository (be sure to update to the appropriate tag if
|
Chris@2425
|
10 you need a specific release) than it is to build from an official
|
Chris@2425
|
11 Sonic Visualiser source release package. This is because the
|
Chris@2425
|
12 repository checkout pulls in some required library builds, while the
|
Chris@2425
|
13 source package contains only Sonic Visualiser code.
|
Chris@2425
|
14
|
Chris@350
|
15
|
Chris@1671
|
16 Windows
|
Chris@1671
|
17 -------
|
Chris@350
|
18
|
Chris@1671
|
19 Use the Qt Creator IDE with either the MinGW compiler (for 32-bit
|
Chris@1671
|
20 builds) or Visual C++ (for 64-bit builds).
|
Chris@350
|
21
|
Chris@1671
|
22 For details, see the wiki page at
|
Chris@1671
|
23
|
Chris@1671
|
24 https://code.soundsoftware.ac.uk/projects/sonic-visualiser/wiki/WindowsBuild30
|
Chris@1671
|
25
|
Chris@1671
|
26
|
Chris@1671
|
27 MacOS
|
Chris@1671
|
28 -----
|
Chris@1671
|
29
|
Chris@2160
|
30 Build from the command line, but do not use the configure script.
|
cannam@1725
|
31
|
Chris@2160
|
32 Install Qt5, either via Homebrew or from the official installer.
|
Chris@2160
|
33
|
Chris@2425
|
34 * If you are building from a repository checkout, install Poly/ML via
|
Chris@2425
|
35 Homebrew (`brew install polyml`) and run `./repoint install` before
|
Chris@2425
|
36 proceeding. This isn't necessary when building from an official source
|
Chris@2425
|
37 release.
|
Chris@2425
|
38
|
Chris@2426
|
39 * If you are building from an official source release, make sure the
|
Chris@2426
|
40 following required dependencies are available, whether installed using
|
Chris@2426
|
41 Homebrew or some other method: (This isn't necessary when building
|
Chris@2426
|
42 from a repository checkout)
|
Chris@2426
|
43
|
Chris@2426
|
44 REQUIRED Rubber Band Library http://www.breakfastquay.com/rubberband/
|
Chris@2426
|
45 REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/
|
Chris@2426
|
46 REQUIRED libsamplerate http://www.mega-nerd.com/SRC/
|
Chris@2426
|
47 REQUIRED FFTW3 http://www.fftw.org/
|
Chris@2426
|
48 REQUIRED bzip2 library http://www.bzip.org/
|
Chris@2426
|
49 REQUIRED Sord and Serd libraries http://drobilla.net/software/
|
Chris@2426
|
50 REQUIRED Cap'n Proto http://capnproto.org/
|
Chris@2426
|
51
|
Chris@2425
|
52 Then run `qmake -r sonic-visualiser.pro` and `make`. (You may need to
|
Chris@2425
|
53 provide the full path to the correct `qmake` executable for the
|
Chris@2425
|
54 version of Qt you want to build with.)
|
Chris@1671
|
55
|
Chris@1671
|
56
|
Chris@1671
|
57 Linux
|
Chris@1671
|
58 -----
|
Chris@1671
|
59
|
Chris@1671
|
60 $ ./configure && make && make install
|
Chris@1671
|
61
|
Chris@1671
|
62 The following additional libraries are required or optional:
|
Chris@350
|
63
|
Chris@2425
|
64 REQUIRED Qt v5 http://www.qt.io/
|
Chris@1673
|
65 REQUIRED Rubber Band Library http://www.breakfastquay.com/rubberband/
|
Chris@1673
|
66 REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/
|
Chris@1673
|
67 REQUIRED libsamplerate http://www.mega-nerd.com/SRC/
|
Chris@1673
|
68 REQUIRED FFTW3 http://www.fftw.org/
|
Chris@1673
|
69 REQUIRED bzip2 library http://www.bzip.org/
|
Chris@1673
|
70 REQUIRED Sord and Serd libraries http://drobilla.net/software/
|
Chris@1673
|
71 REQUIRED Cap'n Proto http://capnproto.org/
|
Chris@2425
|
72 REQUIRED MAD mp3 decoder http://www.underbit.com/products/mad/
|
Chris@2425
|
73 REQUIRED Oggz and fishsound http://xiph.org/oggz/
|
Chris@2425
|
74 REQUIRED Opus http://www.opus-codec.org/
|
Chris@350
|
75
|
Chris@1673
|
76 Optional liblo OSC library http://www.plugin.org.uk/liblo/
|
Chris@1673
|
77 Optional JACK http://www.jackaudio.org/
|
Chris@1673
|
78 Optional PortAudio v19 http://www.portaudio.com/
|
Chris@1673
|
79 Optional PulseAudio http://www.pulseaudio.org/
|
Chris@350
|
80
|
Chris@350
|
81 Although JACK, PortAudio, and PulseAudio are individually optional,
|
Chris@1671
|
82 you will need to have at least one of them in order to get any audio
|
Chris@1671
|
83 playback. Usually JACK is preferred on Linux, with PulseAudio as a
|
Chris@1671
|
84 backup, and PortAudio is used elsewhere.
|
Chris@350
|
85
|
Chris@350
|
86 On Linux, you will need the ALSA libraries (used for MIDI).
|
Chris@350
|
87
|
Chris@2425
|
88 For Cap'n Proto you will need v0.6 or newer.
|
Chris@1671
|
89
|
Chris@1671
|
90 For the rest, if you happen to be using a Debian-based Linux, you
|
Chris@1671
|
91 probably want to apt install something like the following packages:
|
Chris@1671
|
92
|
Chris@1671
|
93 build-essential libbz2-dev libfftw3-dev libfishsound1-dev
|
Chris@1671
|
94 libid3tag0-dev liblo-dev liblrdf0-dev libmad0-dev liboggz2-dev
|
Chris@2425
|
95 libopus-dev libopusfile-dev libpulse-dev libsamplerate-dev
|
Chris@2425
|
96 libsndfile-dev libsord-dev libxml2-utils portaudio19-dev qt5-default
|
Chris@2425
|
97 libqt5svg5-dev raptor-utils librubberband-dev git mercurial autoconf
|
Chris@2425
|
98 automake libtool mlton
|
Chris@1671
|
99
|
Chris@2160
|
100 If you are building Sonic Visualiser from a repository checkout, then
|
Chris@2160
|
101 the configure script will use Repoint to obtain further checkouts of
|
Chris@2160
|
102 various modules. You will need to have a SML compiler installed for
|
Chris@2124
|
103 this to work, such as SML/NJ, MLton, or Poly/ML - hence the presence
|
Chris@2124
|
104 of mlton in the Debian package list above. This is not necessary when
|
Chris@2124
|
105 building from an official Sonic Visualiser source release.
|
Chris@2124
|
106
|