changeset 1984:015416e3a298 import-audio-data

Merge from default branch
author Chris Cannam
date Tue, 04 Sep 2018 14:10:47 +0100
parents a28cab68eac6 (current diff) b316a89ec6a6 (diff)
children c37e67a2ff17
files main/MainWindow.cpp repoint-lock.json repoint-project.json
diffstat 33 files changed, 1096 insertions(+), 160 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Fri Jun 29 14:10:08 2018 +0100
+++ b/.hgignore	Tue Sep 04 14:10:47 2018 +0100
@@ -53,3 +53,7 @@
 glob:.repoint*
 build_win32
 build_win64
+*.AppImage
+*.AppDir
+Dockerfile*.gen
+squashfs-root
--- a/.hgtags	Fri Jun 29 14:10:08 2018 +0100
+++ b/.hgtags	Tue Sep 04 14:10:47 2018 +0100
@@ -72,3 +72,11 @@
 643768964863741124a66a8d55002d1ff95d8c43 sv_v3.1pre2
 643768964863741124a66a8d55002d1ff95d8c43 sv_v3.1pre2
 1fda47827e0e12cd83c172de8384e8136d9c4ca2 sv_v3.1pre2
+a38a8c4746c27ad5eae055ffa3f141a816f9e7a2 sv_v3.1pre3
+2ea9537868d50ba1a4d4cd54ac3bdeb10b9f4de0 sv_v3.1pre4
+2ea9537868d50ba1a4d4cd54ac3bdeb10b9f4de0 sv_v3.1pre4
+b465eb7018bcc0add14886ac57d4f79f38401b8f sv_v3.1pre4
+f4d7c9522fcff88292ed2b91bc89b30eeaa6794c sv_v3.1
+4ff2193314d406c3a83c86b409414cf60a0b1406 sv_v3.1.1
+4ff2193314d406c3a83c86b409414cf60a0b1406 sv_v3.1.1
+690eaf241ad5f57e4ed59f09c0f4c1ce659b5571 sv_v3.1.1
--- a/.travis.yml	Fri Jun 29 14:10:08 2018 +0100
+++ b/.travis.yml	Tue Sep 04 14:10:47 2018 +0100
@@ -3,16 +3,17 @@
 
 matrix:
   include:
+    - os: osx
+      osx_image: xcode9
     - os: linux
       dist: trusty
-      sudo: false
-    - os: osx
-      osx_image: xcode9
-
-addons:
-  apt:
-    packages:
-     - libbz2-dev libfftw3-dev libfishsound1-dev libid3tag0-dev liblo-dev liblrdf0-dev libmad0-dev liboggz2-dev libpulse-dev libsamplerate-dev libsndfile-dev libsord-dev libxml2-utils portaudio19-dev qt5-default libqt5svg5-dev raptor-utils librubberband-dev autoconf libtool git mlton
+      sudo: required
+      addons:
+        apt:
+          sources:
+           - ubuntu-toolchain-r-test
+          packages:
+           - libbz2-dev libfftw3-dev libfishsound1-dev libid3tag0-dev liblo-dev liblrdf0-dev libmad0-dev liboggz2-dev libpulse-dev libsamplerate-dev libsndfile-dev libsord-dev libxml2-utils portaudio19-dev qt5-default libqt5svg5-dev raptor-utils librubberband-dev autoconf libtool git mlton
 
 before_install:
   - if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then brew update ; fi
@@ -20,7 +21,8 @@
   - if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then brew install qt5 ; fi
   - if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then export PATH=$PATH:/usr/local/opt/qt5/bin ; fi
   - ( cd ../ ; git clone https://github.com/sandstorm-io/capnproto )
-  - ( cd ../capnproto/c++ ; ./setup-autotools.sh && autoreconf -i )
+  - ( cd ../capnproto/ ; git checkout v0.6.1 )
+  - ( cd ../capnproto/c++ ; autoreconf -i )
   - ( cd ../capnproto/c++ ; ./configure && make && sudo make install )
 
 before_script:
@@ -28,4 +30,4 @@
 
 script:
   - make -j3
-
+  - if [[ "$TRAVIS_OS_NAME" = "linux" ]] ; then ./deploy/linux/deploy-appimage.sh ; fi
--- a/CHANGELOG	Fri Jun 29 14:10:08 2018 +0100
+++ b/CHANGELOG	Tue Sep 04 14:10:47 2018 +0100
@@ -1,15 +1,32 @@
 
-Changes in Sonic Visualiser 3.1 (July 2018) since the previous release 3.1:
+Changes in Sonic Visualiser 3.1.1 (Aug 2018) since the previous release 3.1:
 
- - Properly chunk the export of audio data and other CSV data so that
-   very large exports don't hang the UI or run us out of memory
-   (thanks to Lucas Thompson)
+ - Fix failure to record correctly into an empty session with certain
+   audio drivers
+
+ - Fix failure to run LADSPA plugins at all, except with some unusual
+   path layouts
+
+ - Fix failure to silence sonified notes when rewinding backwards or
+   jumping back from a loop endpoint
+
+ - Fix macOS .dmg image so as to use older HFS+ filesystem for compatibility
+
+
+Changes in Sonic Visualiser 3.1 (July 2018) since the previous release 3.0.3:
 
  - Add Plugins tab to Preferences dialog, from which you can review
    the plugin load paths and see which plugins were loaded from which
    locations, and also customise load paths (though the various path
    environment variables are still supported)
 
+ - Stream the export of audio data and other CSV data so that
+   very large exports don't hang the UI or run us out of memory
+   (thanks to Lucas Thompson)
+
+ - Ensure vertical scale appears for auto-align layers when there is
+   nothing else to auto-align them to
+
  - Fix another long-standing Windows-platform wide-char/utf8
    conversion problem, with environment variable naming and contents
 
@@ -25,6 +42,10 @@
    model. This is a backward-incompatible change but is a far more
    intuitive way for the function to work
 
+ - Use dark background for bright colours in time-value/note/etc
+   layers as well as e.g. waveforms - this is how it was always
+   "intended to" work, but it is a backward-incompatible change
+
  - Make "Select All" select the whole span of everything that exists,
    not just the main model
 
--- a/README.md	Fri Jun 29 14:10:08 2018 +0100
+++ b/README.md	Tue Sep 04 14:10:47 2018 +0100
@@ -50,14 +50,14 @@
 Christian Landone, Mathieu Barthet, Dan Stowell, Jesus Corral Garcia,
 Matthias Mauch, and Craig Sapp.
 
-Code copyright 2005-2007 Chris Cannam and copyright 2006-2017 Queen
+Code copyright 2005-2007 Chris Cannam and copyright 2006-2018 Queen
 Mary, University of London, except where indicated in the individual
 source files.
 
 Russian translation provided by Alexandre Prokoudine, copyright
-2006-2017 Alexandre Prokoudine.
+2006-2018 Alexandre Prokoudine.
 
-Czech translation provided by Pavel Fric, copyright 2010-2017 Pavel
+Czech translation provided by Pavel Fric, copyright 2010-2018 Pavel
 Fric.
 
 This work was partially funded by the European Commission through the
--- a/acinclude.m4	Fri Jun 29 14:10:08 2018 +0100
+++ b/acinclude.m4	Tue Sep 04 14:10:47 2018 +0100
@@ -261,3 +261,54 @@
   fi
 ])
 
+# ===========================================================================
+#  https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
+#
+# DESCRIPTION
+#
+#   Check whether the given FLAG works with the current language's compiler
+#   or gives an error.  (Warnings, however, are ignored)
+#
+#   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
+#   success/failure.
+#
+#   If EXTRA-FLAGS is defined, it is added to the current language's default
+#   flags (e.g. CFLAGS) when the check is done.  The check is thus made with
+#   the flags: "CFLAGS EXTRA-FLAGS FLAG".  This can for example be used to
+#   force the compiler to issue an error when a bad flag is given.
+#
+#   INPUT gives an alternative input source to AC_COMPILE_IFELSE.
+#
+#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
+#   macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved.  This file is offered as-is, without any
+#   warranty.
+
+AC_DEFUN([AX_CHECK_COMPILE_FLAG],
+[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
+AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
+  ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
+  _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
+  AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
+    [AS_VAR_SET(CACHEVAR,[yes])],
+    [AS_VAR_SET(CACHEVAR,[no])])
+  _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
+AS_VAR_IF(CACHEVAR,yes,
+  [m4_default([$2], :)],
+  [m4_default([$3], :)])
+AS_VAR_POPDEF([CACHEVAR])dnl
+])dnl AX_CHECK_COMPILE_FLAGS
--- a/base.pri	Fri Jun 29 14:10:08 2018 +0100
+++ b/base.pri	Tue Sep 04 14:10:47 2018 +0100
@@ -31,5 +31,5 @@
 # Defines for Dataquay
 DEFINES += USE_SORD
 
-CONFIG += qt thread warn_on stl rtti exceptions c++11
+CONFIG += qt thread warn_on stl rtti exceptions
 
--- a/capnp-regen.pri	Fri Jun 29 14:10:08 2018 +0100
+++ b/capnp-regen.pri	Tue Sep 04 14:10:47 2018 +0100
@@ -5,7 +5,9 @@
 capnpc.commands = capnp compile --src-prefix=$$PWD/piper/capnp -oc++:$$PWD/piper-cpp/vamp-capnp $$capnpc.depends
 
 macx* {
-    capnpc.commands=$$PWD/sv-dependency-builds/osx/bin/capnp -I$$PWD/sv-dependency-builds/osx/include compile --src-prefix=$$PWD/piper/capnp -o$$PWD/sv-dependency-builds/osx/bin/capnpc-c++:$$PWD/piper-cpp/vamp-capnp $$capnpc.depends
+    exists(sv-dependency-builds) {
+        capnpc.commands=$$PWD/sv-dependency-builds/osx/bin/capnp -I$$PWD/sv-dependency-builds/osx/include compile --src-prefix=$$PWD/piper/capnp -o$$PWD/sv-dependency-builds/osx/bin/capnpc-c++:$$PWD/piper-cpp/vamp-capnp $$capnpc.depends
+    }
 }
 
 win32-g++ {
--- a/config.pri.in	Fri Jun 29 14:10:08 2018 +0100
+++ b/config.pri.in	Tue Sep 04 14:10:47 2018 +0100
@@ -13,6 +13,8 @@
 QMAKE_CXXFLAGS += @CXXFLAGS@
 QMAKE_LFLAGS += @LDFLAGS@
 
+CONFIG += @CXXSTANDARD@
+
 linux*:LIBS += -L$$PWD -lbase -lasound -ldl 
 
 macx*:DEFINES += HAVE_COREAUDIO
@@ -20,4 +22,6 @@
 
 LIBS += @LIBS@
 
-DEFINES += HAVE_PIPER HAVE_PLUGIN_CHECKER_HELPER
+linux*:LIBS -= -ljack
+
+DEFINES += HAVE_PIPER HAVE_PLUGIN_CHECKER_HELPER DYNAMIC_JACK
--- a/configure	Fri Jun 29 14:10:08 2018 +0100
+++ b/configure	Tue Sep 04 14:10:47 2018 +0100
@@ -624,6 +624,7 @@
 LIBOBJS
 QMAKE_CONFIG
 HAVES
+CXXSTANDARD
 CXXFLAGS_MINIMAL
 CUT
 SHA1SUM
@@ -4422,13 +4423,53 @@
 CXXFLAGS_DEBUG="$AUTOCONF_CXXFLAGS"
 CXXFLAGS_RELEASE="$AUTOCONF_CXXFLAGS"
 CXXFLAGS_MINIMAL="$AUTOCONF_CXXFLAGS"
+CXXSTANDARD=c++14
 
 if test "x$GCC" = "xyes"; then
-   	CXXFLAGS_ANY="-std=c++11 -fpic -Wall -Wextra -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe"
+   	CXXFLAGS_ANY="-fpic -Wall -Wextra -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe"
         CXXFLAGS_DEBUG="$CXXFLAGS_ANY -g -O2 -Werror"
    	CXXFLAGS_RELEASE="$CXXFLAGS_ANY -g0 -O3 -ffast-math"
    	CXXFLAGS_MINIMAL="$CXXFLAGS_ANY -g0 -O0"
-        LIBS_DEBUG="$LIBS -lubsan"
+        LIBS_DEBUG="$LIBS"
+        as_CACHEVAR=`$as_echo "ax_cv_check_cxxflags__--std=$CXXSTANDARD" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler accepts --std=$CXXSTANDARD" >&5
+$as_echo_n "checking whether C++ compiler accepts --std=$CXXSTANDARD... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$CXXFLAGS
+  CXXFLAGS="$CXXFLAGS  --std=$CXXSTANDARD"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  eval "$as_CACHEVAR=yes"
+else
+  eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CXXFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+  :
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: Compiler does not appear to support $CXXSTANDARD, falling back to c++11" >&5
+$as_echo "$as_me: Compiler does not appear to support $CXXSTANDARD, falling back to c++11" >&6;}
+        CXXSTANDARD=c++11
+fi
+
 fi
 
 CXXFLAGS_BUILD="$CXXFLAGS_RELEASE"
@@ -4496,8 +4537,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bz2" >&5
+$as_echo_n "checking for bz2... " >&6; }
 
 if test -n "$bz2_CFLAGS"; then
     pkg_cv_bz2_CFLAGS="$bz2_CFLAGS"
@@ -4537,7 +4578,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -4556,7 +4597,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -4647,8 +4688,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw3" >&5
+$as_echo_n "checking for fftw3... " >&6; }
 
 if test -n "$fftw3_CFLAGS"; then
     pkg_cv_fftw3_CFLAGS="$fftw3_CFLAGS"
@@ -4688,7 +4729,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -4707,7 +4748,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -4798,8 +4839,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw3f" >&5
+$as_echo_n "checking for fftw3f... " >&6; }
 
 if test -n "$fftw3f_CFLAGS"; then
     pkg_cv_fftw3f_CFLAGS="$fftw3f_CFLAGS"
@@ -4839,7 +4880,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -4858,7 +4899,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -4949,8 +4990,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sndfile" >&5
+$as_echo_n "checking for sndfile... " >&6; }
 
 if test -n "$sndfile_CFLAGS"; then
     pkg_cv_sndfile_CFLAGS="$sndfile_CFLAGS"
@@ -4990,7 +5031,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -5009,7 +5050,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -5100,8 +5141,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsamplerate" >&5
+$as_echo_n "checking for libsamplerate... " >&6; }
 
 if test -n "$libsamplerate_CFLAGS"; then
     pkg_cv_libsamplerate_CFLAGS="$libsamplerate_CFLAGS"
@@ -5141,7 +5182,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -5160,7 +5201,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -5251,8 +5292,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rubberband" >&5
+$as_echo_n "checking for rubberband... " >&6; }
 
 if test -n "$rubberband_CFLAGS"; then
     pkg_cv_rubberband_CFLAGS="$rubberband_CFLAGS"
@@ -5292,7 +5333,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -5311,7 +5352,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -5402,8 +5443,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sord" >&5
+$as_echo_n "checking for sord... " >&6; }
 
 if test -n "$sord_CFLAGS"; then
     pkg_cv_sord_CFLAGS="$sord_CFLAGS"
@@ -5443,7 +5484,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -5462,7 +5503,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -5553,8 +5594,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for serd" >&5
+$as_echo_n "checking for serd... " >&6; }
 
 if test -n "$serd_CFLAGS"; then
     pkg_cv_serd_CFLAGS="$serd_CFLAGS"
@@ -5594,7 +5635,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -5613,7 +5654,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -5689,8 +5730,8 @@
 # version with pkg-config, we check for the symbol with the compiler.
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for capnp >= 0.6" >&5
-$as_echo_n "checking for capnp >= 0.6... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for capnp" >&5
+$as_echo_n "checking for capnp... " >&6; }
 
 if test -n "$capnp_CFLAGS"; then
     pkg_cv_capnp_CFLAGS="$capnp_CFLAGS"
@@ -5730,7 +5771,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -5749,7 +5790,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module capnp using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module capnp using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module capnp using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find required module capnp using pkg-config, trying again by old-fashioned means" >&6;}
@@ -5801,8 +5842,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for liblo" >&5
+$as_echo_n "checking for liblo... " >&6; }
 
 if test -n "$liblo_CFLAGS"; then
     pkg_cv_liblo_CFLAGS="$liblo_CFLAGS"
@@ -5842,7 +5883,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -5861,7 +5902,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -5956,8 +5997,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for portaudio" >&5
+$as_echo_n "checking for portaudio... " >&6; }
 
 if test -n "$portaudio_CFLAGS"; then
     pkg_cv_portaudio_CFLAGS="$portaudio_CFLAGS"
@@ -5997,7 +6038,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -6016,7 +6057,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -6111,8 +6152,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JACK" >&5
+$as_echo_n "checking for JACK... " >&6; }
 
 if test -n "$JACK_CFLAGS"; then
     pkg_cv_JACK_CFLAGS="$JACK_CFLAGS"
@@ -6152,7 +6193,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -6171,7 +6212,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -6266,8 +6307,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libpulse" >&5
+$as_echo_n "checking for libpulse... " >&6; }
 
 if test -n "$libpulse_CFLAGS"; then
     pkg_cv_libpulse_CFLAGS="$libpulse_CFLAGS"
@@ -6307,7 +6348,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -6326,7 +6367,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -6421,8 +6462,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lrdf" >&5
+$as_echo_n "checking for lrdf... " >&6; }
 
 if test -n "$lrdf_CFLAGS"; then
     pkg_cv_lrdf_CFLAGS="$lrdf_CFLAGS"
@@ -6462,7 +6503,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -6481,7 +6522,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -6576,8 +6617,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for oggz" >&5
+$as_echo_n "checking for oggz... " >&6; }
 
 if test -n "$oggz_CFLAGS"; then
     pkg_cv_oggz_CFLAGS="$oggz_CFLAGS"
@@ -6617,7 +6658,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -6636,7 +6677,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -6731,8 +6772,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fishsound" >&5
+$as_echo_n "checking for fishsound... " >&6; }
 
 if test -n "$fishsound_CFLAGS"; then
     pkg_cv_fishsound_CFLAGS="$fishsound_CFLAGS"
@@ -6772,7 +6813,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -6791,7 +6832,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -6886,8 +6927,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mad" >&5
+$as_echo_n "checking for mad... " >&6; }
 
 if test -n "$mad_CFLAGS"; then
     pkg_cv_mad_CFLAGS="$mad_CFLAGS"
@@ -6927,7 +6968,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -6946,7 +6987,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -7041,8 +7082,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for id3tag" >&5
+$as_echo_n "checking for id3tag... " >&6; }
 
 if test -n "$id3tag_CFLAGS"; then
     pkg_cv_id3tag_CFLAGS="$id3tag_CFLAGS"
@@ -7082,7 +7123,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -7101,7 +7142,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -7198,8 +7239,8 @@
 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_VERSION_TEST" >&5
-$as_echo_n "checking for $SV_MODULE_VERSION_TEST... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11" >&5
+$as_echo_n "checking for X11... " >&6; }
 
 if test -n "$X11_CFLAGS"; then
     pkg_cv_X11_CFLAGS="$X11_CFLAGS"
@@ -7239,7 +7280,7 @@
 
 
 if test $pkg_failed = yes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -7258,7 +7299,7 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
 elif test $pkg_failed = untried; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
@@ -7353,6 +7394,7 @@
 
 
 
+
 ac_config_files="$ac_config_files config.pri"
 
 
--- a/configure.ac	Fri Jun 29 14:10:08 2018 +0100
+++ b/configure.ac	Tue Sep 04 14:10:47 2018 +0100
@@ -51,13 +51,16 @@
 CXXFLAGS_DEBUG="$AUTOCONF_CXXFLAGS"
 CXXFLAGS_RELEASE="$AUTOCONF_CXXFLAGS"
 CXXFLAGS_MINIMAL="$AUTOCONF_CXXFLAGS"
+CXXSTANDARD=c++14
 
 if test "x$GCC" = "xyes"; then
-   	CXXFLAGS_ANY="-std=c++11 -fpic -Wall -Wextra -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe"
+   	CXXFLAGS_ANY="-fpic -Wall -Wextra -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe"
         CXXFLAGS_DEBUG="$CXXFLAGS_ANY -g -O2 -Werror"
    	CXXFLAGS_RELEASE="$CXXFLAGS_ANY -g0 -O3 -ffast-math"
    	CXXFLAGS_MINIMAL="$CXXFLAGS_ANY -g0 -O0"
-        LIBS_DEBUG="$LIBS -lubsan"
+        LIBS_DEBUG="$LIBS"
+        AX_CHECK_COMPILE_FLAG(--std=$CXXSTANDARD, [], [AC_MSG_NOTICE([Compiler does not appear to support $CXXSTANDARD, falling back to c++11])
+        CXXSTANDARD=c++11])
 fi
 
 CXXFLAGS_BUILD="$CXXFLAGS_RELEASE"
@@ -128,6 +131,7 @@
 AC_SUBST(CFLAGS)
 AC_SUBST(CXXFLAGS)
 AC_SUBST(CXXFLAGS_MINIMAL)
+AC_SUBST(CXXSTANDARD)
 AC_SUBST(LDFLAGS)
 AC_SUBST(HAVES)
 AC_SUBST(LIBS)
--- a/convert.pro	Fri Jun 29 14:10:08 2018 +0100
+++ b/convert.pro	Tue Sep 04 14:10:47 2018 +0100
@@ -1,7 +1,7 @@
 
 TEMPLATE = app
 
-CONFIG += stl c++11 exceptions console warn_on
+CONFIG += stl exceptions console warn_on 
 
 CONFIG -= qt
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/linux/bintray.json	Tue Sep 04 14:10:47 2018 +0100
@@ -0,0 +1,28 @@
+{
+    "package": {
+        "name": "sonic-visualiser",
+        "repo": "sonic-visualiser",
+        "subject": "sonic-visualiser",
+        "desc": "Sonic Visualiser",
+        "website_url": "https://sonicvisualiser.org/",
+        "vcs_url": "https://code.soundsoftware.ac.uk/hg/sonic-visualiser",
+        "licenses": ["GPL-2.0"],
+        "public_download_numbers": false,
+        "public_stats": false
+    },
+
+    "version": {
+        "name": "Continuous",
+        "desc": "Uploaded from continuous integration server"
+    },
+
+    "files": [
+        {
+            "includePattern": "\./(SonicVisualiser-.*-x86_64\\.AppImage)",
+            "uploadPattern": "$1",
+            "matrixParams": { "override": 1 }
+        }
+    ],
+
+    "publish": true
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/linux/build-and-test-appimage.sh	Tue Sep 04 14:10:47 2018 +0100
@@ -0,0 +1,41 @@
+#!/bin/bash
+#
+# Docker required
+
+set -eu
+
+current=$(hg id | awk '{ print $1; }')
+
+case "$current" in
+    *+) echo "ERROR: Current working copy has been modified - unmodified copy required so we know we can check it out separately and obtain the same contents"; exit 2;;
+    *);;
+esac
+
+echo
+echo "Building appimage from revision $current..."
+
+dockerdir=deploy/linux/docker
+
+cat "$dockerdir"/Dockerfile_appimage.in | \
+    perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
+         "$dockerdir"/Dockerfile_appimage.gen
+
+cat "$dockerdir"/Dockerfile_test_appimage.in | \
+    perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
+         "$dockerdir"/Dockerfile_test_appimage.gen
+
+dockertag="cannam/sonic-visualiser-appimage-$current"
+
+sudo docker build -t "$dockertag" -f "$dockerdir"/Dockerfile_appimage.gen "$dockerdir"
+
+outdir="$dockerdir/output"
+mkdir -p "$outdir"
+
+container=$(sudo docker create "$dockertag")
+
+sudo docker cp "$container":output.tar "$outdir"
+sudo docker rm "$container"
+
+( cd "$outdir" ; tar xf output.tar && rm -f output.tar )
+
+sudo docker build -f "$dockerdir"/Dockerfile_test_appimage.gen "$dockerdir"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/linux/deploy-appimage.sh	Tue Sep 04 14:10:47 2018 +0100
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+set -eu
+
+program=sonic-visualiser
+checker=vamp-plugin-load-checker
+piper=piper-vamp-simple-server
+
+get_id() {
+    if [ -d .hg ]; then
+        hg id | sed 's/[+ ].*$//'
+    elif [ -d .git ]; then
+        git rev-parse --short HEAD
+    else
+        echo "WARNING: can't figure out revision from VCS metadata" 1>&2
+        echo "unknown"
+    fi
+}
+
+version=$(get_id)
+
+targetdir="${program}.AppDir"
+
+echo "Target dir is $targetdir"
+
+if [ -d "$targetdir" ]; then
+    echo "Target directory exists, not overwriting"
+    exit
+fi
+
+mkdir "$targetdir"
+
+mkdir -p "$targetdir"/usr/bin
+mkdir -p "$targetdir"/usr/lib
+
+cp "$program" "$checker" "$piper" "$targetdir"/usr/bin/
+
+ldd /usr/lib/x86_64-linux-gnu/libpulse.so.0 || true
+
+add_dependencies() {
+
+    local binary="$1"
+
+    echo "ldd $binary yields:"
+    ldd "$binary"
+    
+    for lib in $(ldd "$binary" | grep '=> [^ ]*/lib/' | \
+                     sed 's/^.*=> //' | sed 's/ .*$//'); do
+
+        base=$(basename "$lib")
+        if grep -v '^#' sv-dependency-builds/linux/appimage/excludelist |
+                grep -q "^$base$" ; then
+            echo "excluding: $lib"
+            continue
+        fi
+
+        target="$targetdir/usr/lib/$(basename $lib)"
+        
+        mkdir -p "$(dirname $target)"
+
+        if [ ! -f "$target" ]; then
+
+            cp -Lv "$lib" "$target"
+            chmod +x "$target"
+            
+            add_dependencies "$lib"
+            
+        fi
+    done
+}
+
+add_dependencies "$program"
+add_dependencies "$checker"
+add_dependencies "$piper"
+
+qtplugins="gif icns ico jpeg tga tiff wbmp webp cocoa minimal offscreen xcb"
+qtlibdirs="/usr/lib/x86_64-linux-gnu/qt5 /usr/lib/x86_64-linux-gnu/qt /usr/lib/qt5 /usr/lib/qt"
+
+QTDIR=${QTDIR:-}
+if [ -n "$QTDIR" ]; then
+    qtlibdirs="$QTDIR $qtlibdirs"
+fi
+
+for plug in $qtplugins; do
+    for libdir in $qtlibdirs; do
+        lib=$(find $libdir/plugins -name libq$plug.so -print 2>/dev/null || true)
+        if [ -n "$lib" ]; then
+            if [ -f "$lib" ]; then
+                subdir=$(basename $(dirname $lib))
+                if [ t"$subdir" = t"plugins" ]; then
+                    subdir=""
+                fi
+                target="$targetdir/usr/lib/qt5/plugins/$subdir/$(basename $lib)"
+                mkdir -p "$(dirname $target)"
+                cp -v "$lib" "$target"
+                chmod +x "$target"
+                add_dependencies "$lib"
+                break
+            fi
+        fi
+    done
+done
+
+cp "$program.desktop" "$targetdir/"
+
+cp "icons/sv-icon.svg" "$targetdir/"
+cp "icons/sonic-visualiser.svg" "$targetdir/"
+
+cp sv-dependency-builds/linux/appimage/AppRun-x86_64 "$targetdir/AppRun"
+chmod +x "$targetdir/AppRun"
+
+# Do this with a separate extraction step, so as to make it work even
+# in situations where FUSE is unavailable like in a Docker container
+export ARCH=x86_64
+sv-dependency-builds/linux/appimage/appimagetool-x86_64.AppImage --appimage-extract
+./squashfs-root/AppRun "$targetdir" "SonicVisualiser-$version-x86_64.AppImage"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/linux/docker/Dockerfile_appimage.in	Tue Sep 04 14:10:47 2018 +0100
@@ -0,0 +1,69 @@
+# This pulls the latest versions of capnp & SV from repos - so you
+# will need to defeat the Docker cache by destroying the container
+# each time you want to update it
+#
+FROM ubuntu:14.04
+MAINTAINER Chris Cannam <cannam@all-day-breakfast.com>
+RUN apt-get update && \
+    apt-get install -y \
+    software-properties-common \
+    build-essential \
+    libbz2-dev \
+    libfftw3-dev \
+    libfishsound1-dev \
+    libid3tag0-dev \
+    liblo-dev \
+    liblrdf0-dev \
+    libmad0-dev \
+    liboggz2-dev \
+    libpulse-dev \
+    libasound2-dev \
+    libjack-dev \
+    libsamplerate-dev \
+    libsndfile-dev \
+    libsord-dev \
+    libxml2-utils \
+    libgl1-mesa-dev \
+    raptor-utils \
+    librubberband-dev \
+    git \
+    mercurial \
+    curl wget \
+    mlton \
+    autoconf automake libtool lintian
+
+# NB we do not install portaudio. We don't want to end up including it
+# in the bundle, because it comes with a dependency on the JACK
+# library which we don't want to bundle and can't assume people will
+# have. However, we do install JACK because the Dynamic JACK mechanism
+# should ensure we can detect, configure, and use that without
+# actually linking against it. We also have Pulse as the default I/O.
+
+RUN apt-add-repository -y ppa:beineri/opt-qt-5.10.1-trusty
+RUN apt-get update && \
+    apt-get install -y \
+    qt510base \
+    qt510svg
+RUN apt-get clean && rm -rf /var/lib/apt/lists/*
+
+RUN locale-gen en_US.UTF-8
+ENV LANG en_US.UTF-8  
+ENV LANGUAGE en_US:en  
+ENV LC_ALL en_US.UTF-8
+
+RUN hg clone -r[[REVISION]] https://code.soundsoftware.ac.uk/hg/sonic-visualiser
+
+RUN git clone https://github.com/sandstorm-io/capnproto
+WORKDIR capnproto
+RUN git checkout v0.6.1
+WORKDIR c++
+RUN autoreconf -i && ./configure && make -j3 && make install
+
+WORKDIR ../../sonic-visualiser
+ENV QTDIR /opt/qt510
+ENV PATH /opt/qt510/bin:$PATH
+RUN ./configure
+RUN make -j3
+
+RUN deploy/linux/deploy-appimage.sh
+RUN tar cvf output.tar *.AppImage && cp output.tar ..
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/linux/docker/Dockerfile_test_appimage.in	Tue Sep 04 14:10:47 2018 +0100
@@ -0,0 +1,8 @@
+FROM centos:7
+RUN yum update
+RUN yum -y groupinstall "X Window System"
+RUN yum -y install wget
+ADD output/SonicVisualiser-[[REVISION]]-x86_64.AppImage SV.AppImage
+RUN chmod +x SV.AppImage
+RUN ./SV.AppImage --appimage-extract
+RUN ./squashfs-root/AppRun
--- a/deploy/linux/docker/build.sh	Fri Jun 29 14:10:08 2018 +0100
+++ b/deploy/linux/docker/build.sh	Tue Sep 04 14:10:47 2018 +0100
@@ -22,8 +22,12 @@
 dockerfile="Dockerfile_v${version}_${platform}"
 
 if [ ! -f "$dockerdir/$dockerfile" ]; then
-    echo "No matching docker file $dockerfile found in $dockerdir"
-    exit 1
+    echo "No matching docker file $dockerfile found in $dockerdir, trying again without version"
+    dockerfile="Dockerfile_${platform}"
+    if [ ! -f "$dockerdir/$dockerfile" ]; then
+        echo "No matching docker file $dockerfile found in $dockerdir either"
+        exit 1
+    fi
 fi
 
 dockertag="cannam/sonic-visualiser-$platform"
--- a/deploy/osx/deploy.sh	Fri Jun 29 14:10:08 2018 +0100
+++ b/deploy/osx/deploy.sh	Tue Sep 04 14:10:47 2018 +0100
@@ -94,7 +94,7 @@
 echo
 echo "Making dmg..."
 
-hdiutil create -srcfolder "$volume" "$dmg" -volname "$volume" && 
+hdiutil create -srcfolder "$volume" "$dmg" -volname "$volume" -fs HFS+ && 
 	rm -r "$volume"
 
 echo "Done"
--- a/deploy/win32/sonic-visualiser.wxs	Fri Jun 29 14:10:08 2018 +0100
+++ b/deploy/win32/sonic-visualiser.wxs	Tue Sep 04 14:10:47 2018 +0100
@@ -5,7 +5,7 @@
       Id="*"
       Language="1033"
       Codepage="1252" 
-      Version="3.1"
+      Version="3.2"
       UpgradeCode="D476941E-65F3-4962-9E72-B40FAAE5DBD0"
       Manufacturer="Queen Mary, University of London">
     
--- a/deploy/win64/build-32.bat	Fri Jun 29 14:10:08 2018 +0100
+++ b/deploy/win64/build-32.bat	Tue Sep 04 14:10:47 2018 +0100
@@ -3,7 +3,7 @@
 
 set STARTPWD=%CD%
 
-set QTDIR=C:\Qt\5.11.0\mingw53_32
+set QTDIR=C:\Qt\5.11.1\mingw53_32
 if not exist %QTDIR% (
 @   echo Could not find 32-bit Qt
 @   exit /b 2
@@ -45,9 +45,11 @@
 copy %QTDIR%\plugins\platforms\qwindows.dll .\release
 copy %QTDIR%\plugins\styles\qwindowsvistastyle.dll .\release
 
-.\release\test-svcore-base
-.\release\test-svcore-system
-.\release\test-svcore-data-fileio
-.\release\test-svcore-data-model
+rem some of these expect to be run from the project root
+cd ..
+build_win32\release\test-svcore-base
+build_win32\release\test-svcore-system
+build_win32\release\test-svcore-data-fileio
+build_win32\release\test-svcore-data-model
 
 set PATH=%ORIGINALPATH%
--- a/deploy/win64/build-64.bat	Fri Jun 29 14:10:08 2018 +0100
+++ b/deploy/win64/build-64.bat	Tue Sep 04 14:10:47 2018 +0100
@@ -5,7 +5,7 @@
 
 set STARTPWD=%CD%
 
-set QTDIR=C:\Qt\5.11.0\msvc2017_64
+set QTDIR=C:\Qt\5.11.1\msvc2017_64
 if not exist %QTDIR% (
 @   echo Could not find 64-bit Qt
 @   exit /b 2
@@ -52,9 +52,11 @@
 copy %QTDIR%\plugins\styles\qwindowsvistastyle.dll .\release
 copy ..\sv-dependency-builds\win64-msvc\lib\libsndfile-1.dll .\release
 
-.\release\test-svcore-base
-.\release\test-svcore-system
-.\release\test-svcore-data-fileio
-.\release\test-svcore-data-model
+rem some of these expect to be run from the project root
+cd ..
+build_win64\release\test-svcore-base
+build_win64\release\test-svcore-system
+build_win64\release\test-svcore-data-fileio
+build_win64\release\test-svcore-data-model
 
 set PATH=%ORIGINALPATH%
--- a/deploy/win64/sonic-visualiser.wxs	Fri Jun 29 14:10:08 2018 +0100
+++ b/deploy/win64/sonic-visualiser.wxs	Tue Sep 04 14:10:47 2018 +0100
@@ -9,7 +9,7 @@
       Id="*"
       Language="1033"
       Codepage="1252" 
-      Version="3.1"
+      Version="3.2"
       UpgradeCode="D476941E-65F3-4962-9E72-B40FAAE5DBD0"
       Manufacturer="Queen Mary, University of London">
     
@@ -160,23 +160,33 @@
           <Component Win64="yes"
                Id="VCRuntime"
                Guid="251D9513-BBD2-47CF-BE78-EF79446F7683">
+
+            <!-- Redistributables are handled by the Visual Studio
+                 installer (a separate program from VS itself) and are
+                 installed into C:\Program Files (x86)\Microsoft
+                 Visual Studio\2017\Community\VC\Redist\MSVC\...  NB
+                 this is not the same thing as the Windows SDKs, which
+                 consist of build tools etc - they have their own
+                 installers and get installed by default to C:\Program
+                 Files (x86)\Windows Kits\... -->
+               
                <File
                    Id="concrt140"
                    Name="concrt140.dll"
-                   Source="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.14.26405\x64\Microsoft.VC141.CRT\concrt140.DLL"
+                   Source="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.15.26706\x64\Microsoft.VC141.CRT\concrt140.DLL"
                    KeyPath="yes"/>
                <File
                    Id="msvcp140"
                    Name="msvcp140.dll"
-                   Source="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.14.26405\x64\Microsoft.VC141.CRT\msvcp140.DLL"/>
+                   Source="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.15.26706\x64\Microsoft.VC141.CRT\msvcp140.DLL"/>
                <File
                    Id="vccorlib140"
                    Name="vccorlib140.dll"
-                   Source="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.14.26405\x64\Microsoft.VC141.CRT\vccorlib140.DLL"/>
+                   Source="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.15.26706\x64\Microsoft.VC141.CRT\vccorlib140.DLL"/>
                <File
                    Id="vcruntime140"
                    Name="vcruntime140.dll"
-                   Source="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.14.26405\x64\Microsoft.VC141.CRT\vcruntime140.DLL"/>
+                   Source="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.15.26706\x64\Microsoft.VC141.CRT\vcruntime140.DLL"/>
           </Component>
 
 	  <Directory Id="Platforms" Name="platforms">
@@ -326,6 +336,4 @@
     <WixVariable Id="WixUIBannerBmp" Value="..\deploy\win32\top.bmp"/>
     <WixVariable Id="WixUIDialogBmp" Value="..\deploy\win32\main.bmp"/>
 
-  </Product>
-</Wix>
-
+  </Product> </Wix>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons/sonic-visualiser.svg	Tue Sep 04 14:10:47 2018 +0100
@@ -0,0 +1,507 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg1900"
+   sodipodi:version="0.32"
+   inkscape:version="0.44.1"
+   sodipodi:docbase="/work/sonic-visualiser"
+   sodipodi:docname="sv-icon.svg"
+   inkscape:export-filename="/work/sonic-visualiser/test-d1.png"
+   inkscape:export-xdpi="106.65"
+   inkscape:export-ydpi="106.65">
+  <defs
+     id="defs1902">
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3958"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3955"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3952"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.4) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mend"
+       style="overflow:visible;">
+      <path
+         id="path3949"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.4) rotate(180) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path3946"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;">
+      <path
+         id="path3943"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3940"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3937"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mstart"
+       style="overflow:visible">
+      <path
+         id="path3934"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3931"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Sstart"
+       style="overflow:visible">
+      <path
+         id="path3928"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;">
+      <path
+         id="path3925"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Tail"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Tail"
+       style="overflow:visible">
+      <g
+         id="g3910"
+         transform="scale(-1.2)">
+        <path
+           id="path3912"
+           d="M -3.8048674,-3.9585227 L 0.54352094,0"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path3914"
+           d="M -1.2866832,-3.9585227 L 3.0617053,0"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path3916"
+           d="M 1.3053582,-3.9585227 L 5.6537466,0"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path3918"
+           d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path3920"
+           d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path3922"
+           d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+      </g>
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceIn"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="DistanceIn">
+      <g
+         id="g3904">
+        <path
+           style="fill:none;stroke:#ffffff;stroke-width:1.15;stroke-linecap:square"
+           d="M 0,0 L 2,0"
+           id="path2306" />
+        <path
+           style="fill:#000000;fill-rule:evenodd;stroke:none"
+           d="M 0,0 L 13,4 L 9,0 13,-4 L 0,0 z "
+           id="path2302" />
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square"
+           d="M 0,-4 L 0,40"
+           id="path2304" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutS"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleOutS"
+       style="overflow:visible">
+      <path
+         id="path3854"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutM"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleOutM"
+       style="overflow:visible">
+      <path
+         id="path3857"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutL"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleOutL"
+       style="overflow:visible">
+      <path
+         id="path3860"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.8)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleInS"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleInS"
+       style="overflow:visible">
+      <path
+         id="path3863"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(-0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleInM"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleInM"
+       style="overflow:visible">
+      <path
+         id="path3866"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(-0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleInL"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleInL"
+       style="overflow:visible">
+      <path
+         id="path3869"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(-0.8)" />
+    </marker>
+    <marker
+       inkscape:stockid="DiamondS"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="DiamondS"
+       style="overflow:visible">
+      <path
+         id="path3872"
+         d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="DiamondM"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="DiamondM"
+       style="overflow:visible">
+      <path
+         id="path3875"
+         d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="DiamondL"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="DiamondL"
+       style="overflow:visible">
+      <path
+         id="path3878"
+         d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.8)" />
+    </marker>
+    <marker
+       inkscape:stockid="SquareS"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="SquareS"
+       style="overflow:visible">
+      <path
+         id="path3881"
+         d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="SquareM"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="SquareM"
+       style="overflow:visible">
+      <path
+         id="path3884"
+         d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="SquareL"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="SquareL"
+       style="overflow:visible">
+      <path
+         id="path3887"
+         d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.8)" />
+    </marker>
+    <marker
+       inkscape:stockid="Dot_s"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Dot_s"
+       style="overflow:visible">
+      <path
+         id="path3890"
+         d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none"
+         transform="scale(0.2) translate(7.4, 1)" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceOut"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="DistanceOut">
+      <g
+         id="g2300">
+        <path
+           style="fill:none;stroke:#ffffff;stroke-width:1.15;stroke-linecap:square"
+           d="M 0,0 L -2,0"
+           id="path2316" />
+        <path
+           style="fill:#000000;fill-rule:evenodd;stroke:none"
+           d="M 0,0 L -13,4 L -9,0 -13,-4 L 0,0 z "
+           id="path2312" />
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square"
+           d="M 0,-4 L 0,40"
+           id="path2314" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="Dot_l"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Dot_l"
+       style="overflow:visible">
+      <path
+         id="path3896"
+         d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none"
+         transform="scale(0.8) translate(7.4, 1)" />
+    </marker>
+    <marker
+       inkscape:stockid="Dot_m"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Dot_m"
+       style="overflow:visible">
+      <path
+         id="path3893"
+         d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none"
+         transform="scale(0.4) translate(7.4, 1)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="16.018908"
+     inkscape:cy="13.653906"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="816"
+     inkscape:window-height="606"
+     inkscape:window-x="145"
+     inkscape:window-y="175" />
+  <metadata
+     id="metadata1905">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d45500;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 3.905299,16.01472 C 27.5,16.01472 27.5,16.01472 27.5,16.01472"
+       id="path4036" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:1.356;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:1.39999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 4.189383,16.015203 C 7.6265694,16.015203 8.0726528,16.025708 8.0726528,16.025708 C 9.66349,9.1090346 9.741433,8.3087074 10.172784,15.048932 C 10.831635,26.830929 11.416632,20.601324 12.258324,15.76545 C 13.844917,0.39957958 14.006502,6.1759314 14.342565,9.4067063 C 15.634829,25.384548 15.579075,28.965284 16.269833,23.658757 C 16.783168,19.715219 18.310939,3.0919969 18.584891,7.6743646 C 20.490285,25.887346 20.546625,24.84451 21.131971,20.132265 C 23.062537,1.6773601 22.472829,16.437356 23.676672,16.115011 C 27.08449,16.115011 27.026616,16.025708 27.026616,16.025708 L 27.47205,16.025708"
+       id="path3783"
+       sodipodi:nodetypes="cccccsccccc" />
+    <rect
+       style="fill:none;stroke:#d45500;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3775"
+       width="25.004908"
+       height="24.915606"
+       x="3.4828262"
+       y="3.5122664" />
+  </g>
+</svg>
--- a/main/MainWindow.cpp	Fri Jun 29 14:10:08 2018 +0100
+++ b/main/MainWindow.cpp	Tue Sep 04 14:10:47 2018 +0100
@@ -122,7 +122,6 @@
 #include <QRegExp>
 #include <QScrollArea>
 #include <QCloseEvent>
-#include <QDesktopServices>
 #include <QDialogButtonBox>
 #include <QFileSystemWatcher>
 #include <QTextEdit>
@@ -2276,7 +2275,6 @@
     menu->addSeparator();
 
     m_rightButtonPlaybackMenu->addAction(m_playAction);
-    m_rightButtonPlaybackMenu->addAction(m_recordAction);
     m_rightButtonPlaybackMenu->addAction(m_playSelectionAction);
     m_rightButtonPlaybackMenu->addAction(m_playLoopAction);
     m_rightButtonPlaybackMenu->addAction(m_soloAction);
@@ -3506,7 +3504,7 @@
 MainWindow::manageSavedTemplates()
 {
     ResourceFinder rf;
-    QDesktopServices::openUrl("file:" + rf.getResourceSaveDir("templates"));
+    openLocalFolder(rf.getResourceSaveDir("templates"));
 }
 
 void
@@ -5190,7 +5188,7 @@
     aboutText += "</small></p>";
 
     aboutText += 
-        "<p><small>Sonic Visualiser Copyright &copy; 2005&ndash;2017 Chris Cannam and "
+        "<p><small>Sonic Visualiser Copyright &copy; 2005&ndash;2018 Chris Cannam and "
         "Queen Mary, University of London.</small></p>";
 
     aboutText +=
--- a/noconfig.pri	Fri Jun 29 14:10:08 2018 +0100
+++ b/noconfig.pri	Tue Sep 04 14:10:47 2018 +0100
@@ -1,7 +1,7 @@
+
+CONFIG += c++14
 
 CONFIG += release
-
-#CONFIG -= release
 #CONFIG += debug
 
 PREFIX_PATH = /usr/local
@@ -81,11 +81,11 @@
     
     INCLUDEPATH += $$PWD/sv-dependency-builds/win64-msvc/include
 
-## This seems to be intruding even when we're supposed to be release
+    # This seems to be intruding even when we're supposed to be release
 #    CONFIG(debug) {
 #        LIBS += -NODEFAULTLIB:MSVCRT -Ldebug \
-#            -L../sonic-visualiser/sv-dependency-builds/win64-msvc/lib/debug \
-#            -L../sonic-visualiser/sv-dependency-builds/win64-msvc/lib
+#            -L$$PWD/sv-dependency-builds/win64-msvc/lib/debug \
+#            -L$$PWD/sv-dependency-builds/win64-msvc/lib
 #    }
     CONFIG(release) {
         LIBS += -Lrelease \
--- a/platform-dataquay.pri	Fri Jun 29 14:10:08 2018 +0100
+++ b/platform-dataquay.pri	Tue Sep 04 14:10:47 2018 +0100
@@ -3,7 +3,11 @@
     include(./config.pri)
 }
 
-CONFIG += staticlib c++11
+!exists(config.pri) {
+    include(./noconfig.pri)
+}
+
+CONFIG += staticlib
 
 DEFINES -= USE_REDLAND
 QMAKE_CXXFLAGS -= -I/usr/include/rasqal -I/usr/include/raptor2
--- a/repoint-lock.json	Fri Jun 29 14:10:08 2018 +0100
+++ b/repoint-lock.json	Tue Sep 04 14:10:47 2018 +0100
@@ -4,22 +4,22 @@
       "pin": "da86fb0bccb3"
     },
     "svcore": {
-      "pin": "f0c2b8b31609"
+      "pin": "fe579dc6a713"
     },
     "svgui": {
-      "pin": "fcc1f45f7bd5"
+      "pin": "c2fa7bb1eca9"
     },
     "svapp": {
-      "pin": "6cdf2afebfd7"
+      "pin": "636a5908cf81"
     },
     "checker": {
-      "pin": "3ccc384c0161"
+      "pin": "2e8a5f665a07"
     },
     "piper": {
-      "pin": "dde809643316e7bb606fc14d66e55f07059bcf36"
+      "pin": "f5a04ffe4d5a0ae01e77018a86a59b48a425e674"
     },
     "piper-cpp": {
-      "pin": "28a0ee2cc737a7b50ac62d5996191cd589c047c2"
+      "pin": "44cb74e186a703e7e6ce403aa295913a87b88d62"
     },
     "dataquay": {
       "pin": "807b55408d9e"
@@ -34,7 +34,7 @@
       "pin": "a9a5555d9b6d"
     },
     "bqaudioio": {
-      "pin": "d90244c003be"
+      "pin": "138a7a8b546b"
     },
     "sv-dependency-builds": {
       "pin": "f1a9b270e043"
--- a/repoint-project.json	Fri Jun 29 14:10:08 2018 +0100
+++ b/repoint-project.json	Tue Sep 04 14:10:47 2018 +0100
@@ -3,11 +3,11 @@
         "extdir": "."
     },
     "services": {
-	"soundsoftware": {
-	    "vcs": ["hg", "git"],
-	    "anonymous": "https://code.soundsoftware.ac.uk/{vcs}/{repository}",
-	    "authenticated": "https://{account}@code.soundsoftware.ac.uk/{vcs}/{repository}"
-	}
+        "soundsoftware": {
+            "vcs": ["hg", "git"],
+            "anonymous": "https://code.soundsoftware.ac.uk/{vcs}/{repository}",
+            "authenticated": "https://{account}@code.soundsoftware.ac.uk/{vcs}/{repository}"
+        }
     },
     "libraries": {
         "vamp-plugin-sdk": {
@@ -31,18 +31,18 @@
         },
         "checker": {
             "vcs": "hg",
-	    "service": "soundsoftware",
-	    "repository": "vamp-plugin-load-checker"
+            "service": "soundsoftware",
+            "repository": "vamp-plugin-load-checker"
         },
         "piper": {
             "vcs": "git",
-	    "service": "github",
-	    "owner": "piper-audio"
+            "service": "github",
+            "owner": "piper-audio"
         },
         "piper-cpp": {
             "vcs": "git",
-	    "service": "github",
-	    "owner": "piper-audio",
+            "service": "github",
+            "owner": "piper-audio",
             "repository": "piper-vamp-cpp"
         },
         "dataquay": {
@@ -72,12 +72,12 @@
         },
         "sv-dependency-builds": {
             "vcs": "hg",
-	    "service": "soundsoftware"
+            "service": "soundsoftware"
         },
         "icons/scalable": {
             "vcs": "hg",
-	    "service": "soundsoftware",
-	    "repository": "sv-iconset"
+            "service": "soundsoftware",
+            "repository": "sv-iconset"
         }
     }
 }
--- a/server.pro	Fri Jun 29 14:10:08 2018 +0100
+++ b/server.pro	Tue Sep 04 14:10:47 2018 +0100
@@ -1,8 +1,7 @@
 
 TEMPLATE = app
 
-CONFIG += stl c++11 exceptions console warn_on
-
+CONFIG += stl exceptions console warn_on
 CONFIG -= qt
 
 exists(config.pri) {
--- a/sonic-visualiser.desktop	Fri Jun 29 14:10:08 2018 +0100
+++ b/sonic-visualiser.desktop	Tue Sep 04 14:10:47 2018 +0100
@@ -6,6 +6,6 @@
 Keywords=audio; sound; visualiser; sonic;
 Terminal=false
 Type=Application
-Icon=sv-icon
+Icon=sonic-visualiser
 Categories=Audio;AudioVideo;
 MimeType=application/x-sonicvisualiser;application/x-sonicvisualiser-layer;application/x-ogg;audio/mp3;audio/mpeg;audio/mpegurl;audio/x-flac;audio/x-mp3;audio/x-mpeg;audio/x-mpegurl;audio/x-wav;audio/wav;application/ogg;audio/x-vorbis+ogg;
--- a/sv.pro	Fri Jun 29 14:10:08 2018 +0100
+++ b/sv.pro	Tue Sep 04 14:10:47 2018 +0100
@@ -23,9 +23,20 @@
 }
 
 linux* {
+
     sv_bins.path = $$PREFIX_PATH/bin/
-    sv_bins.files = piper-vamp-simple-server vamp-plugin-load-checker sonic-visualiser
-    INSTALLS += sv_bins
+    sv_bins.files = checker/vamp-plugin-load-checker piper-vamp-simple-server sonic-visualiser
+    sv_bins.CONFIG = no_check_exist
+
+    sv_desktop.path = $$PREFIX_PATH/share/applications/
+    sv_desktop.files = sonic-visualiser.desktop
+    sv_desktop.CONFIG = no_check_exist
+
+    sv_icon.path = $$PREFIX_PATH/share/icons/hicolor/scalable/apps/
+    sv_icon.files = icons/sonic-visualiser.svg
+    sv_icon.CONFIG = no_check_exist
+    
+    INSTALLS += sv_bins sv_desktop sv_icon
 }
 
 TRANSLATIONS += \
--- a/version.h	Fri Jun 29 14:10:08 2018 +0100
+++ b/version.h	Tue Sep 04 14:10:47 2018 +0100
@@ -1,1 +1,1 @@
-#define SV_VERSION "3.1-pre2"
+#define SV_VERSION "3.2"