Chris@350: Chris@2160: How to compile Sonic Visualiser from source Chris@2160: =========================================== Chris@2160: Chris@2594: (NOTE: Refer also to .travis.yml and .appveyor.yml to how the Chris@2594: continuous-integration processes run a build) Chris@2160: Chris@2594: On Windows and Mac it is perhaps 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@2594: On Linux it is simpler to build from a source package. Chris@2594: 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@2594: build-essential libbz2-dev libfftw3-dev libfishsound1-dev libid3tag0-dev liblo-dev liblrdf0-dev libmad0-dev liboggz2-dev libopus-dev libopusfile-dev libpulse-dev libsamplerate-dev libsndfile-dev libsord-dev libxml2-utils portaudio19-dev qt5-default libqt5svg5-dev raptor2-utils librubberband-dev capnproto libcapnp-dev git mercurial autoconf 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@2594: various dependencies. You will need to have a SML compiler installed Chris@2594: for this to work, such as SML/NJ, MLton, or Poly/ML - hence the Chris@2594: presence of mlton in the Debian package list above. This is not Chris@2594: necessary when building from an official Sonic Visualiser source Chris@2594: release. Chris@2124: