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@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@2160: If you are building Sonic Visualiser from a repository checkout, Chris@2160: install Poly/ML via Homebrew (`brew install polyml`) and run Chris@2160: `./repoint install` before proceeding. This isn't necessary when Chris@2160: building from an official source release. Chris@2160: Chris@2160: Then run `qmake -r` and `make`. (You may need to provide the full path Chris@2160: to the correct `qmake` executable for the version of Qt you want to Chris@2160: 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@1673: REQUIRED Qt v5 http://qt-project.org/ Chris@1673: REQUIRED Vamp Plugin SDK v2.x http://www.vamp-plugins.org/ 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@350: Chris@1673: Optional MAD mp3 decoder http://www.underbit.com/products/mad/ Chris@1673: Optional Oggz and fishsound http://xiph.org/oggz/ 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@1700: For Cap'n Proto, currently you will need the v0.6 release which (if Chris@1700: not available as a package) can be obtained from the releases page on Chris@1700: Github. To build it, you might do something like Chris@350: Chris@1700: $ curl -L -o capnproto-v0.6.0.tar.gz https://github.com/sandstorm-io/capnproto/archive/v0.6.0.tar.gz Chris@1700: $ tar xf capnproto-v0.6.0.tar.gz Chris@1700: $ cd capnproto-0.6.0/c++ Chris@1700: $ autoreconf -i Chris@1671: $ ./configure --enable-static --disable-shared Chris@1671: $ make && make install 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@1671: libpulse-dev libsamplerate-dev libsndfile-dev libsord-dev Chris@1671: libxml2-utils portaudio19-dev qt5-default libqt5svg5-dev raptor-utils Chris@2124: librubberband-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@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: