changeset 1161:0ef711a400a2 spectrogram-minor-refactor

Merge from default branch
author Chris Cannam
date Mon, 13 Jun 2016 12:46:36 +0100
parents ecb946764afe (current diff) 85f43ad71e97 (diff)
children 06e3a8472119
files .hgsubstate
diffstat 20 files changed, 737 insertions(+), 574 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsub	Wed Feb 03 16:51:37 2016 +0000
+++ b/.hgsub	Mon Jun 13 12:46:36 2016 +0100
@@ -1,3 +1,4 @@
+vamp-plugin-sdk = https://code.soundsoftware.ac.uk/hg/vamp-plugin-sdk
 svcore = https://code.soundsoftware.ac.uk/hg/svcore
 svgui = https://code.soundsoftware.ac.uk/hg/svgui
 svapp = https://code.soundsoftware.ac.uk/hg/svapp
@@ -7,3 +8,4 @@
 bqaudioio = https://bitbucket.org/breakfastquay/bqaudioio
 sv-dependency-builds = https://code.soundsoftware.ac.uk/hg/sv-dependency-builds
 icons/scalable = https://code.soundsoftware.ac.uk/hg/sv-iconset
+checker = https://code.soundsoftware.ac.uk/hg/vamp-plugin-load-checker
--- a/.hgsubstate	Wed Feb 03 16:51:37 2016 +0000
+++ b/.hgsubstate	Mon Jun 13 12:46:36 2016 +0100
@@ -1,9 +1,11 @@
-b7f9a5c5a607d3672b9ed661f169d838176642d2 bqaudioio
+442bdbbb17f3910898b892cc798794e32562a3f1 bqaudioio
 28f51eb8bf2dd985b0c1a6d704fb65e14c2f0f25 bqresample
 a518ddd9dd68917393887d28dfee6221bc37fb66 bqvec
+9f62684e1911c4184e7b97ba3a0673cb0464f3a2 checker
 d16f0fd6db6104d87882bc43788a3bb1b0f8c528 dataquay
 68ae618c6b0e442d08a71d39217784a08f2a8de3 icons/scalable
-55ece8862b6d3a54aad271a53f9c1615e5d3bcf8 sv-dependency-builds
-aecd5bdfc71f88429aeb474f8e765d345c4b8dc6 svapp
-2dc27f0f97ad7323557dcb1c717f97feb19e190b svcore
-25b035362c44a4a402db1cc28fee137966cba326 svgui
+1e4f338ae482429a7ab9bdd0825242042354152f sv-dependency-builds
+c3648c667a0bb9004c97f1997dca22b79c419e12 svapp
+69c84a66727b69b57e27053c9fa28ec205bc0ec1 svcore
+218be6cf2d4f5e0b5861097a68338f63df24679e svgui
+9a2998401bbe0a7b9e3233eeca5004542bc0014d vamp-plugin-sdk
--- a/acinclude.m4	Wed Feb 03 16:51:37 2016 +0000
+++ b/acinclude.m4	Mon Jun 13 12:46:36 2016 +0100
@@ -69,6 +69,9 @@
    	AC_CHECK_PROG(QMAKE, qmake-qt5, $QTDIR/bin/qmake-qt5,,$QTDIR/bin/)
 fi
 if test x$QMAKE = x ; then
+   	AC_CHECK_PROG(QMAKE, qt5-qmake, $QTDIR/bin/qt5-qmake,,$QTDIR/bin/)
+fi
+if test x$QMAKE = x ; then
    	AC_CHECK_PROG(QMAKE, qmake, $QTDIR/bin/qmake,,$QTDIR/bin/)
 fi
 if test x$QMAKE = x ; then
@@ -78,6 +81,9 @@
    	AC_CHECK_PROG(QMAKE, qmake-qt5, qmake-qt5,,$PATH)
 fi
 if test x$QMAKE = x ; then
+   	AC_CHECK_PROG(QMAKE, qt5-qmake, qt5-qmake,,$PATH)
+fi
+if test x$QMAKE = x ; then
    	AC_CHECK_PROG(QMAKE, qmake, qmake,,$PATH)
 fi
 if test x$QMAKE = x ; then
--- a/configure	Wed Feb 03 16:51:37 2016 +0000
+++ b/configure	Mon Jun 13 12:46:36 2016 +0100
@@ -4149,6 +4149,45 @@
 
 fi
 if test x$QMAKE = x ; then
+   	# Extract the first word of "qt5-qmake", so it can be a program name with args.
+set dummy qt5-qmake; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_QMAKE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$QMAKE"; then
+  ac_cv_prog_QMAKE="$QMAKE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $QTDIR/bin/
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_QMAKE="$QTDIR/bin/qt5-qmake"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+QMAKE=$ac_cv_prog_QMAKE
+if test -n "$QMAKE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QMAKE" >&5
+$as_echo "$QMAKE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test x$QMAKE = x ; then
    	# Extract the first word of "qmake", so it can be a program name with args.
 set dummy qmake; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -4266,6 +4305,45 @@
 
 fi
 if test x$QMAKE = x ; then
+   	# Extract the first word of "qt5-qmake", so it can be a program name with args.
+set dummy qt5-qmake; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_QMAKE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$QMAKE"; then
+  ac_cv_prog_QMAKE="$QMAKE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_QMAKE="qt5-qmake"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+QMAKE=$ac_cv_prog_QMAKE
+if test -n "$QMAKE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QMAKE" >&5
+$as_echo "$QMAKE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test x$QMAKE = x ; then
    	# Extract the first word of "qmake", so it can be a program name with args.
 set dummy qmake; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
--- a/configure.ac	Wed Feb 03 16:51:37 2016 +0000
+++ b/configure.ac	Mon Jun 13 12:46:36 2016 +0100
@@ -83,8 +83,6 @@
 SV_MODULE_REQUIRED([fftw3f],[fftw3f >= 3.0.0],[fftw3.h],[fftw3f],[fftwf_execute])
 SV_MODULE_REQUIRED([sndfile],[sndfile >= 1.0.16],[sndfile.h],[sndfile],[sf_open])
 SV_MODULE_REQUIRED([libsamplerate],[samplerate >= 0.1.2],[samplerate.h],[samplerate],[src_new])
-SV_MODULE_REQUIRED([vamp],[vamp >= 2.1],[vamp/vamp.h],[],[])
-SV_MODULE_REQUIRED([vamphostsdk],[vamp-hostsdk >= 2.5],[vamp-hostsdk/PluginLoader.h],[vamp-hostsdk],[libvamphostsdk_v_2_5_present])
 SV_MODULE_REQUIRED([rubberband],[rubberband],[rubberband/RubberBandStretcher.h],[rubberband],[rubberband_new])
 SV_MODULE_REQUIRED([sord],[sord-0 >= 0.5],[sord/sord.h],[sord-0],[sord_world_new])
 SV_MODULE_REQUIRED([serd],[serd-0 >= 0.5],[serd/serd.h],[serd-0],[serd_reader_read_file])
--- a/deploy/osx/copy-qt.sh	Wed Feb 03 16:51:37 2016 +0000
+++ b/deploy/osx/copy-qt.sh	Mon Jun 13 12:46:36 2016 +0100
@@ -11,7 +11,7 @@
 
 frameworks="QtCore QtNetwork QtGui QtXml QtSvg QtWidgets QtPrintSupport QtDBus"
 
-plugins="dds gif icns ico jp2 jpeg mng tga tiff wbmp webp cocoa minimal offscreen"
+plugins="dds gif icns ico jpeg tga tiff wbmp webp cocoa minimal offscreen"
 
 qtdir=$(grep "Command:" Makefile | head -1 | awk '{ print $3; }' | sed s,/bin/.*,,)
 
--- a/deploy/osx/deploy.sh	Wed Feb 03 16:51:37 2016 +0000
+++ b/deploy/osx/deploy.sh	Mon Jun 13 12:46:36 2016 +0100
@@ -45,6 +45,11 @@
 cp deploy/osx/qt.conf "$source"/Contents/Resources/qt.conf
 
 echo
+echo "Copying in plugin load checker helper."
+cp checker/plugin-checker-helper.app/Contents/MacOS/plugin-checker-helper \
+    "$source"/Contents/MacOS/
+
+echo
 echo "Writing version $bundleVersion in to bundle."
 echo "(This should be a three-part number: major.minor.point)"
 
--- a/deploy/osx/sign.sh	Wed Feb 03 16:51:37 2016 +0000
+++ b/deploy/osx/sign.sh	Mon Jun 13 12:46:36 2016 +0100
@@ -17,6 +17,9 @@
     find "$app" -name \*.dylib -print | while read fr; do
 	codesign -s "Developer ID Application: Chris Cannam" -fv "$fr"
     done
+    find "$app/Contents/MacOS" -type f -print | while read fr; do
+	codesign -s "Developer ID Application: Chris Cannam" -fv "$fr"
+    done
     codesign -s "Developer ID Application: Chris Cannam" -fv \
          --requirements '=designated =>  identifier "org.sonicvisualiser.SonicVisualiser" and ( (anchor apple generic and    certificate leaf[field.1.2.840.113635.100.6.1.9] ) or (anchor apple generic and    certificate 1[field.1.2.840.113635.100.6.2.6]  and    certificate leaf[field.1.2.840.113635.100.6.1.13] and    certificate leaf[subject.OU] = "M2H8666U82"))' \
          "$app"
--- a/deploy/src/archive.sh	Wed Feb 03 16:51:37 2016 +0000
+++ b/deploy/src/archive.sh	Mon Jun 13 12:46:36 2016 +0100
@@ -1,10 +1,27 @@
 #!/bin/bash
 
+set -eu
+
 tag=`hg tags | grep '^sv_v' | head -1 | awk '{ print $1; }'`
 
-v=`echo "$tag" |sed 's/sv_v//'`
+v=`echo "$tag" | sed 's/sv_v//' | sed 's/_.*$//'`
 
-echo "Packaging up version $v from tag $tag..."
+echo
+echo -n "Packaging up version $v from tag $tag... "
 
 hg archive -r"$tag" --subrepos --exclude sv-dependency-builds /tmp/sonic-visualiser-"$v".tar.gz
 
+echo Done
+echo
+
+# Test that the appropriate version of the docs exist on the website
+
+doc_url="http://sonicvisualiser.org/doc/reference/$v/en/"
+doc_status=$(curl -sL -w "%{http_code}" "$doc_url" -o /dev/null)
+
+if [ "$doc_status" = "404" ]; then
+    echo "*** WARNING: Documentation URL returns a 404:"
+    echo "***          $doc_url"
+    echo "***          Please fix this before release!"
+    echo
+fi
Binary file i18n/sonic-visualiser_cs_CZ.qm has changed
--- a/i18n/sonic-visualiser_cs_CZ.ts	Wed Feb 03 16:51:37 2016 +0000
+++ b/i18n/sonic-visualiser_cs_CZ.ts	Mon Jun 13 12:46:36 2016 +0100
@@ -3579,15 +3579,15 @@
     </message>
     <message>
         <source>Export audio from selection into a data file</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyvést zvuk z výběru do datového souboru</translation>
     </message>
     <message>
         <source>Export the selected regions into a single file</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyvést vybrané oblasti do jednoho souboru</translation>
     </message>
     <message>
         <source>Export the whole file</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyvést celý soubor</translation>
     </message>
     <message>
         <source>Playback Speed</source>
@@ -3595,7 +3595,7 @@
     </message>
     <message>
         <source>Export Audio Data...</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Vyvést zvuková data...</translation>
     </message>
     <message>
         <source>Export Annotation La&amp;yer...</source>
@@ -5055,27 +5055,27 @@
     </message>
     <message>
         <source>Follow system locale</source>
-        <translation type="unfinished"></translation>
+        <translation>Použít jazyk systému</translation>
     </message>
     <message>
         <source>Russian</source>
-        <translation type="unfinished"></translation>
+        <translation>Ruština</translation>
     </message>
     <message>
         <source>British English</source>
-        <translation type="unfinished"></translation>
+        <translation>Britská angličtina</translation>
     </message>
     <message>
         <source>American English</source>
-        <translation type="unfinished"></translation>
+        <translation>Americká angličtina</translation>
     </message>
     <message>
         <source>Czech</source>
-        <translation type="unfinished"></translation>
+        <translation>Čeština</translation>
     </message>
     <message>
         <source>User interface language</source>
-        <translation type="unfinished"></translation>
+        <translation>Jazyk uživatelského rozhraní</translation>
     </message>
     <message>
         <source>Allow network usage</source>
--- a/i18n/sonic-visualiser_en_GB.ts	Wed Feb 03 16:51:37 2016 +0000
+++ b/i18n/sonic-visualiser_en_GB.ts	Mon Jun 13 12:46:36 2016 +0100
@@ -46,17 +46,17 @@
 <context>
     <name>AudioCallbackPlaySource</name>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="501"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="499"/>
         <source>Play from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="524"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="522"/>
         <source>Stop at %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="1109"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="1105"/>
         <source>Change time-stretch factor to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -543,7 +543,7 @@
 <context>
     <name>Dense3DModelPeakCache</name>
     <message>
-        <location filename="../svcore/data/model/Dense3DModelPeakCache.h" line="82"/>
+        <location filename="../svcore/data/model/Dense3DModelPeakCache.h" line="79"/>
         <source>Dense 3-D Peak Cache</source>
         <translation type="unfinished"></translation>
     </message>
@@ -551,17 +551,17 @@
 <context>
     <name>DenseThreeDimensionalModel</name>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="129"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="120"/>
         <source>Dense 3-D</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="146"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="137"/>
         <source>Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="147"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="138"/>
         <source>Frame</source>
         <translation type="unfinished"></translation>
     </message>
@@ -590,7 +590,7 @@
 <context>
     <name>EditableDenseThreeDimensionalModel</name>
     <message>
-        <location filename="../svcore/data/model/EditableDenseThreeDimensionalModel.h" line="187"/>
+        <location filename="../svcore/data/model/EditableDenseThreeDimensionalModel.h" line="182"/>
         <source>Editable Dense 3-D</source>
         <translation type="unfinished"></translation>
     </message>
@@ -598,7 +598,7 @@
 <context>
     <name>FFTModel</name>
     <message>
-        <location filename="../svcore/data/model/FFTModel.h" line="139"/>
+        <location filename="../svcore/data/model/FFTModel.h" line="138"/>
         <source>FFT</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4532,13 +4532,13 @@
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1468"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1892"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2022"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2760"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2763"/>
         <source>%1: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1475"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2767"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2770"/>
         <source>%1: %2 [%3]</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4638,57 +4638,57 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2216"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2217"/>
         <source>Couldn&apos;t open audio device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2217"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2218"/>
         <source>&lt;b&gt;No audio available&lt;/b&gt;&lt;p&gt;Could not open an audio device for playback.&lt;p&gt;Automatic audio device detection failed. Audio playback will not be available during this session.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3388"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3392"/>
         <source>Recording: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2307"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2320"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2358"/>
-        <source>Failed to write file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2308"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2321"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2359"/>
+        <source>Failed to write file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2309"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2322"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2360"/>
         <source>&lt;b&gt;Save failed&lt;/b&gt;&lt;p&gt;Failed to write to file &quot;%1&quot;: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2780"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2783"/>
         <source>Import Recorded Audio</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3071"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3075"/>
         <source>Add Pane</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3117"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3121"/>
         <source>Remove Pane</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3140"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3557"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3144"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3561"/>
         <source>Delete Pane</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3376"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3380"/>
         <source>Playing: %1 of %2 (%3 remaining)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6755,23 +6755,23 @@
 <context>
     <name>SpectrogramLayer</name>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="177"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="219"/>
+        <source>Colour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="178"/>
+        <source>Colour Scale</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="179"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="221"/>
-        <source>Colour</source>
+        <source>Window Size</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="180"/>
-        <source>Colour Scale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="181"/>
-        <source>Window Size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="182"/>
         <source>Window Overlap</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6784,337 +6784,337 @@
         <translation type="obsolete">Normalise Visible Area</translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="181"/>
+        <source>Normalization</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="182"/>
+        <source>Bin Display</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="183"/>
-        <source>Normalization</source>
+        <source>Threshold</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="184"/>
-        <source>Bin Display</source>
+        <source>Gain</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="185"/>
-        <source>Threshold</source>
+        <source>Colour Rotation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="186"/>
-        <source>Gain</source>
+        <source>Min Frequency</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="187"/>
-        <source>Colour Rotation</source>
+        <source>Max Frequency</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="188"/>
-        <source>Min Frequency</source>
+        <source>Frequency Scale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="189"/>
-        <source>Max Frequency</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="190"/>
-        <source>Frequency Scale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="191"/>
         <source>Smoothing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="215"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="213"/>
         <source>Bins</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="218"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="216"/>
         <source>Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="224"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="222"/>
         <source>Scale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="389"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="450"/>
+        <source>Linear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="390"/>
+        <source>Meter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="391"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="452"/>
-        <source>Linear</source>
+        <source>dBV^2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="392"/>
-        <source>Meter</source>
+        <source>dBV</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="393"/>
-        <source>dBV^2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="394"/>
-        <source>dBV</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="395"/>
         <source>Phase</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="405"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="414"/>
+        <source>None</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="406"/>
+        <source>25 %</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="407"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="416"/>
-        <source>None</source>
+        <source>50 %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="408"/>
-        <source>25 %</source>
+        <source>75 %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="409"/>
-        <source>50 %</source>
+        <source>87.5 %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="410"/>
-        <source>75 %</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="411"/>
-        <source>87.5 %</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="412"/>
         <source>93.75 %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="420"/>
+        <source>No min</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="421"/>
+        <source>10 Hz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="422"/>
-        <source>No min</source>
+        <source>20 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="423"/>
-        <source>10 Hz</source>
+        <source>40 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="424"/>
-        <source>20 Hz</source>
+        <source>100 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="425"/>
-        <source>40 Hz</source>
+        <source>250 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="426"/>
-        <source>100 Hz</source>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="435"/>
+        <source>500 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="427"/>
-        <source>250 Hz</source>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="436"/>
+        <source>1 KHz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="428"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="439"/>
+        <source>4 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="429"/>
+        <source>10 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="437"/>
-        <source>500 Hz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="429"/>
+        <source>1.5 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="438"/>
-        <source>1 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="430"/>
+        <source>2 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="440"/>
+        <source>6 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="441"/>
-        <source>4 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="431"/>
-        <source>10 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="439"/>
-        <source>1.5 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="440"/>
-        <source>2 KHz</source>
+        <source>8 KHz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="442"/>
-        <source>6 KHz</source>
+        <source>12 KHz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="443"/>
-        <source>8 KHz</source>
+        <source>16 KHz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="444"/>
-        <source>12 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="445"/>
-        <source>16 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="446"/>
         <source>No max</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="453"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="451"/>
         <source>Log</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="457"/>
+        <source>All Bins</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="458"/>
+        <source>Peak Bins</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="459"/>
-        <source>All Bins</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="460"/>
-        <source>Peak Bins</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="461"/>
         <source>Frequencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="464"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="462"/>
         <source>&lt;unknown&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="487"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="490"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="485"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="488"/>
         <source>dB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1553"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1492"/>
         <source>FFT cache failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1554"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1493"/>
         <source>Failed to create the FFT model for this spectrogram.
 There may be insufficient memory or disc space to continue.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3062"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2968"/>
         <source>Peak Frequency:	%1 - %2 Hz
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3065"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2971"/>
         <source>Peak Frequency:	%1 Hz
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3073"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2979"/>
         <source>Peak Pitch:	%3 - %4
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3075"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2981"/>
         <source>Peak Pitch:	%2
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3086"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2992"/>
         <source>Time:	%1 - %2
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3090"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2996"/>
         <source>Time:	%1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3095"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3001"/>
         <source>%1Bin Frequency:	%2 - %3 Hz
 %4Bin Pitch:	%5 - %6
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3103"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3009"/>
         <source>%1Bin Frequency:	%2 Hz
 %3Bin Pitch:	%4
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3116"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3121"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3022"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3027"/>
         <source>-Inf</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3126"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3032"/>
         <source>dB:	%1 - %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3128"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3034"/>
         <source>dB:	%1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3131"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3037"/>
         <source>
 Phase:	%1 - %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3133"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3039"/>
         <source>
 Phase:	%1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3163"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3069"/>
         <source>43Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3310"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3216"/>
         <source>%1Hz</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7891,44 +7891,44 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1147"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1185"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1157"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1195"/>
         <source>Plugin type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1149"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1187"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1159"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1197"/>
         <source>Category</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1150"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1188"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1160"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1198"/>
         <source>System Identifier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1151"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1189"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1161"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1199"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1152"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1190"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1162"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1200"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1153"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1191"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1163"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1201"/>
         <source>Maker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1154"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1192"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1164"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1202"/>
         <source>Units</source>
         <translation type="unfinished"></translation>
     </message>
@@ -8134,63 +8134,63 @@
 <context>
     <name>View</name>
     <message>
+        <location filename="../svgui/view/View.cpp" line="96"/>
+        <source>Global Scroll</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/view/View.cpp" line="97"/>
-        <source>Global Scroll</source>
+        <source>Global Zoom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/view/View.cpp" line="98"/>
-        <source>Global Zoom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/view/View.cpp" line="99"/>
         <source>Follow Playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/view/View.cpp" line="141"/>
+        <source>Scroll</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/view/View.cpp" line="142"/>
-        <source>Scroll</source>
+        <source>Page</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/view/View.cpp" line="143"/>
-        <source>Page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/view/View.cpp" line="144"/>
         <source>Off</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="147"/>
+        <location filename="../svgui/view/View.cpp" line="146"/>
         <source>&lt;unknown&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="1580"/>
+        <location filename="../svgui/view/View.cpp" line="1581"/>
         <source>Layer rendering error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="1602"/>
+        <location filename="../svgui/view/View.cpp" line="1603"/>
         <source>Alignment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="2426"/>
+        <location filename="../svgui/view/View.cpp" line="2427"/>
         <source>Waiting for layers to be ready...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="2427"/>
+        <location filename="../svgui/view/View.cpp" line="2428"/>
+        <location filename="../svgui/view/View.cpp" line="2457"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/view/View.cpp" line="2456"/>
-        <source>Cancel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/view/View.cpp" line="2455"/>
         <source>Rendering image...</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/sonic-visualiser_en_US.ts	Wed Feb 03 16:51:37 2016 +0000
+++ b/i18n/sonic-visualiser_en_US.ts	Mon Jun 13 12:46:36 2016 +0100
@@ -46,17 +46,17 @@
 <context>
     <name>AudioCallbackPlaySource</name>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="501"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="499"/>
         <source>Play from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="524"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="522"/>
         <source>Stop at %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="1109"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="1105"/>
         <source>Change time-stretch factor to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -543,7 +543,7 @@
 <context>
     <name>Dense3DModelPeakCache</name>
     <message>
-        <location filename="../svcore/data/model/Dense3DModelPeakCache.h" line="82"/>
+        <location filename="../svcore/data/model/Dense3DModelPeakCache.h" line="79"/>
         <source>Dense 3-D Peak Cache</source>
         <translation type="unfinished"></translation>
     </message>
@@ -551,17 +551,17 @@
 <context>
     <name>DenseThreeDimensionalModel</name>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="129"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="120"/>
         <source>Dense 3-D</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="146"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="137"/>
         <source>Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="147"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="138"/>
         <source>Frame</source>
         <translation type="unfinished"></translation>
     </message>
@@ -590,7 +590,7 @@
 <context>
     <name>EditableDenseThreeDimensionalModel</name>
     <message>
-        <location filename="../svcore/data/model/EditableDenseThreeDimensionalModel.h" line="187"/>
+        <location filename="../svcore/data/model/EditableDenseThreeDimensionalModel.h" line="182"/>
         <source>Editable Dense 3-D</source>
         <translation type="unfinished"></translation>
     </message>
@@ -598,7 +598,7 @@
 <context>
     <name>FFTModel</name>
     <message>
-        <location filename="../svcore/data/model/FFTModel.h" line="139"/>
+        <location filename="../svcore/data/model/FFTModel.h" line="138"/>
         <source>FFT</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4544,13 +4544,13 @@
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1468"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1892"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2022"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2760"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2763"/>
         <source>%1: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1475"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2767"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2770"/>
         <source>%1: %2 [%3]</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4650,57 +4650,57 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2216"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2217"/>
         <source>Couldn&apos;t open audio device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2217"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2218"/>
         <source>&lt;b&gt;No audio available&lt;/b&gt;&lt;p&gt;Could not open an audio device for playback.&lt;p&gt;Automatic audio device detection failed. Audio playback will not be available during this session.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3388"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3392"/>
         <source>Recording: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2307"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2320"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2358"/>
-        <source>Failed to write file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2308"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2321"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2359"/>
+        <source>Failed to write file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2309"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2322"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2360"/>
         <source>&lt;b&gt;Save failed&lt;/b&gt;&lt;p&gt;Failed to write to file &quot;%1&quot;: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2780"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2783"/>
         <source>Import Recorded Audio</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3071"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3075"/>
         <source>Add Pane</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3117"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3121"/>
         <source>Remove Pane</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3140"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3557"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3144"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3561"/>
         <source>Delete Pane</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3376"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3380"/>
         <source>Playing: %1 of %2 (%3 remaining)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6740,358 +6740,358 @@
 <context>
     <name>SpectrogramLayer</name>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="179"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="221"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="177"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="219"/>
         <source>Colour</source>
         <translation type="unfinished">Color</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="180"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="178"/>
         <source>Colour Scale</source>
         <translation type="unfinished">Color Scale</translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="179"/>
+        <source>Window Size</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="180"/>
+        <source>Window Overlap</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="181"/>
-        <source>Window Size</source>
+        <source>Normalization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="182"/>
-        <source>Window Overlap</source>
+        <source>Bin Display</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="183"/>
-        <source>Normalization</source>
+        <source>Threshold</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="184"/>
-        <source>Bin Display</source>
+        <source>Gain</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="185"/>
-        <source>Threshold</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="186"/>
-        <source>Gain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="187"/>
         <source>Colour Rotation</source>
         <translation type="unfinished">Color Rotation</translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="186"/>
+        <source>Min Frequency</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="187"/>
+        <source>Max Frequency</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="188"/>
-        <source>Min Frequency</source>
+        <source>Frequency Scale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="189"/>
-        <source>Max Frequency</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="190"/>
-        <source>Frequency Scale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="191"/>
         <source>Smoothing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="215"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="213"/>
         <source>Bins</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="218"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="216"/>
         <source>Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="224"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="222"/>
         <source>Scale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="389"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="450"/>
+        <source>Linear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="390"/>
+        <source>Meter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="391"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="452"/>
-        <source>Linear</source>
+        <source>dBV^2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="392"/>
-        <source>Meter</source>
+        <source>dBV</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="393"/>
-        <source>dBV^2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="394"/>
-        <source>dBV</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="395"/>
         <source>Phase</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="405"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="414"/>
+        <source>None</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="406"/>
+        <source>25 %</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="407"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="416"/>
-        <source>None</source>
+        <source>50 %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="408"/>
-        <source>25 %</source>
+        <source>75 %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="409"/>
-        <source>50 %</source>
+        <source>87.5 %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="410"/>
-        <source>75 %</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="411"/>
-        <source>87.5 %</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="412"/>
         <source>93.75 %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="420"/>
+        <source>No min</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="421"/>
+        <source>10 Hz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="422"/>
-        <source>No min</source>
+        <source>20 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="423"/>
-        <source>10 Hz</source>
+        <source>40 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="424"/>
-        <source>20 Hz</source>
+        <source>100 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="425"/>
-        <source>40 Hz</source>
+        <source>250 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="426"/>
-        <source>100 Hz</source>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="435"/>
+        <source>500 Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="427"/>
-        <source>250 Hz</source>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="436"/>
+        <source>1 KHz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="428"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="439"/>
+        <source>4 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="429"/>
+        <source>10 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="437"/>
-        <source>500 Hz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="429"/>
+        <source>1.5 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="438"/>
-        <source>1 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="430"/>
+        <source>2 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="440"/>
+        <source>6 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="441"/>
-        <source>4 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="431"/>
-        <source>10 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="439"/>
-        <source>1.5 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="440"/>
-        <source>2 KHz</source>
+        <source>8 KHz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="442"/>
-        <source>6 KHz</source>
+        <source>12 KHz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="443"/>
-        <source>8 KHz</source>
+        <source>16 KHz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="444"/>
-        <source>12 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="445"/>
-        <source>16 KHz</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="446"/>
         <source>No max</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="453"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="451"/>
         <source>Log</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="457"/>
+        <source>All Bins</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="458"/>
+        <source>Peak Bins</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/layer/SpectrogramLayer.cpp" line="459"/>
-        <source>All Bins</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="460"/>
-        <source>Peak Bins</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="461"/>
         <source>Frequencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="464"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="462"/>
         <source>&lt;unknown&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="487"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="490"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="485"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="488"/>
         <source>dB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1553"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1492"/>
         <source>FFT cache failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1554"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1493"/>
         <source>Failed to create the FFT model for this spectrogram.
 There may be insufficient memory or disc space to continue.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3062"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2968"/>
         <source>Peak Frequency:	%1 - %2 Hz
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3065"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2971"/>
         <source>Peak Frequency:	%1 Hz
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3073"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2979"/>
         <source>Peak Pitch:	%3 - %4
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3075"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2981"/>
         <source>Peak Pitch:	%2
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3086"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2992"/>
         <source>Time:	%1 - %2
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3090"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2996"/>
         <source>Time:	%1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3095"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3001"/>
         <source>%1Bin Frequency:	%2 - %3 Hz
 %4Bin Pitch:	%5 - %6
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3103"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3009"/>
         <source>%1Bin Frequency:	%2 Hz
 %3Bin Pitch:	%4
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3116"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3121"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3022"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3027"/>
         <source>-Inf</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3126"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3032"/>
         <source>dB:	%1 - %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3128"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3034"/>
         <source>dB:	%1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3131"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3037"/>
         <source>
 Phase:	%1 - %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3133"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3039"/>
         <source>
 Phase:	%1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3163"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3069"/>
         <source>43Hz</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3310"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3216"/>
         <source>%1Hz</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7868,44 +7868,44 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1147"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1185"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1157"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1195"/>
         <source>Plugin type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1149"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1187"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1159"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1197"/>
         <source>Category</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1150"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1188"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1160"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1198"/>
         <source>System Identifier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1151"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1189"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1161"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1199"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1152"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1190"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1162"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1200"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1153"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1191"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1163"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1201"/>
         <source>Maker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1154"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1192"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1164"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1202"/>
         <source>Units</source>
         <translation type="unfinished"></translation>
     </message>
@@ -8111,63 +8111,63 @@
 <context>
     <name>View</name>
     <message>
+        <location filename="../svgui/view/View.cpp" line="96"/>
+        <source>Global Scroll</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/view/View.cpp" line="97"/>
-        <source>Global Scroll</source>
+        <source>Global Zoom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/view/View.cpp" line="98"/>
-        <source>Global Zoom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/view/View.cpp" line="99"/>
         <source>Follow Playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../svgui/view/View.cpp" line="141"/>
+        <source>Scroll</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/view/View.cpp" line="142"/>
-        <source>Scroll</source>
+        <source>Page</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../svgui/view/View.cpp" line="143"/>
-        <source>Page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/view/View.cpp" line="144"/>
         <source>Off</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="147"/>
+        <location filename="../svgui/view/View.cpp" line="146"/>
         <source>&lt;unknown&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="1580"/>
+        <location filename="../svgui/view/View.cpp" line="1581"/>
         <source>Layer rendering error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="1602"/>
+        <location filename="../svgui/view/View.cpp" line="1603"/>
         <source>Alignment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="2426"/>
+        <location filename="../svgui/view/View.cpp" line="2427"/>
         <source>Waiting for layers to be ready...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="2427"/>
+        <location filename="../svgui/view/View.cpp" line="2428"/>
+        <location filename="../svgui/view/View.cpp" line="2457"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../svgui/view/View.cpp" line="2456"/>
-        <source>Cancel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../svgui/view/View.cpp" line="2455"/>
         <source>Rendering image...</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/sonic-visualiser_ru.ts	Wed Feb 03 16:51:37 2016 +0000
+++ b/i18n/sonic-visualiser_ru.ts	Mon Jun 13 12:46:36 2016 +0100
@@ -46,17 +46,17 @@
 <context>
     <name>AudioCallbackPlaySource</name>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="501"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="499"/>
         <source>Play from %1</source>
         <translation>Воспроизведение от %1</translation>
     </message>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="524"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="522"/>
         <source>Stop at %1</source>
         <translation>Остановка в позиции %1</translation>
     </message>
     <message>
-        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="1109"/>
+        <location filename="../svapp/audio/AudioCallbackPlaySource.cpp" line="1105"/>
         <source>Change time-stretch factor to %1</source>
         <translation>Смена коэффициента растяжения во времени на %1</translation>
     </message>
@@ -627,7 +627,7 @@
 <context>
     <name>Dense3DModelPeakCache</name>
     <message>
-        <location filename="../svcore/data/model/Dense3DModelPeakCache.h" line="82"/>
+        <location filename="../svcore/data/model/Dense3DModelPeakCache.h" line="79"/>
         <source>Dense 3-D Peak Cache</source>
         <translation type="unfinished"></translation>
     </message>
@@ -635,17 +635,17 @@
 <context>
     <name>DenseThreeDimensionalModel</name>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="129"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="120"/>
         <source>Dense 3-D</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="146"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="137"/>
         <source>Time</source>
         <translation>Время</translation>
     </message>
     <message>
-        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="147"/>
+        <location filename="../svcore/data/model/DenseThreeDimensionalModel.h" line="138"/>
         <source>Frame</source>
         <translation>Выборка</translation>
     </message>
@@ -674,7 +674,7 @@
 <context>
     <name>EditableDenseThreeDimensionalModel</name>
     <message>
-        <location filename="../svcore/data/model/EditableDenseThreeDimensionalModel.h" line="187"/>
+        <location filename="../svcore/data/model/EditableDenseThreeDimensionalModel.h" line="182"/>
         <source>Editable Dense 3-D</source>
         <translation type="unfinished"></translation>
     </message>
@@ -687,7 +687,7 @@
         <translation>%1 Гц</translation>
     </message>
     <message>
-        <location filename="../svcore/data/model/FFTModel.h" line="139"/>
+        <location filename="../svcore/data/model/FFTModel.h" line="138"/>
         <source>FFT</source>
         <translation>FFT</translation>
     </message>
@@ -4897,13 +4897,13 @@
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1468"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1892"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2022"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2760"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2763"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
     <message>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="1475"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2767"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2770"/>
         <source>%1: %2 [%3]</source>
         <translation>%1: %2 [%3]</translation>
     </message>
@@ -4942,57 +4942,57 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2216"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2217"/>
         <source>Couldn&apos;t open audio device</source>
         <translation>Не удалось открыть звуковое устройство</translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2307"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2320"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2358"/>
-        <source>Failed to write file</source>
-        <translation>Не удалось записать файл</translation>
-    </message>
-    <message>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2308"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2321"/>
         <location filename="../svapp/framework/MainWindowBase.cpp" line="2359"/>
+        <source>Failed to write file</source>
+        <translation>Не удалось записать файл</translation>
+    </message>
+    <message>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2309"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2322"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2360"/>
         <source>&lt;b&gt;Save failed&lt;/b&gt;&lt;p&gt;Failed to write to file &quot;%1&quot;: %2</source>
         <translation>&lt;b&gt;Не удалось сохранить&lt;/b&gt;&lt;p&gt;Не удалось записать файл &quot;%1&quot;: %2</translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2780"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2783"/>
         <source>Import Recorded Audio</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3071"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3075"/>
         <source>Add Pane</source>
         <translation>Добавить окно</translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3117"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3121"/>
         <source>Remove Pane</source>
         <translation>Удалить окно</translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3140"/>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3557"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3144"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3561"/>
         <source>Delete Pane</source>
         <translation>Удалить окно</translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3376"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3380"/>
         <source>Playing: %1 of %2 (%3 remaining)</source>
         <translation>Воспроизводится: %1 из %2 (осталось %3)</translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="3388"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="3392"/>
         <source>Recording: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svapp/framework/MainWindowBase.cpp" line="2217"/>
+        <location filename="../svapp/framework/MainWindowBase.cpp" line="2218"/>
         <source>&lt;b&gt;No audio available&lt;/b&gt;&lt;p&gt;Could not open an audio device for playback.&lt;p&gt;Automatic audio device detection failed. Audio playback will not be available during this session.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Беззвучный режим&lt;/b&gt;&lt;p&gt;Не удалось открыть звуковое устройство для воспроизведения.&lt;p&gt;Не удалось автоматически определить звуковое устройство. На этот раз придется обойтись без воспроизведения звука.&lt;/p&gt;</translation>
     </message>
@@ -7293,18 +7293,18 @@
 <context>
     <name>SpectrogramLayer</name>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="179"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="221"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="177"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="219"/>
         <source>Colour</source>
         <translation>Цвет</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="180"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="178"/>
         <source>Colour Scale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="181"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="179"/>
         <source>Window Size</source>
         <translation>Размер окна</translation>
     </message>
@@ -7313,234 +7313,234 @@
         <translation type="vanished">Нормализовать столбцы</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="184"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="182"/>
         <source>Bin Display</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="185"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="183"/>
         <source>Threshold</source>
         <translation>Порог</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="186"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="184"/>
         <source>Gain</source>
         <translation>Усиление</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="187"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="185"/>
         <source>Colour Rotation</source>
         <translation>Вращение цвета</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="188"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="186"/>
         <source>Min Frequency</source>
         <translation>Мин. частота</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="189"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="187"/>
         <source>Max Frequency</source>
         <translation>Макс. частота</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="190"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="188"/>
         <source>Frequency Scale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="218"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="216"/>
         <source>Window</source>
         <translation>Окно</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="224"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="222"/>
         <source>Scale</source>
         <translation>Масштаб</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="391"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="452"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="389"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="450"/>
         <source>Linear</source>
         <translation>Линейный</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="392"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="390"/>
         <source>Meter</source>
         <translation>Счетчик</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="487"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="490"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="485"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="488"/>
         <source>dB</source>
         <translation>Дб</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="395"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="393"/>
         <source>Phase</source>
         <translation>Фаза</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="183"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="181"/>
         <source>Normalization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="422"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="420"/>
         <source>No min</source>
         <translation>Без минимума</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="423"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="421"/>
         <source>10 Hz</source>
         <translation>10 Гц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="424"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="422"/>
         <source>20 Hz</source>
         <translation>20 Гц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="425"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="423"/>
         <source>40 Hz</source>
         <translation>40 Гц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="426"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="424"/>
         <source>100 Hz</source>
         <translation>100 Гц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="427"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="425"/>
         <source>250 Hz</source>
         <translation>250 Гц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="428"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="437"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="426"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="435"/>
         <source>500 Hz</source>
         <translation>500 Гц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="429"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="438"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="427"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="436"/>
         <source>1 KHz</source>
         <translation>1 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="430"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="441"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="428"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="439"/>
         <source>4 KHz</source>
         <translation>4 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="431"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="429"/>
         <source>10 KHz</source>
         <translation>10 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="439"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="437"/>
         <source>1.5 KHz</source>
         <translation>1,5 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="440"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="438"/>
         <source>2 KHz</source>
         <translation>2 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="442"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="440"/>
         <source>6 KHz</source>
         <translation>6 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="443"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="441"/>
         <source>8 KHz</source>
         <translation>8 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="444"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="442"/>
         <source>12 KHz</source>
         <translation>12 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="445"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="443"/>
         <source>16 KHz</source>
         <translation>16 КГц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="446"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="444"/>
         <source>No max</source>
         <translation>Без максимума</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="453"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="451"/>
         <source>Log</source>
         <translation>Логарифм.</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="459"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="457"/>
         <source>All Bins</source>
         <translation>Все бины</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="460"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="458"/>
         <source>Peak Bins</source>
         <translation>Пиковые бины</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="461"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="459"/>
         <source>Frequencies</source>
         <translation>Частоты</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="464"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="462"/>
         <source>&lt;unknown&gt;</source>
         <translation>&lt;неизвестно&gt;</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3062"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2968"/>
         <source>Peak Frequency:	%1 - %2 Hz
 </source>
         <translation>Пиковая частота:	%1 - %2 Гц
 </translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3065"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2971"/>
         <source>Peak Frequency:	%1 Hz
 </source>
         <translation>Пиковая частота:	%1 Гц
 </translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3073"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2979"/>
         <source>Peak Pitch:	%3 - %4
 </source>
         <translation>Пиковая высота тона:	%3 - %4
 </translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3075"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2981"/>
         <source>Peak Pitch:	%2
 </source>
         <translation>Пиковая высота тона:	%2
 </translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3086"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2992"/>
         <source>Time:	%1 - %2
 </source>
         <translation>Время:	%1 - %2
 </translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3090"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="2996"/>
         <source>Time:	%1
 </source>
         <translation>Время:	%1
 </translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3095"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3001"/>
         <source>%1Bin Frequency:	%2 - %3 Hz
 %4Bin Pitch:	%5 - %6
 </source>
@@ -7549,7 +7549,7 @@
 </translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3103"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3009"/>
         <source>%1Bin Frequency:	%2 Hz
 %3Bin Pitch:	%4
 </source>
@@ -7558,73 +7558,73 @@
 </translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3116"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3121"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3022"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3027"/>
         <source>-Inf</source>
         <translation>-Inf</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3126"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3032"/>
         <source>dB:	%1 - %2</source>
         <translation>Дб:	%1 - %2</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3128"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3034"/>
         <source>dB:	%1</source>
         <translation>Дб:	%1</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3131"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3037"/>
         <source>
 Phase:	%1 - %2</source>
         <translation>
 Фаза:	%1 - %2</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3133"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3039"/>
         <source>
 Phase:	%1</source>
         <translation>
 Фаза:	%1</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="182"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="180"/>
         <source>Window Overlap</source>
         <translation>Перекрытие окон</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="191"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="189"/>
         <source>Smoothing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="407"/>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="416"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="405"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="414"/>
         <source>None</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="408"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="406"/>
         <source>25 %</source>
         <translation>25 %</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="409"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="407"/>
         <source>50 %</source>
         <translation>50 %</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="410"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="408"/>
         <source>75 %</source>
         <translation>75 %</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="411"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="409"/>
         <source>87.5 %</source>
         <translation>87,5 %</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="412"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="410"/>
         <source>93.75 %</source>
         <translation>93,75 %</translation>
     </message>
@@ -7633,39 +7633,39 @@
         <translation type="vanished">Нормализовать видимую область</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="215"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="213"/>
         <source>Bins</source>
         <translation>Бины</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1553"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1492"/>
         <source>FFT cache failed</source>
         <translation>Не удалось кэшировать FFT</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1554"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="1493"/>
         <source>Failed to create the FFT model for this spectrogram.
 There may be insufficient memory or disc space to continue.</source>
         <translation>Не удалось создать FFT-модель этой спектрограммы.
 Вероятно, не хватает памяти или дискового порстранства для продолжения.</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="393"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="391"/>
         <source>dBV^2</source>
         <translation>ДбВ^2</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="394"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="392"/>
         <source>dBV</source>
         <translation>ДбВ</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3163"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3069"/>
         <source>43Hz</source>
         <translation>43 Гц</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3310"/>
+        <location filename="../svgui/layer/SpectrogramLayer.cpp" line="3216"/>
         <source>%1Hz</source>
         <translation>%1 Гц</translation>
     </message>
@@ -8470,44 +8470,44 @@
         <translation>Создать звуковой сигнал при помощи расширения &quot;%1&quot; (из %2)</translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1147"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1185"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1157"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1195"/>
         <source>Plugin type</source>
         <translation>Тип расширения</translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1149"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1187"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1159"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1197"/>
         <source>Category</source>
         <translation>Категория</translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1150"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1188"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1160"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1198"/>
         <source>System Identifier</source>
         <translation>Системный идентификатор</translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1151"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1189"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1161"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1199"/>
         <source>Name</source>
         <translation>Название</translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1152"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1190"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1162"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1200"/>
         <source>Description</source>
         <translation>Описание</translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1153"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1191"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1163"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1201"/>
         <source>Maker</source>
         <translation>Создатель</translation>
     </message>
     <message>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1154"/>
-        <location filename="../svcore/transform/TransformFactory.cpp" line="1192"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1164"/>
+        <location filename="../svcore/transform/TransformFactory.cpp" line="1202"/>
         <source>Units</source>
         <translation>Единица измерения</translation>
     </message>
@@ -8726,63 +8726,63 @@
 <context>
     <name>View</name>
     <message>
-        <location filename="../svgui/view/View.cpp" line="97"/>
+        <location filename="../svgui/view/View.cpp" line="96"/>
         <source>Global Scroll</source>
         <translation>Глобальная прокрутка</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="98"/>
+        <location filename="../svgui/view/View.cpp" line="97"/>
         <source>Global Zoom</source>
         <translation>Глобальный масштаб</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="99"/>
+        <location filename="../svgui/view/View.cpp" line="98"/>
         <source>Follow Playback</source>
         <translation>Следовать за воспроизведением</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="142"/>
+        <location filename="../svgui/view/View.cpp" line="141"/>
         <source>Scroll</source>
         <translation>Прокручивать</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="143"/>
+        <location filename="../svgui/view/View.cpp" line="142"/>
         <source>Page</source>
         <translation>Постранично</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="144"/>
+        <location filename="../svgui/view/View.cpp" line="143"/>
         <source>Off</source>
         <translation>Выключить</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="147"/>
+        <location filename="../svgui/view/View.cpp" line="146"/>
         <source>&lt;unknown&gt;</source>
         <translation>&lt;неизвестно&gt;</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="1580"/>
+        <location filename="../svgui/view/View.cpp" line="1581"/>
         <source>Layer rendering error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="2426"/>
+        <location filename="../svgui/view/View.cpp" line="2427"/>
         <source>Waiting for layers to be ready...</source>
         <translation>Ожидание готовности слоёв...</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="2427"/>
-        <location filename="../svgui/view/View.cpp" line="2456"/>
+        <location filename="../svgui/view/View.cpp" line="2428"/>
+        <location filename="../svgui/view/View.cpp" line="2457"/>
         <source>Cancel</source>
         <translation>Отменить</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="2455"/>
+        <location filename="../svgui/view/View.cpp" line="2456"/>
         <source>Rendering image...</source>
         <translation>Отрисовывается изображение...</translation>
     </message>
     <message>
-        <location filename="../svgui/view/View.cpp" line="1602"/>
+        <location filename="../svgui/view/View.cpp" line="1603"/>
         <source>Alignment</source>
         <translation>Выравнивание</translation>
     </message>
--- a/main/MainWindow.cpp	Wed Feb 03 16:51:37 2016 +0000
+++ b/main/MainWindow.cpp	Mon Jun 13 12:46:36 2016 +0100
@@ -69,6 +69,7 @@
 #include "data/fileio/FileSource.h"
 #include "data/midi/MIDIInput.h"
 #include "base/RecentFiles.h"
+#include "plugin/PluginScan.h"
 #include "transform/TransformFactory.h"
 #include "transform/ModelTransformerFactory.h"
 #include "base/PlayParameterRepository.h"
@@ -330,8 +331,10 @@
         m_versionTester = 0;
     }
 
-    QString warning = TransformFactory::getInstance()->getPluginPopulationWarning();
-    if (warning != "") pluginPopulationWarning(warning);
+    QString warning = PluginScan::getInstance()->getStartupFailureReport();
+    if (warning != "") {
+        QTimer::singleShot(500, this, SLOT(pluginPopulationWarning()));
+    }
 }
 
 MainWindow::~MainWindow()
@@ -4141,8 +4144,9 @@
 }
 
 void
-MainWindow::pluginPopulationWarning(QString warning)
+MainWindow::pluginPopulationWarning()
 {
+    QString warning = PluginScan::getInstance()->getStartupFailureReport();
     QMessageBox::warning(this, tr("Problems loading plugins"), warning);
 }
 
@@ -4432,15 +4436,13 @@
 }
 
 void
-MainWindow::alignmentFailed(QString transformName, QString message)
+MainWindow::alignmentFailed(QString message)
 {
-    emit hideSplash();
-
     QMessageBox::warning
         (this,
          tr("Failed to calculate alignment"),
-         tr("<b>Alignment calculation failed</b><p>Failed to calculate an audio alignment using transform \"%1\":<p>%2")
-         .arg(transformName).arg(message),
+         tr("<b>Alignment calculation failed</b><p>Failed to calculate an audio alignment:<p>%1")
+         .arg(message),
          QMessageBox::Ok);
 }
 
@@ -4574,7 +4576,7 @@
 
     aboutText += "<small>";
 
-    aboutText += tr("With Qt v%1 &copy; Nokia Corporation").arg(QT_VERSION_STR);
+    aboutText += tr("With Qt v%1 &copy; The Qt Company").arg(QT_VERSION_STR);
 
 #ifdef HAVE_JACK
 #ifdef JACK_VERSION
--- a/main/MainWindow.h	Wed Feb 03 16:51:37 2016 +0000
+++ b/main/MainWindow.h	Mon Jun 13 12:46:36 2016 +0100
@@ -93,7 +93,7 @@
     virtual void modelGenerationWarning(QString, QString);
     virtual void modelRegenerationFailed(QString, QString, QString);
     virtual void modelRegenerationWarning(QString, QString, QString);
-    virtual void alignmentFailed(QString, QString);
+    virtual void alignmentFailed(QString);
 
     virtual void rightButtonMenuRequested(Pane *, QPoint point);
 
@@ -147,7 +147,7 @@
     virtual void midiEventsAvailable();
     virtual void playStatusChanged(bool);
 
-    virtual void pluginPopulationWarning(QString);
+    virtual void pluginPopulationWarning();
 
     virtual void saveSessionAsTemplate();
     virtual void manageSavedTemplates();
--- a/main/main.cpp	Wed Feb 03 16:51:37 2016 +0000
+++ b/main/main.cpp	Mon Jun 13 12:46:36 2016 +0100
@@ -26,6 +26,7 @@
 #include "widgets/InteractiveFileFinder.h"
 #include "svapp/framework/TransformUserConfigurator.h"
 #include "transform/TransformFactory.h"
+#include "svcore/plugin/PluginScan.h"
 
 #include <QMetaType>
 #include <QApplication>
@@ -332,6 +333,28 @@
 
     StoreStartupLocale();
 
+    // Make known-plugins query as early as possible after showing
+    // splash screen. This depends on our helper executable, which
+    // must exist either in the same directory as this one or
+    // (preferably) a subdirectory called "checker".
+    QString myDir = application.applicationDirPath();
+    QString helperPath = myDir + "/checker/plugin-checker-helper";
+    QString helperSuffix = "";
+#ifdef _WIN32
+    helperSuffix = ".exe";
+#endif
+    if (!QFile(helperPath + helperSuffix).exists()) {
+        cerr << "NOTE: helper not found at " << (helperPath + helperSuffix)
+             << ", trying in my own directory" << endl;
+        helperPath = myDir + "/plugin-checker-helper";
+    }
+    helperPath += helperSuffix;
+    if (!QFile(helperPath + helperSuffix).exists()) {
+        cerr << "NOTE: helper not found at " << (helperPath + helperSuffix)
+             << endl;
+    }
+    PluginScan::getInstance()->scan(helperPath);
+    
     // Permit size_t and PropertyName to be used as args in queued signal calls
     qRegisterMetaType<PropertyContainer::PropertyName>("PropertyContainer::PropertyName");
 
--- a/sonic-visualiser.pro	Wed Feb 03 16:51:37 2016 +0000
+++ b/sonic-visualiser.pro	Mon Jun 13 12:46:36 2016 +0100
@@ -1,5 +1,5 @@
 TEMPLATE = subdirs
-SUBDIRS = sub_bq sub_dataquay svcore svgui svapp sub_sv 
+SUBDIRS = sub_bq sub_dataquay svcore svgui svapp checker sub_sv 
 
 !win* {
     # We should build and run the tests on any platform,
--- a/sv.pro	Wed Feb 03 16:51:37 2016 +0000
+++ b/sv.pro	Mon Jun 13 12:46:36 2016 +0100
@@ -1,6 +1,8 @@
 
 TEMPLATE = app
 
+INCLUDEPATH += vamp-plugin-sdk
+
 win32-g++ {
     INCLUDEPATH += sv-dependency-builds/win32-mingw/include
     LIBS += -Lrelease -Lsv-dependency-builds/win32-mingw/lib
@@ -25,9 +27,10 @@
 
     DEFINES += HAVE_BZ2 HAVE_FFTW3 HAVE_FFTW3F HAVE_SNDFILE HAVE_SAMPLERATE HAVE_VAMP HAVE_VAMPHOSTSDK HAVE_RUBBERBAND HAVE_DATAQUAY HAVE_LIBLO HAVE_MAD HAVE_ID3TAG HAVE_PORTAUDIO
 
-    LIBS += -lbz2 -lrubberband -lvamp-hostsdk -lfftw3 -lfftw3f -lsndfile -lFLAC -logg -lvorbis -lvorbisenc -lvorbisfile -logg -lmad -lid3tag -lportaudio -lsamplerate -lz -lsord-0 -lserd-0 -llo
+    LIBS += -lbz2 -lrubberband -lfftw3 -lfftw3f -lsndfile -lFLAC -logg -lvorbis -lvorbisenc -lvorbisfile -logg -lmad -lid3tag -lportaudio -lsamplerate -lz -lsord-0 -lserd-0 -llo
 
     win* {
+        DEFINES += _USE_MATH_DEFINES
         LIBS += -lwinmm -lws2_32
     }
     macx* {
@@ -56,15 +59,15 @@
 
 contains(DEFINES, BUILD_STATIC):LIBS -= -ljack
 
-MY_LIBS = -Lsvapp -Lsvgui -Lsvcore -Ldataquay -L. \
-          -lsvapp -lsvgui -lsvcore -ldataquay -lbq
+MY_LIBS = -Lsvapp -Lsvgui -Lsvcore -Lchecker -Ldataquay -L. \
+          -lsvapp -lsvgui -lsvcore -lchecker -ldataquay -lbq
 
 linux* {
 MY_LIBS = -Wl,-Bstatic $$MY_LIBS -Wl,-Bdynamic
 }
 
 win* {
-MY_LIBS = -Lsvapp/release -Lsvgui/release -Lsvcore/release -Ldataquay/release $$MY_LIBS
+MY_LIBS = -Lsvapp/release -Lsvgui/release -Lsvcore/release -Lchecker/release -Ldataquay/release $$MY_LIBS
 }
 
 LIBS = $$MY_LIBS $$LIBS
@@ -73,29 +76,53 @@
 PRE_TARGETDEPS += svapp/release/libsvapp.a \
                   svgui/release/libsvgui.a \
                   svcore/release/libsvcore.a \
-                  dataquay/release/libdataquay.a
+                  dataquay/release/libdataquay.a \
+                  checker/release/libchecker.a
 }
 !win* {
 PRE_TARGETDEPS += svapp/libsvapp.a \
                   svgui/libsvgui.a \
                   svcore/libsvcore.a \
-                  dataquay/libdataquay.a
+                  dataquay/libdataquay.a \
+                  checker/libchecker.a
 }
 
 RESOURCES += sonic-visualiser.qrc
 
-HEADERS += main/MainWindow.h \
-           main/NetworkPermissionTester.h \
-           main/Surveyer.h \
-           main/SVSplash.h \
-           main/PreferencesDialog.h
-SOURCES += main/main.cpp \
-           main/OSCHandler.cpp \
-           main/MainWindow.cpp \
-           main/NetworkPermissionTester.cpp \
-           main/Surveyer.cpp \
-           main/SVSplash.cpp \
-           main/PreferencesDialog.cpp 
+HEADERS += \
+        vamp-plugin-sdk/vamp-hostsdk/PluginBase.h \
+        vamp-plugin-sdk/vamp-hostsdk/PluginBufferingAdapter.h \
+        vamp-plugin-sdk/vamp-hostsdk/PluginChannelAdapter.h \
+        vamp-plugin-sdk/vamp-hostsdk/Plugin.h \
+        vamp-plugin-sdk/vamp-hostsdk/PluginHostAdapter.h \
+        vamp-plugin-sdk/vamp-hostsdk/PluginInputDomainAdapter.h \
+        vamp-plugin-sdk/vamp-hostsdk/PluginLoader.h \
+        vamp-plugin-sdk/vamp-hostsdk/PluginSummarisingAdapter.h \
+        vamp-plugin-sdk/vamp-hostsdk/PluginWrapper.h \
+        vamp-plugin-sdk/vamp-hostsdk/RealTime.h \
+        vamp-plugin-sdk/src/vamp-hostsdk/Window.h \
+        main/MainWindow.h \
+        main/NetworkPermissionTester.h \
+        main/Surveyer.h \
+        main/SVSplash.h \
+        main/PreferencesDialog.h
+SOURCES +=  \
+        vamp-plugin-sdk/src/vamp-hostsdk/PluginBufferingAdapter.cpp \
+        vamp-plugin-sdk/src/vamp-hostsdk/PluginChannelAdapter.cpp \
+        vamp-plugin-sdk/src/vamp-hostsdk/PluginHostAdapter.cpp \
+        vamp-plugin-sdk/src/vamp-hostsdk/PluginInputDomainAdapter.cpp \
+        vamp-plugin-sdk/src/vamp-hostsdk/PluginLoader.cpp \
+        vamp-plugin-sdk/src/vamp-hostsdk/PluginSummarisingAdapter.cpp \
+        vamp-plugin-sdk/src/vamp-hostsdk/PluginWrapper.cpp \
+        vamp-plugin-sdk/src/vamp-hostsdk/RealTime.cpp \
+        vamp-plugin-sdk/src/vamp-hostsdk/Files.cpp \
+	main/main.cpp \
+        main/OSCHandler.cpp \
+        main/MainWindow.cpp \
+        main/NetworkPermissionTester.cpp \
+        main/Surveyer.cpp \
+        main/SVSplash.cpp \
+        main/PreferencesDialog.cpp 
 
 # for mac integration
 QMAKE_INFO_PLIST = deploy/osx/Info.plist
--- a/version.h	Wed Feb 03 16:51:37 2016 +0000
+++ b/version.h	Mon Jun 13 12:46:36 2016 +0100
@@ -1,1 +1,1 @@
-#define SV_VERSION "2.5"
+#define SV_VERSION "3.0"