changeset 2145:b35c1f8b2ddd fix-static-analysis

Merge from default branch
author Chris Cannam
date Tue, 04 Dec 2018 13:53:59 +0000
parents 292f6cc6b65e (current diff) 3a4202cae7fe (diff)
children 16315742840b
files repoint-lock.json repoint-project.json
diffstat 21 files changed, 247 insertions(+), 316 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Nov 26 14:35:51 2018 +0000
+++ b/.hgtags	Tue Dec 04 13:53:59 2018 +0000
@@ -81,3 +81,4 @@
 4ff2193314d406c3a83c86b409414cf60a0b1406 sv_v3.1.1
 690eaf241ad5f57e4ed59f09c0f4c1ce659b5571 sv_v3.1.1
 3fc52a2fadce4d7abe26516d91a8583794e70f06 sv_v3.2pre1
+c3c648a6e711c1a37cb410a8d6e1f29a7205bf85 sv_v3.2pre2
--- a/CHANGELOG	Mon Nov 26 14:35:51 2018 +0000
+++ b/CHANGELOG	Tue Dec 04 13:53:59 2018 +0000
@@ -21,7 +21,7 @@
  - Fix sometimes incorrect shortcut associations for new-layer menu
    items
 
- - Various small rendering improvements and bug fixes
+ - Various other rendering improvements and bug fixes
 
 
 Changes in Sonic Visualiser 3.1.1 (Aug 2018) since the previous release 3.1:
--- a/INSTALL.txt	Mon Nov 26 14:35:51 2018 +0000
+++ b/INSTALL.txt	Tue Dec 04 13:53:59 2018 +0000
@@ -73,5 +73,13 @@
 libid3tag0-dev liblo-dev liblrdf0-dev libmad0-dev liboggz2-dev
 libpulse-dev libsamplerate-dev libsndfile-dev libsord-dev
 libxml2-utils portaudio19-dev qt5-default libqt5svg5-dev raptor-utils
-librubberband-dev git mercurial autoconf automake libtool
+librubberband-dev git mercurial autoconf automake libtool mlton
 
+If you are building from a clone of the Sonic Visualiser developer
+repository, rather than from an official source code release package,
+then the configure script will use Repoint to obtain further checkouts
+of various modules. You will need to have a SML compiler installed for
+this to work, such as SML/NJ, MLton, or Poly/ML - hence the presence
+of mlton in the Debian package list above. This is not necessary when
+building from an official Sonic Visualiser source release.
+
--- a/base.pri	Mon Nov 26 14:35:51 2018 +0000
+++ b/base.pri	Tue Dec 04 13:53:59 2018 +0000
@@ -17,7 +17,9 @@
 	svcore/plugin/api/alsa \
 	svgui \
 	svapp \
-	vamp-plugin-sdk
+	vamp-plugin-sdk \
+        rubberband \
+        rubberband/src
 
 DEPENDPATH += $$SV_INCLUDEPATH
 INCLUDEPATH += $$SV_INCLUDEPATH
@@ -31,5 +33,9 @@
 # Defines for Dataquay
 DEFINES += USE_SORD
 
+# Defines for Rubber Band
+linux*:   DEFINES += USE_PTHREADS
+macx*:    DEFINES += USE_PTHREADS
+
 CONFIG += qt thread warn_on stl rtti exceptions
 
--- a/bq-files.pri	Mon Nov 26 14:35:51 2018 +0000
+++ b/bq-files.pri	Tue Dec 04 13:53:59 2018 +0000
@@ -23,7 +23,8 @@
 	bqaudioio/src/JACKAudioIO.h \
 	bqaudioio/src/Log.h \
 	bqaudioio/src/PortAudioIO.h \
-	bqaudioio/src/PulseAudioIO.h
+	bqaudioio/src/PulseAudioIO.h \
+	rubberband/rubberband/RubberBandStretcher.h
 
 BQ_SOURCES += \
 	bqvec/src/Allocators.cpp \
@@ -38,5 +39,6 @@
 	bqaudioio/src/PulseAudioIO.cpp \
 	bqaudioio/src/ResamplerWrapper.cpp \
 	bqaudioio/src/SystemPlaybackTarget.cpp \
-	bqaudioio/src/SystemRecordSource.cpp
-
+	bqaudioio/src/SystemRecordSource.cpp \
+        rubberband-all.cpp
+        
--- a/configure	Mon Nov 26 14:35:51 2018 +0000
+++ b/configure	Tue Dec 04 13:53:59 2018 +0000
@@ -656,8 +656,6 @@
 serd_CFLAGS
 sord_LIBS
 sord_CFLAGS
-rubberband_LIBS
-rubberband_CFLAGS
 libsamplerate_LIBS
 libsamplerate_CFLAGS
 sndfile_LIBS
@@ -758,8 +756,6 @@
 sndfile_LIBS
 libsamplerate_CFLAGS
 libsamplerate_LIBS
-rubberband_CFLAGS
-rubberband_LIBS
 sord_CFLAGS
 sord_LIBS
 serd_CFLAGS
@@ -1427,10 +1423,6 @@
               C compiler flags for libsamplerate, overriding pkg-config
   libsamplerate_LIBS
               linker flags for libsamplerate, overriding pkg-config
-  rubberband_CFLAGS
-              C compiler flags for rubberband, overriding pkg-config
-  rubberband_LIBS
-              linker flags for rubberband, overriding pkg-config
   sord_CFLAGS C compiler flags for sord, overriding pkg-config
   sord_LIBS   linker flags for sord, overriding pkg-config
   serd_CFLAGS C compiler flags for serd, overriding pkg-config
@@ -5278,157 +5270,6 @@
 fi
 
 
-SV_MODULE_MODULE=rubberband
-SV_MODULE_VERSION_TEST="rubberband"
-SV_MODULE_HEADER=rubberband/RubberBandStretcher.h
-SV_MODULE_LIB=rubberband
-SV_MODULE_FUNC=rubberband_new
-SV_MODULE_HAVE=HAVE_$(echo rubberband | tr 'a-z' 'A-Z')
-SV_MODULE_FAILED=1
-if test -n "$rubberband_LIBS" ; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE" >&5
-$as_echo "$as_me: User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE" >&6;}
-   CXXFLAGS="$CXXFLAGS $rubberband_CFLAGS"
-   LIBS="$LIBS $rubberband_LIBS"
-   SV_MODULE_FAILED=""
-fi
-if test -z "$SV_MODULE_VERSION_TEST" ; then
-   SV_MODULE_VERSION_TEST=$SV_MODULE_MODULE
-fi
-if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rubberband" >&5
-$as_echo_n "checking for rubberband... " >&6; }
-
-if test -n "$rubberband_CFLAGS"; then
-    pkg_cv_rubberband_CFLAGS="$rubberband_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$SV_MODULE_VERSION_TEST\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$SV_MODULE_VERSION_TEST") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_rubberband_CFLAGS=`$PKG_CONFIG --cflags "$SV_MODULE_VERSION_TEST" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$rubberband_LIBS"; then
-    pkg_cv_rubberband_LIBS="$rubberband_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$SV_MODULE_VERSION_TEST\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$SV_MODULE_VERSION_TEST") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_rubberband_LIBS=`$PKG_CONFIG --libs "$SV_MODULE_VERSION_TEST" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        rubberband_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1`
-        else
-	        rubberband_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$rubberband_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
-$as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
-elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5
-$as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;}
-else
-	rubberband_CFLAGS=$pkg_cv_rubberband_CFLAGS
-	rubberband_LIBS=$pkg_cv_rubberband_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $rubberband_CFLAGS";LIBS="$LIBS $rubberband_LIBS";SV_MODULE_FAILED=""
-fi
-fi
-if test -n "$SV_MODULE_FAILED"; then
-   as_ac_Header=`$as_echo "ac_cv_header_$SV_MODULE_HEADER" | $as_tr_sh`
-ac_fn_cxx_check_header_mongrel "$LINENO" "$SV_MODULE_HEADER" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  HAVES="$HAVES $SV_MODULE_HAVE"
-else
-  as_fn_error $? "Failed to find header $SV_MODULE_HEADER for required module $SV_MODULE_MODULE" "$LINENO" 5
-fi
-
-
-   if test -n "$SV_MODULE_LIB"; then
-     as_ac_Lib=`$as_echo "ac_cv_lib_$SV_MODULE_LIB''_$SV_MODULE_FUNC" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SV_MODULE_FUNC in -l$SV_MODULE_LIB" >&5
-$as_echo_n "checking for $SV_MODULE_FUNC in -l$SV_MODULE_LIB... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$SV_MODULE_LIB  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $SV_MODULE_FUNC ();
-int
-main ()
-{
-return $SV_MODULE_FUNC ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  LIBS="$LIBS -l$SV_MODULE_LIB"
-else
-  as_fn_error $? "Failed to find library $SV_MODULE_LIB for required module $SV_MODULE_MODULE" "$LINENO" 5
-fi
-
-   fi
-fi
-
-
 SV_MODULE_MODULE=sord
 SV_MODULE_VERSION_TEST="sord-0 >= 0.5"
 SV_MODULE_HEADER=sord/sord.h
--- a/configure.ac	Mon Nov 26 14:35:51 2018 +0000
+++ b/configure.ac	Tue Dec 04 13:53:59 2018 +0000
@@ -95,7 +95,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([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/linux/build-and-test-appimage.sh	Mon Nov 26 14:35:51 2018 +0000
+++ b/deploy/linux/build-and-test-appimage.sh	Tue Dec 04 13:53:59 2018 +0000
@@ -24,6 +24,11 @@
     perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
          "$dockerdir"/Dockerfile_test_appimage.gen
 
+grep '^bitbucket.org' ~/.ssh/known_hosts > "$dockerdir"/known_hosts
+cp ~/.ssh/id_dsa_build "$dockerdir"/id_dsa_build
+chmod 600 "$dockerdir"/known_hosts "$dockerdir"/id_dsa_build
+trap "rm $dockerdir/known_hosts $dockerdir/id_dsa_build" 0
+
 dockertag="cannam/sonic-visualiser-appimage-$current"
 
 sudo docker build -t "$dockertag" -f "$dockerdir"/Dockerfile_appimage.gen "$dockerdir"
--- a/deploy/linux/build-and-test-deb.sh	Mon Nov 26 14:35:51 2018 +0000
+++ b/deploy/linux/build-and-test-deb.sh	Tue Dec 04 13:53:59 2018 +0000
@@ -27,6 +27,11 @@
     perl -p -e "s/\[\[RELEASE\]\]/$release/g" > \
          "$dockerdir"/Dockerfile_test_deb.gen
 
+grep '^bitbucket.org' ~/.ssh/known_hosts > "$dockerdir"/known_hosts
+cp ~/.ssh/id_dsa_build "$dockerdir"/id_dsa_build
+chmod 600 "$dockerdir"/known_hosts "$dockerdir"/id_dsa_build
+trap "rm $dockerdir/known_hosts $dockerdir/id_dsa_build" 0
+
 dockertag="cannam/sonic-visualiser-deb-$current"
 
 sudo docker build -t "$dockertag" -f "$dockerdir"/Dockerfile_deb.gen "$dockerdir"
--- a/deploy/linux/docker/Dockerfile_appimage.in	Mon Nov 26 14:35:51 2018 +0000
+++ b/deploy/linux/docker/Dockerfile_appimage.in	Tue Dec 04 13:53:59 2018 +0000
@@ -59,7 +59,15 @@
 WORKDIR c++
 RUN autoreconf -i && ./configure && make -j3 && make install
 
-WORKDIR ../../sonic-visualiser
+WORKDIR /root
+
+COPY id_dsa_build .ssh/id_dsa_build
+COPY known_hosts .ssh/known_hosts
+RUN chmod 600 .ssh/id_dsa_build .ssh/known_hosts
+RUN echo '{"accounts": {"bitbucket": "cannam"}}' > .repoint.json
+RUN ( echo '[ui]' ; echo 'ssh = ssh -i /root/.ssh/id_dsa_build' ) > .hgrc
+
+WORKDIR /sonic-visualiser
 ENV QTDIR /opt/qt510
 ENV PATH /opt/qt510/bin:$PATH
 RUN ./configure
--- a/deploy/linux/docker/Dockerfile_deb.in	Mon Nov 26 14:35:51 2018 +0000
+++ b/deploy/linux/docker/Dockerfile_deb.in	Tue Dec 04 13:53:59 2018 +0000
@@ -49,7 +49,15 @@
 WORKDIR c++
 RUN autoreconf -i && ./configure --enable-shared=no --enable-static=yes && make -j3 && make install
 
-WORKDIR ../../sonic-visualiser
+WORKDIR /root
+
+COPY id_dsa_build .ssh/id_dsa_build
+COPY known_hosts .ssh/known_hosts
+RUN chmod 600 .ssh/id_dsa_build .ssh/known_hosts
+RUN echo '{"accounts": {"bitbucket": "cannam"}}' > .repoint.json
+RUN ( echo '[ui]' ; echo 'ssh = ssh -i /root/.ssh/id_dsa_build' ) > .hgrc
+
+WORKDIR /sonic-visualiser
 RUN ./configure
 RUN make -j3
 
Binary file i18n/sonic-visualiser_cs_CZ.qm has changed
--- a/i18n/sonic-visualiser_cs_CZ.ts	Mon Nov 26 14:35:51 2018 +0000
+++ b/i18n/sonic-visualiser_cs_CZ.ts	Tue Dec 04 13:53:59 2018 +0000
@@ -210,51 +210,51 @@
     <name>CSVAudioFormatDialog</name>
     <message>
         <source>Select Audio Data Format</source>
-        <translation type="unfinished"></translation>
+        <translation>Vybrat formát zvukových dat</translation>
     </message>
     <message>
         <source>Please select the correct data format for this file.</source>
-        <translation type="unfinished">Vyberte, prosím, správný datový formát pro tento soubor.</translation>
+        <translation>Vyberte, prosím, správný datový formát pro tento soubor.</translation>
     </message>
     <message>
         <source>&lt;ignore&gt;</source>
-        <translation type="unfinished">&lt;nevšímat si&gt;</translation>
+        <translation>&lt;nevšímat si&gt;</translation>
     </message>
     <message>
         <source>Audio channels</source>
-        <translation type="unfinished"></translation>
+        <translation>Zvukové kanály</translation>
     </message>
     <message>
         <source>(%1 more)</source>
-        <translation type="unfinished">%1 (více)</translation>
+        <translation>%1 (více)</translation>
     </message>
     <message>
         <source>Audio channel</source>
-        <translation type="unfinished"></translation>
+        <translation>Zvukový kanál</translation>
     </message>
     <message>
         <source>Audio sample rate (Hz):</source>
-        <translation type="unfinished">Vzorkovací kmitočet zvuku (Hz):</translation>
+        <translation>Vzorkovací kmitočet zvuku (Hz):</translation>
     </message>
     <message>
         <source>Sample values are:</source>
-        <translation type="unfinished"></translation>
+        <translation>Vzorkovací kmitočty jsou:</translation>
     </message>
     <message>
         <source>Floating-point in range -1 to 1</source>
-        <translation type="unfinished"></translation>
+        <translation>Plovoucí bod v rozsahu -1 to 1</translation>
     </message>
     <message>
         <source>8-bit in range 0 to 255</source>
-        <translation type="unfinished"></translation>
+        <translation>8-bit v rozsahu 0 až 255</translation>
     </message>
     <message>
         <source>16-bit in range -32768 to 32767</source>
-        <translation type="unfinished"></translation>
+        <translation>16-bit v rozsahu -32768 až 32767</translation>
     </message>
     <message>
         <source>Unknown range: normalise on load</source>
-        <translation type="unfinished"></translation>
+        <translation>Neznámý rozsah: normalizovat při nahrání</translation>
     </message>
 </context>
 <context>
@@ -604,7 +604,7 @@
     </message>
     <message>
         <source>(bin %1)</source>
-        <translation type="unfinished"></translation>
+        <translation>(koš %1)</translation>
     </message>
 </context>
 <context>
@@ -4131,67 +4131,67 @@
     </message>
     <message>
         <source>Russian UI translation contributed by Alexandre Prokoudine.</source>
-        <translation type="unfinished"></translation>
+        <translation>Překlad rozhraní do ruštiny poskytnut Alexandrem Prokoudinem.</translation>
     </message>
     <message>
         <source>Czech UI translation contributed by Pavel Fric.</source>
-        <translation type="unfinished"></translation>
+        <translation>Překlad rozhraní do češtiny poskytnut Pavlem Fricem.</translation>
     </message>
     <message>
         <source>Shift+;</source>
-        <translation type="unfinished"></translation>
+        <translation>Shift+;</translation>
     </message>
     <message>
         <source>Ctrl+Shift+;</source>
-        <translation type="unfinished"></translation>
+        <translation>Ctrl+Shift+;</translation>
     </message>
     <message>
         <source>Convert Audio from Data File...</source>
-        <translation type="unfinished"></translation>
+        <translation>Převést zvuk z datového souboru...</translation>
     </message>
     <message>
         <source>Convert and import audio sample values from a CSV data file</source>
-        <translation type="unfinished"></translation>
+        <translation>Převést a zavést hodnoty zvukových vzorků z datového souboru CSV</translation>
     </message>
     <message>
         <source>Export Audio to Data File...</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyvést zvuk do datového souboru...</translation>
     </message>
     <message>
         <source>Export audio from selection into a CSV data file</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyvést zvuk z výběru do datového souboru CSV</translation>
     </message>
     <message>
         <source>Browse Recorded and Converted Audio</source>
-        <translation type="unfinished"></translation>
+        <translation>Procházet nahraný a převedený zvuk</translation>
     </message>
     <message>
         <source>What&apos;s &amp;New In This Release?</source>
-        <translation type="unfinished"></translation>
+        <translation>Co &amp;nového v tomto vydání?</translation>
     </message>
     <message>
         <source>List the changes in this release (and every previous release) of %1</source>
-        <translation type="unfinished"></translation>
+        <translation>Uvést změny v tomto vydání (a v každém z předchozích vydání) %1</translation>
     </message>
     <message>
         <source>Converting audio data...</source>
-        <translation type="unfinished"></translation>
+        <translation>Převádí se zvuková data...</translation>
     </message>
     <message>
         <source>&lt;b&gt;File open failed&lt;/b&gt;&lt;p&gt;Audio data file %1 could not be opened.</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Soubor se nepodařilo otevřít&lt;/b&gt;&lt;p&gt;Ssoubor se zvukovými daty &quot;%1&quot; se nepodařilo otevřít.</translation>
     </message>
     <message>
         <source>&lt;b&gt;Failed to load plugins&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Nepodařilo se nahrát přídavné moduly&lt;/b&gt;</translation>
     </message>
     <message>
         <source>click then drag to adjust, ctrl+click to reset</source>
-        <translation type="unfinished"></translation>
+        <translation>Klepněte a táhněte pro přizpůsobení, Ctrl+klepnutí pro vrácení do výchozího stavu</translation>
     </message>
     <message>
         <source>drag up/down to adjust, ctrl+click to reset</source>
-        <translation type="unfinished"></translation>
+        <translation>Táhněte nahoru/dolů pro přizpůsobení, Ctrl+klepnutí pro vrácení do výchozího stavu</translation>
     </message>
 </context>
 <context>
@@ -4416,20 +4416,21 @@
     </message>
     <message>
         <source>Not enough memory</source>
-        <translation type="unfinished"></translation>
+        <translation>Nedostatek paměti</translation>
     </message>
     <message>
         <source>&lt;b&gt;Not enough memory&lt;/b&gt;&lt;p&gt;There doesn&apos;t appear to be enough memory to accommodate any necessary temporary data.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Nedostatek paměti&lt;/b&gt;&lt;p&gt;&lt;/p&gt;Zdá se, že na disku není dostatek paměti na to, aby pojala všechna nezbytná dočasná data.&lt;p&gt;</translation>
     </message>
     <message>
         <source>Incomplete session loaded</source>
-        <translation type="unfinished"></translation>
+        <translation>Nahráno neúplné sezení</translation>
     </message>
     <message>
         <source>Some of the audio content referred to by the original session file could not be loaded.
 If you save this session, it will be saved without any reference to that audio, and information may be lost.</source>
-        <translation type="unfinished"></translation>
+        <translation>Něco ze zvukového obsahu, na který odkazuje původní soubor se sezením se nepodařilo nahrát.
+Pokud toto sezení uložíte, bude uloženo bez jakéhokoli odkazu na onen zvuk a může dojít ke ztrátě informací.</translation>
     </message>
 </context>
 <context>
@@ -5096,7 +5097,7 @@
     </message>
     <message>
         <source>Click and drag to navigate; use mouse-wheel or trackpad-scroll to zoom; hold Shift and drag to zoom to an area</source>
-        <translation type="unfinished"></translation>
+        <translation>Klepněte a táhněte pro pohyb; použijte kolečko myši nebo polohovací plošku počítače pro přibližování/oddalování; podržte Shift a táhněte pro přiblížení na oblast</translation>
     </message>
 </context>
 <context>
@@ -5251,119 +5252,120 @@
     <name>PluginPathConfigurator</name>
     <message>
         <source>Move the selected location later in the list</source>
-        <translation type="unfinished"></translation>
+        <translation>Posunout vybrané umístění v seznamu dolů</translation>
     </message>
     <message>
         <source>Move the selected location earlier in the list</source>
-        <translation type="unfinished"></translation>
+        <translation>Posunout vybrané umístění v seznamu nahoru</translation>
     </message>
     <message>
         <source>Add a new location to the list</source>
-        <translation type="unfinished"></translation>
+        <translation>Přidat do seznamu nové umístění</translation>
     </message>
     <message>
         <source>Remove the selected location from the list</source>
-        <translation type="unfinished"></translation>
+        <translation>Odstranit vybrané umístění ze seznamu</translation>
     </message>
     <message>
         <source>Reset to Default</source>
-        <translation type="unfinished"></translation>
+        <translation>Nastavit znovu na výchozí</translation>
     </message>
     <message>
         <source>Reset the list for this plugin type to its default</source>
-        <translation type="unfinished"></translation>
+        <translation>Nastavit seznam pro tento typ přídavného modulu znovu na výchozí</translation>
     </message>
     <message>
         <source>Review plugins...</source>
-        <translation type="unfinished"></translation>
+        <translation>Přezkoumat přídavné moduly...</translation>
     </message>
     <message>
         <source>Plugin locations for plugin type:</source>
-        <translation type="unfinished"></translation>
+        <translation>Umístění přídavných modulů pro typ přídavného modulu:</translation>
     </message>
     <message>
         <source>Vamp</source>
-        <translation type="unfinished"></translation>
+        <translation>Vamp</translation>
     </message>
     <message>
         <source>LADSPA</source>
-        <translation type="unfinished"></translation>
+        <translation>LADSPA</translation>
     </message>
     <message>
         <source>DSSI</source>
-        <translation type="unfinished"></translation>
+        <translation>DSSI</translation>
     </message>
     <message>
         <source>Vamp (32-bit)</source>
-        <translation type="unfinished"></translation>
+        <translation>Vamp (32-bitů)</translation>
     </message>
     <message>
         <source>LADSPA (32-bit)</source>
-        <translation type="unfinished"></translation>
+        <translation>LADSPA (32-bitů)</translation>
     </message>
     <message>
         <source>DSSI (32-bit)</source>
-        <translation type="unfinished"></translation>
+        <translation>DSSI (32-bitů)</translation>
     </message>
     <message>
         <source>(Variable is currently unset)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Proměnná nyní není nastavena)</translation>
     </message>
     <message>
         <source>(Current value begins: &quot;%1 ...&quot;)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Nynější hodnota začíná: &quot;%1 ...&quot;)</translation>
     </message>
     <message>
         <source>(Currently set to: &quot;%1&quot;)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Nyní nastaveno na: &quot;%1&quot;)</translation>
     </message>
     <message>
         <source>Allow the %1 environment variable to take priority over this
 %2</source>
-        <translation type="unfinished"></translation>
+        <translation>Povolit %1 proměnnou prostředí, aby dostala přednost před
+%2</translation>
     </message>
     <message>
         <source>Choose directory to add</source>
-        <translation type="unfinished"></translation>
+        <translation>Vybrat adresář k přidání</translation>
     </message>
 </context>
 <context>
     <name>PluginReviewDialog</name>
     <message>
         <source>Plugins Loaded</source>
-        <translation type="unfinished"></translation>
+        <translation>Přídavné moduly nahrány</translation>
     </message>
     <message>
         <source>Type</source>
-        <translation type="unfinished">Typ</translation>
+        <translation>Typ</translation>
     </message>
     <message>
         <source>Library</source>
-        <translation type="unfinished"></translation>
+        <translation>Knihovna</translation>
     </message>
     <message>
         <source>Identifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Identifikátor</translation>
     </message>
     <message>
         <source>Found in</source>
-        <translation type="unfinished"></translation>
+        <translation>Nalezeno v</translation>
     </message>
     <message>
         <source>Name</source>
-        <translation type="unfinished">Název</translation>
+        <translation>Název</translation>
     </message>
     <message>
         <source>Vamp</source>
-        <translation type="unfinished"></translation>
+        <translation>Vamp</translation>
     </message>
     <message>
         <source>DSSI</source>
-        <translation type="unfinished"></translation>
+        <translation>DSSI</translation>
     </message>
     <message>
         <source>LADSPA</source>
-        <translation type="unfinished"></translation>
+        <translation>LADSPA</translation>
     </message>
 </context>
 <context>
@@ -5747,7 +5749,7 @@
     </message>
     <message>
         <source>&amp;Plugins</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Přídavné moduly</translation>
     </message>
 </context>
 <context>
@@ -5837,19 +5839,19 @@
     </message>
     <message>
         <source>click then drag to adjust, ctrl+click to reset</source>
-        <translation type="unfinished"></translation>
+        <translation>Klepněte a táhněte pro přizpůsobení, Ctrl+klepnutí pro vrácení do výchozího stavu</translation>
     </message>
     <message>
         <source>drag up/down to adjust, ctrl+click to reset</source>
-        <translation type="unfinished"></translation>
+        <translation>Táhněte nahoru/dolů pro přizpůsobení, Ctrl+klepnutí pro vrácení do výchozího stavu</translation>
     </message>
     <message>
         <source>%1%2: %3</source>
-        <translation type="unfinished">%1: %3 {1%2:?}</translation>
+        <translation>%1%2: %3</translation>
     </message>
     <message>
         <source>%1%2</source>
-        <translation type="unfinished">%1%2</translation>
+        <translation>%1%2</translation>
     </message>
 </context>
 <context>
@@ -5981,7 +5983,7 @@
     </message>
     <message>
         <source>&lt;b&gt;Failed to load plugins&lt;/b&gt;&lt;p&gt;Failed to load one or more plugin libraries:&lt;/p&gt;</source>
-        <translation type="vanished">&lt;b&gt;Nepodařilo se nahrát přídavné moduly&lt;/b&gt;&lt;p&gt;Nepodařilo se nahrát jednu nebo více knihoven s přídavnými moduly:&lt;/p&gt;</translation>
+        <translation type="vanished">&lt;b&gt;Nepodařilo se nahrát přídavné moduly&lt;/b&gt;&lt;p&gt;Nepodařilo se nahrát jednu nebo více knihoven přídavných modulů:&lt;/p&gt;</translation>
     </message>
     <message>
         <source>&lt;p&gt;These plugins may be incompatible with the system, and will be ignored during this run of %1.&lt;/p&gt;</source>
@@ -6045,67 +6047,67 @@
     </message>
     <message>
         <source>Exporting audio data...</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyvádí se zvuková data...</translation>
     </message>
     <message>
         <source>Library file could not be opened</source>
-        <translation type="unfinished"></translation>
+        <translation>Soubor s knihovnou se nepodařilo otevřít</translation>
     </message>
     <message>
         <source>Library has wrong architecture - possibly a 32-bit plugin installed in a 64-bit plugin folder</source>
-        <translation type="unfinished"></translation>
+        <translation>Knihovna má špatnou architekturu - možná 32-bitový přídavný modul nainstalovaný ve složce pro 64-bitové přídavné moduly</translation>
     </message>
     <message>
         <source>Library has wrong architecture - possibly a 64-bit plugin installed in a 32-bit plugin folder</source>
-        <translation type="unfinished"></translation>
+        <translation>Knihovna má špatnou architekturu - možná 64-bitový přídavný modul nainstalovaný ve složce pro 32-bitové přídavné moduly</translation>
     </message>
     <message>
         <source>Library depends on another library that cannot be found: %1</source>
-        <translation type="unfinished"></translation>
+        <translation>Knihovna závisí na jiné knihovně, kterou nelze najít: %1</translation>
     </message>
     <message>
         <source>Library cannot be loaded: %1</source>
-        <translation type="unfinished"></translation>
+        <translation>Knihovnu nelze nahrát: %1</translation>
     </message>
     <message>
         <source>Not a valid plugin library (no descriptor found)</source>
-        <translation type="unfinished"></translation>
+        <translation>Není platnou knihovnou přídavného modulu (nenalezen popisovač)</translation>
     </message>
     <message>
         <source>Library contains no plugins</source>
-        <translation type="unfinished"></translation>
+        <translation>Knihovna neobsahuje žádné přídavné moduly</translation>
     </message>
     <message>
         <source>Unknown error</source>
-        <translation type="unfinished"></translation>
+        <translation>Neznámá chyba</translation>
     </message>
     <message numerus="yes">
         <source>... and %n further failure(s)</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>... a %n další selhání</numerusform>
+            <numerusform>... a %n další selhání</numerusform>
+            <numerusform>... a %n další(ch) selhání</numerusform>
         </translation>
     </message>
     <message>
         <source>Blue on Black</source>
-        <translation type="unfinished">Modrá na černé</translation>
+        <translation>Modrá na černé</translation>
     </message>
     <message>
         <source>Cividis</source>
-        <translation type="unfinished"></translation>
+        <translation>Cividis</translation>
     </message>
     <message>
         <source>Magma</source>
-        <translation type="unfinished"></translation>
+        <translation>Láva</translation>
     </message>
     <message>
         <source>Permission to load library was refused</source>
-        <translation type="unfinished"></translation>
+        <translation>Oprávnění k nahrání knihovny bylo odmítnuto</translation>
     </message>
     <message>
         <source>&lt;p&gt;Failed to load one or more plugin libraries:&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Nepodařilo se nahrát jednu nebo více knihoven přídavných modulů:&lt;/b&gt;</translation>
     </message>
 </context>
 <context>
@@ -6895,23 +6897,23 @@
     </message>
     <message>
         <source>Oversampling</source>
-        <translation type="unfinished"></translation>
+        <translation>Převzorkování</translation>
     </message>
     <message>
         <source>1x</source>
-        <translation type="unfinished">1x</translation>
+        <translation>1x</translation>
     </message>
     <message>
         <source>2x</source>
-        <translation type="unfinished">2x</translation>
+        <translation>2x</translation>
     </message>
     <message>
         <source>4x</source>
-        <translation type="unfinished">4x</translation>
+        <translation>4x</translation>
     </message>
     <message>
         <source>8x</source>
-        <translation type="unfinished">8x</translation>
+        <translation>8x</translation>
     </message>
 </context>
 <context>
@@ -7014,27 +7016,27 @@
     </message>
     <message>
         <source>Hz</source>
-        <translation type="unfinished"></translation>
+        <translation>Hz</translation>
     </message>
     <message>
         <source>Oversampling</source>
-        <translation type="unfinished"></translation>
+        <translation>Převzorkování</translation>
     </message>
     <message>
         <source>1x</source>
-        <translation type="unfinished">1x</translation>
+        <translation>1x</translation>
     </message>
     <message>
         <source>2x</source>
-        <translation type="unfinished">2x</translation>
+        <translation>2x</translation>
     </message>
     <message>
         <source>4x</source>
-        <translation type="unfinished">4x</translation>
+        <translation>4x</translation>
     </message>
     <message>
         <source>8x</source>
-        <translation type="unfinished">8x</translation>
+        <translation>8x</translation>
     </message>
 </context>
 <context>
@@ -7908,9 +7910,9 @@
     <message numerus="yes">
         <source>Zoom to %n sample(s) per pixel</source>
         <translation>
-            <numerusform>Zvětšení na jeden vzorek na pixel</numerusform>
-            <numerusform>Zvětšení na %n vzorky na pixel</numerusform>
-            <numerusform>Zvětšení na %n vzorků na pixel</numerusform>
+            <numerusform>Zvětšení na %n vzorek na obrazový bod</numerusform>
+            <numerusform>Zvětšení na %n vzorky na obrazový bod</numerusform>
+            <numerusform>Zvětšení na %n vzorků na obrazový bod</numerusform>
         </translation>
     </message>
     <message>
@@ -7919,10 +7921,10 @@
     </message>
     <message numerus="yes">
         <source>Zoom to %n pixels per sample</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>Zvětšení %n obrazový bod na vzorek</numerusform>
+            <numerusform>Zvětšení %n obrazové body na vzorek</numerusform>
+            <numerusform>Zvětšení %n obrazových bodů na vzorek</numerusform>
         </translation>
     </message>
 </context>
--- a/i18n/sonic-visualiser_en_GB.ts	Mon Nov 26 14:35:51 2018 +0000
+++ b/i18n/sonic-visualiser_en_GB.ts	Tue Dec 04 13:53:59 2018 +0000
@@ -7066,63 +7066,63 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1141"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1162"/>
         <source>Draw Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1223"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1244"/>
         <source>Erase Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1283"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1304"/>
         <source>Drag Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1304"/>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1351"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1325"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1372"/>
         <source>Edit Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1306"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1327"/>
         <source>Relocate Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1309"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1330"/>
         <source>Change Point Value</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1368"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1389"/>
         <source>Drag Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1394"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1415"/>
         <source>Resize Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1434"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1455"/>
         <source>Delete Selected Points</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1481"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1502"/>
         <source>Re-align pasted items?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1482"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1503"/>
         <source>The items you are pasting came from a layer with different source material from this one.  Do you want to re-align them in time, to match the source material for this layer?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1496"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1517"/>
         <source>Paste</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/sonic-visualiser_en_US.ts	Mon Nov 26 14:35:51 2018 +0000
+++ b/i18n/sonic-visualiser_en_US.ts	Tue Dec 04 13:53:59 2018 +0000
@@ -7059,63 +7059,63 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1141"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1162"/>
         <source>Draw Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1223"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1244"/>
         <source>Erase Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1283"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1304"/>
         <source>Drag Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1304"/>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1351"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1325"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1372"/>
         <source>Edit Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1306"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1327"/>
         <source>Relocate Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1309"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1330"/>
         <source>Change Point Value</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1368"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1389"/>
         <source>Drag Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1394"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1415"/>
         <source>Resize Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1434"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1455"/>
         <source>Delete Selected Points</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1481"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1502"/>
         <source>Re-align pasted items?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1482"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1503"/>
         <source>The items you are pasting came from a layer with different source material from this one.  Do you want to re-align them in time, to match the source material for this layer?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1496"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1517"/>
         <source>Paste</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/sonic-visualiser_ru.ts	Mon Nov 26 14:35:51 2018 +0000
+++ b/i18n/sonic-visualiser_ru.ts	Tue Dec 04 13:53:59 2018 +0000
@@ -7735,37 +7735,37 @@
 Метка:	%4</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1309"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1330"/>
         <source>Change Point Value</source>
         <translation>Изменить значение точки</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1368"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1389"/>
         <source>Drag Selection</source>
         <translation>Перетащить выделение</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1394"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1415"/>
         <source>Resize Selection</source>
         <translation>Изменить размер выделения</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1434"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1455"/>
         <source>Delete Selected Points</source>
         <translation>Удалить выбранные точки</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1481"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1502"/>
         <source>Re-align pasted items?</source>
         <translation>Заново выровнять вставленные объекты?</translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1482"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1503"/>
         <source>The items you are pasting came from a layer with different source material from this one.  Do you want to re-align them in time, to match the source material for this layer?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1496"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1517"/>
         <source>Paste</source>
         <translation>Вставить</translation>
     </message>
@@ -7776,28 +7776,28 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1141"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1162"/>
         <source>Draw Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1223"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1244"/>
         <source>Erase Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1283"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1304"/>
         <source>Drag Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1304"/>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1351"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1325"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1372"/>
         <source>Edit Region</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../svgui/layer/RegionLayer.cpp" line="1306"/>
+        <location filename="../svgui/layer/RegionLayer.cpp" line="1327"/>
         <source>Relocate Region</source>
         <translation type="unfinished"></translation>
     </message>
--- a/noconfig.pri	Mon Nov 26 14:35:51 2018 +0000
+++ b/noconfig.pri	Tue Dec 04 13:53:59 2018 +0000
@@ -32,7 +32,6 @@
 LIBS += \
         -lbase \
         -lbz2 \
-	-lrubberband \
 	-lfftw3 \
 	-lfftw3f \
 	-lsndfile \
--- a/repoint-lock.json	Mon Nov 26 14:35:51 2018 +0000
+++ b/repoint-lock.json	Tue Dec 04 13:53:59 2018 +0000
@@ -7,10 +7,10 @@
       "pin": "70e172e6cc59"
     },
     "svgui": {
-      "pin": "c8a6fd3f9dff"
+      "pin": "d057dcc827e7"
     },
     "svapp": {
-      "pin": "e2715204feaa"
+      "pin": "8c5379570f36"
     },
     "checker": {
       "pin": "0d2d3c89fdf6"
@@ -36,8 +36,11 @@
     "bqaudioio": {
       "pin": "8c4162878ae6"
     },
+    "rubberband": {
+      "pin": "6990f06c9f49"
+    },
     "sv-dependency-builds": {
-      "pin": "f1a9b270e043"
+      "pin": "85d5306e114e"
     },
     "icons/scalable": {
       "pin": "1c8844bfa946"
--- a/repoint-project.json	Mon Nov 26 14:35:51 2018 +0000
+++ b/repoint-project.json	Tue Dec 04 13:53:59 2018 +0000
@@ -69,6 +69,11 @@
             "service": "bitbucket",
             "owner": "breakfastquay"
         },
+        "rubberband": {
+            "vcs": "hg",
+            "service": "bitbucket",
+            "owner": "breakfastquay"
+        },
         "sv-dependency-builds": {
             "vcs": "hg",
             "service": "soundsoftware"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rubberband-all.cpp	Tue Dec 04 13:53:59 2018 +0000
@@ -0,0 +1,39 @@
+
+#pragma GCC diagnostic ignored "-Wconversion"
+#pragma GCC diagnostic ignored "-Wfloat-conversion"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#pragma GCC diagnostic ignored "-Wunused-value"
+#pragma GCC diagnostic ignored "-Wsign-compare"
+
+#define USE_KISSFFT 1
+#define USE_SPEEX 1
+
+#ifdef _MSC_VER
+#define __MSVC__
+#endif
+ 
+#include "rubberband/src/rubberband-c.cpp"
+#include "rubberband/src/RubberBandStretcher.cpp"
+#include "rubberband/src/StretcherProcess.cpp"
+#include "rubberband/src/StretchCalculator.cpp"
+#include "rubberband/src/dsp/AudioCurveCalculator.cpp"
+#include "rubberband/src/base/Profiler.cpp"
+#include "rubberband/src/audiocurves/CompoundAudioCurve.cpp"
+#include "rubberband/src/audiocurves/SpectralDifferenceAudioCurve.cpp"
+#include "rubberband/src/audiocurves/HighFrequencyAudioCurve.cpp"
+#include "rubberband/src/audiocurves/SilentAudioCurve.cpp"
+#include "rubberband/src/audiocurves/ConstantAudioCurve.cpp"
+#include "rubberband/src/audiocurves/PercussiveAudioCurve.cpp"
+#include "rubberband/src/dsp/Resampler.cpp"
+#include "rubberband/src/dsp/FFT.cpp"
+#include "rubberband/src/system/Allocators.cpp"
+#include "rubberband/src/system/sysutils.cpp"
+#include "rubberband/src/system/Thread.cpp"
+#include "rubberband/src/StretcherChannelData.cpp"
+#include "rubberband/src/StretcherImpl.cpp"
+#include "rubberband/src/kissfft/kiss_fft.c"
+#include "rubberband/src/kissfft/kiss_fftr.c"
+#include "rubberband/src/speex/resample.c"
+
+        
--- a/version.h	Mon Nov 26 14:35:51 2018 +0000
+++ b/version.h	Tue Dec 04 13:53:59 2018 +0000
@@ -1,1 +1,1 @@
-#define SV_VERSION "3.2-pre1"
+#define SV_VERSION "3.2-pre2"