Chris@350: Chris@2160: How to compile Sonic Visualiser from source Chris@2160: =========================================== Chris@2160: Chris@2160: (NOTE: Refer also to .travis.yml and .appveyor.yml to see what the Chris@2160: continuous-integration processes do to run a build) Chris@2160: Chris@2425: On Windows and Mac is it actually easier to build from a checkout of Chris@2425: the Mercurial repository (be sure to update to the appropriate tag if Chris@2425: you need a specific release) than it is to build from an official Chris@2425: Sonic Visualiser source release package. This is because the Chris@2425: repository checkout pulls in some required library builds, while the Chris@2425: source package contains only Sonic Visualiser code. Chris@2425: Chris@350: Chris@1671: Windows Chris@1671: ------- Chris@350: Chris@1671: Use the Qt Creator IDE with either the MinGW compiler (for 32-bit Chris@1671: builds) or Visual C++ (for 64-bit builds). Chris@350: Chris@1671: For details, see the wiki page at Chris@1671: Chris@1671: https://code.soundsoftware.ac.uk/projects/sonic-visualiser/wiki/WindowsBuild30 Chris@1671: Chris@1671: Chris@1671: MacOS Chris@1671: ----- Chris@1671: Chris@2160: Build from the command line, but do not use the configure script. cannam@1725: Chris@2160: Install Qt5, either via Homebrew or from the official installer. Chris@2160: Chris@2425: * If you are building from a repository checkout, install Poly/ML via Chris@2425: Homebrew (`brew install polyml`) and run `./repoint install` before Chris@2425: proceeding. This isn't necessary when building from an official source Chris@2425: release. Chris@2425: Chris@2426: * If you are building from an official source release, make sure the Chris@2426: following required dependencies are available, whether installed using Chris@2426: Homebrew or some other method: (This isn't necessary when building Chris@2426: from a repository checkout) Chris@2426: Chris@2426: REQUIRED Rubber Band Library http://www.breakfastquay.com/rubberband/ Chris@2426: REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/ Chris@2426: REQUIRED libsamplerate http://www.mega-nerd.com/SRC/ Chris@2426: REQUIRED FFTW3 http://www.fftw.org/ Chris@2426: REQUIRED bzip2 library http://www.bzip.org/ Chris@2426: REQUIRED Sord and Serd libraries http://drobilla.net/software/ Chris@2426: REQUIRED Cap'n Proto http://capnproto.org/ Chris@2426: Chris@2425: Then run `qmake -r sonic-visualiser.pro` and `make`. (You may need to Chris@2425: provide the full path to the correct `qmake` executable for the Chris@2425: version of Qt you want to build with.) Chris@1671: Chris@1671: Chris@1671: Linux Chris@1671: ----- Chris@1671: Chris@1671: $ ./configure && make && make install Chris@1671: Chris@1671: The following additional libraries are required or optional: Chris@350: Chris@2425: REQUIRED Qt v5 http://www.qt.io/ Chris@1673: REQUIRED Rubber Band Library http://www.breakfastquay.com/rubberband/ Chris@1673: REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/ Chris@1673: REQUIRED libsamplerate http://www.mega-nerd.com/SRC/ Chris@1673: REQUIRED FFTW3 http://www.fftw.org/ Chris@1673: REQUIRED bzip2 library http://www.bzip.org/ Chris@1673: REQUIRED Sord and Serd libraries http://drobilla.net/software/ Chris@1673: REQUIRED Cap'n Proto http://capnproto.org/ Chris@2425: REQUIRED MAD mp3 decoder http://www.underbit.com/products/mad/ Chris@2425: REQUIRED Oggz and fishsound http://xiph.org/oggz/ Chris@2425: REQUIRED Opus http://www.opus-codec.org/ Chris@350: Chris@1673: Optional liblo OSC library http://www.plugin.org.uk/liblo/ Chris@1673: Optional JACK http://www.jackaudio.org/ Chris@1673: Optional PortAudio v19 http://www.portaudio.com/ Chris@1673: Optional PulseAudio http://www.pulseaudio.org/ Chris@350: Chris@350: Although JACK, PortAudio, and PulseAudio are individually optional, Chris@1671: you will need to have at least one of them in order to get any audio Chris@1671: playback. Usually JACK is preferred on Linux, with PulseAudio as a Chris@1671: backup, and PortAudio is used elsewhere. Chris@350: Chris@350: On Linux, you will need the ALSA libraries (used for MIDI). Chris@350: Chris@2425: For Cap'n Proto you will need v0.6 or newer. Chris@1671: Chris@1671: For the rest, if you happen to be using a Debian-based Linux, you Chris@1671: probably want to apt install something like the following packages: Chris@1671: Chris@1671: build-essential libbz2-dev libfftw3-dev libfishsound1-dev Chris@1671: libid3tag0-dev liblo-dev liblrdf0-dev libmad0-dev liboggz2-dev Chris@2425: libopus-dev libopusfile-dev libpulse-dev libsamplerate-dev Chris@2425: libsndfile-dev libsord-dev libxml2-utils portaudio19-dev qt5-default Chris@2425: libqt5svg5-dev raptor-utils librubberband-dev git mercurial autoconf Chris@2425: automake libtool mlton Chris@1671: Chris@2160: If you are building Sonic Visualiser from a repository checkout, then Chris@2160: the configure script will use Repoint to obtain further checkouts of Chris@2160: various modules. You will need to have a SML compiler installed for Chris@2124: this to work, such as SML/NJ, MLton, or Poly/ML - hence the presence Chris@2124: of mlton in the Debian package list above. This is not necessary when Chris@2124: building from an official Sonic Visualiser source release. Chris@2124: