# HG changeset patch # User Chris Cannam # Date 1465818396 -3600 # Node ID 0ef711a400a23e80d51fd50cc90c026d65dedfb8 # Parent ecb946764afea0669c8195bfdaa39ce7c7d51440# Parent 85f43ad71e9754da660cebcef1f157f4828b2adb Merge from default branch diff -r ecb946764afe -r 0ef711a400a2 .hgsub --- 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 diff -r ecb946764afe -r 0ef711a400a2 .hgsubstate --- 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 diff -r ecb946764afe -r 0ef711a400a2 acinclude.m4 --- 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 diff -r ecb946764afe -r 0ef711a400a2 configure --- 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 diff -r ecb946764afe -r 0ef711a400a2 configure.ac --- 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]) diff -r ecb946764afe -r 0ef711a400a2 deploy/osx/copy-qt.sh --- 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/.*,,) diff -r ecb946764afe -r 0ef711a400a2 deploy/osx/deploy.sh --- 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)" diff -r ecb946764afe -r 0ef711a400a2 deploy/osx/sign.sh --- 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" diff -r ecb946764afe -r 0ef711a400a2 deploy/src/archive.sh --- 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 diff -r ecb946764afe -r 0ef711a400a2 i18n/sonic-visualiser_cs_CZ.qm Binary file i18n/sonic-visualiser_cs_CZ.qm has changed diff -r ecb946764afe -r 0ef711a400a2 i18n/sonic-visualiser_cs_CZ.ts --- 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 @@ Export audio from selection into a data file - + Vyvést zvuk z výběru do datového souboru Export the selected regions into a single file - + Vyvést vybrané oblasti do jednoho souboru Export the whole file - + Vyvést celý soubor Playback Speed @@ -3595,7 +3595,7 @@ Export Audio Data... - + &Vyvést zvuková data... Export Annotation La&yer... @@ -5055,27 +5055,27 @@ Follow system locale - + Použít jazyk systému Russian - + Ruština British English - + Britská angličtina American English - + Americká angličtina Czech - + Čeština User interface language - + Jazyk uživatelského rozhraní Allow network usage diff -r ecb946764afe -r 0ef711a400a2 i18n/sonic-visualiser_en_GB.ts --- 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 @@ AudioCallbackPlaySource - + Play from %1 - + Stop at %1 - + Change time-stretch factor to %1 @@ -543,7 +543,7 @@ Dense3DModelPeakCache - + Dense 3-D Peak Cache @@ -551,17 +551,17 @@ DenseThreeDimensionalModel - + Dense 3-D - + Time - + Frame @@ -590,7 +590,7 @@ EditableDenseThreeDimensionalModel - + Editable Dense 3-D @@ -598,7 +598,7 @@ FFTModel - + FFT @@ -4532,13 +4532,13 @@ - + %1: %2 - + %1: %2 [%3] @@ -4638,57 +4638,57 @@ - + Couldn't open audio device - + <b>No audio available</b><p>Could not open an audio device for playback.<p>Automatic audio device detection failed. Audio playback will not be available during this session.</p> - + Recording: %1 - - - - Failed to write file - - - + Failed to write file + + + + + + <b>Save failed</b><p>Failed to write to file "%1": %2 - + Import Recorded Audio - + Add Pane - + Remove Pane - - + + Delete Pane - + Playing: %1 of %2 (%3 remaining) @@ -6755,23 +6755,23 @@ SpectrogramLayer + + + Colour + + + + + Colour Scale + + + - - Colour + Window Size - Colour Scale - - - - - Window Size - - - - Window Overlap @@ -6784,337 +6784,337 @@ Normalise Visible Area + + Normalization + + + + + Bin Display + + + - Normalization + Threshold - Bin Display + Gain - Threshold + Colour Rotation - Gain + Min Frequency - Colour Rotation + Max Frequency - Min Frequency + Frequency Scale - Max Frequency - - - - - Frequency Scale - - - - Smoothing - + Bins - + Window - + Scale + + + Linear + + + + + Meter + + + - - Linear + dBV^2 - Meter + dBV - dBV^2 - - - - - dBV - - - - Phase + + + None + + + + + 25 % + + + - - None + 50 % - 25 % + 75 % - 50 % + 87.5 % - 75 % - - - - - 87.5 % - - - - 93.75 % + + No min + + + + + 10 Hz + + + - No min + 20 Hz - 10 Hz + 40 Hz - 20 Hz + 100 Hz - 40 Hz + 250 Hz - 100 Hz + + 500 Hz - 250 Hz + + 1 KHz + + 4 KHz + + + + + 10 KHz + + + - 500 Hz - - - - + 1.5 KHz + + + - 1 KHz - - - - + 2 KHz + + + + + 6 KHz + + + - 4 KHz - - - - - 10 KHz - - - - - 1.5 KHz - - - - - 2 KHz + 8 KHz - 6 KHz + 12 KHz - 8 KHz + 16 KHz - 12 KHz - - - - - 16 KHz - - - - No max - + Log + + All Bins + + + + + Peak Bins + + + - All Bins - - - - - Peak Bins - - - - Frequencies - + <unknown> - - + + dB - + FFT cache failed - + Failed to create the FFT model for this spectrogram. There may be insufficient memory or disc space to continue. - + Peak Frequency: %1 - %2 Hz - + Peak Frequency: %1 Hz - + Peak Pitch: %3 - %4 - + Peak Pitch: %2 - + Time: %1 - %2 - + Time: %1 - + %1Bin Frequency: %2 - %3 Hz %4Bin Pitch: %5 - %6 - + %1Bin Frequency: %2 Hz %3Bin Pitch: %4 - - + + -Inf - + dB: %1 - %2 - + dB: %1 - + Phase: %1 - %2 - + Phase: %1 - + 43Hz - + %1Hz @@ -7891,44 +7891,44 @@ - - + + Plugin type - - + + Category - - + + System Identifier - - + + Name - - + + Description - - + + Maker - - + + Units @@ -8134,63 +8134,63 @@ View + + Global Scroll + + + - Global Scroll + Global Zoom - Global Zoom - - - - Follow Playback + + Scroll + + + - Scroll + Page - Page - - - - Off - + <unknown> - + Layer rendering error - + Alignment - + Waiting for layers to be ready... - + + + Cancel + + + - Cancel - - - - Rendering image... diff -r ecb946764afe -r 0ef711a400a2 i18n/sonic-visualiser_en_US.ts --- 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 @@ AudioCallbackPlaySource - + Play from %1 - + Stop at %1 - + Change time-stretch factor to %1 @@ -543,7 +543,7 @@ Dense3DModelPeakCache - + Dense 3-D Peak Cache @@ -551,17 +551,17 @@ DenseThreeDimensionalModel - + Dense 3-D - + Time - + Frame @@ -590,7 +590,7 @@ EditableDenseThreeDimensionalModel - + Editable Dense 3-D @@ -598,7 +598,7 @@ FFTModel - + FFT @@ -4544,13 +4544,13 @@ - + %1: %2 - + %1: %2 [%3] @@ -4650,57 +4650,57 @@ - + Couldn't open audio device - + <b>No audio available</b><p>Could not open an audio device for playback.<p>Automatic audio device detection failed. Audio playback will not be available during this session.</p> - + Recording: %1 - - - - Failed to write file - - - + Failed to write file + + + + + + <b>Save failed</b><p>Failed to write to file "%1": %2 - + Import Recorded Audio - + Add Pane - + Remove Pane - - + + Delete Pane - + Playing: %1 of %2 (%3 remaining) @@ -6740,358 +6740,358 @@ SpectrogramLayer - - + + Colour Color - + Colour Scale Color Scale + + Window Size + + + + + Window Overlap + + + - Window Size + Normalization - Window Overlap + Bin Display - Normalization + Threshold - Bin Display + Gain - Threshold - - - - - Gain - - - - Colour Rotation Color Rotation + + Min Frequency + + + + + Max Frequency + + + - Min Frequency + Frequency Scale - Max Frequency - - - - - Frequency Scale - - - - Smoothing - + Bins - + Window - + Scale + + + Linear + + + + + Meter + + + - - Linear + dBV^2 - Meter + dBV - dBV^2 - - - - - dBV - - - - Phase + + + None + + + + + 25 % + + + - - None + 50 % - 25 % + 75 % - 50 % + 87.5 % - 75 % - - - - - 87.5 % - - - - 93.75 % + + No min + + + + + 10 Hz + + + - No min + 20 Hz - 10 Hz + 40 Hz - 20 Hz + 100 Hz - 40 Hz + 250 Hz - 100 Hz + + 500 Hz - 250 Hz + + 1 KHz + + 4 KHz + + + + + 10 KHz + + + - 500 Hz - - - - + 1.5 KHz + + + - 1 KHz - - - - + 2 KHz + + + + + 6 KHz + + + - 4 KHz - - - - - 10 KHz - - - - - 1.5 KHz - - - - - 2 KHz + 8 KHz - 6 KHz + 12 KHz - 8 KHz + 16 KHz - 12 KHz - - - - - 16 KHz - - - - No max - + Log + + All Bins + + + + + Peak Bins + + + - All Bins - - - - - Peak Bins - - - - Frequencies - + <unknown> - - + + dB - + FFT cache failed - + Failed to create the FFT model for this spectrogram. There may be insufficient memory or disc space to continue. - + Peak Frequency: %1 - %2 Hz - + Peak Frequency: %1 Hz - + Peak Pitch: %3 - %4 - + Peak Pitch: %2 - + Time: %1 - %2 - + Time: %1 - + %1Bin Frequency: %2 - %3 Hz %4Bin Pitch: %5 - %6 - + %1Bin Frequency: %2 Hz %3Bin Pitch: %4 - - + + -Inf - + dB: %1 - %2 - + dB: %1 - + Phase: %1 - %2 - + Phase: %1 - + 43Hz - + %1Hz @@ -7868,44 +7868,44 @@ - - + + Plugin type - - + + Category - - + + System Identifier - - + + Name - - + + Description - - + + Maker - - + + Units @@ -8111,63 +8111,63 @@ View + + Global Scroll + + + - Global Scroll + Global Zoom - Global Zoom - - - - Follow Playback + + Scroll + + + - Scroll + Page - Page - - - - Off - + <unknown> - + Layer rendering error - + Alignment - + Waiting for layers to be ready... - + + + Cancel + + + - Cancel - - - - Rendering image... diff -r ecb946764afe -r 0ef711a400a2 i18n/sonic-visualiser_ru.ts --- 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 @@ AudioCallbackPlaySource - + Play from %1 Воспроизведение от %1 - + Stop at %1 Остановка в позиции %1 - + Change time-stretch factor to %1 Смена коэффициента растяжения во времени на %1 @@ -627,7 +627,7 @@ Dense3DModelPeakCache - + Dense 3-D Peak Cache @@ -635,17 +635,17 @@ DenseThreeDimensionalModel - + Dense 3-D - + Time Время - + Frame Выборка @@ -674,7 +674,7 @@ EditableDenseThreeDimensionalModel - + Editable Dense 3-D @@ -687,7 +687,7 @@ %1 Гц - + FFT FFT @@ -4897,13 +4897,13 @@ - + %1: %2 %1: %2 - + %1: %2 [%3] %1: %2 [%3] @@ -4942,57 +4942,57 @@ - + Couldn't open audio device Не удалось открыть звуковое устройство - - - - Failed to write file - Не удалось записать файл - - + Failed to write file + Не удалось записать файл + + + + + <b>Save failed</b><p>Failed to write to file "%1": %2 <b>Не удалось сохранить</b><p>Не удалось записать файл "%1": %2 - + Import Recorded Audio - + Add Pane Добавить окно - + Remove Pane Удалить окно - - + + Delete Pane Удалить окно - + Playing: %1 of %2 (%3 remaining) Воспроизводится: %1 из %2 (осталось %3) - + Recording: %1 - + <b>No audio available</b><p>Could not open an audio device for playback.<p>Automatic audio device detection failed. Audio playback will not be available during this session.</p> <b>Беззвучный режим</b><p>Не удалось открыть звуковое устройство для воспроизведения.<p>Не удалось автоматически определить звуковое устройство. На этот раз придется обойтись без воспроизведения звука.</p> @@ -7293,18 +7293,18 @@ SpectrogramLayer - - + + Colour Цвет - + Colour Scale - + Window Size Размер окна @@ -7313,234 +7313,234 @@ Нормализовать столбцы - + Bin Display - + Threshold Порог - + Gain Усиление - + Colour Rotation Вращение цвета - + Min Frequency Мин. частота - + Max Frequency Макс. частота - + Frequency Scale - + Window Окно - + Scale Масштаб - - + + Linear Линейный - + Meter Счетчик - - + + dB Дб - + Phase Фаза - + Normalization - + No min Без минимума - + 10 Hz 10 Гц - + 20 Hz 20 Гц - + 40 Hz 40 Гц - + 100 Hz 100 Гц - + 250 Hz 250 Гц - - + + 500 Hz 500 Гц - - + + 1 KHz 1 КГц - - + + 4 KHz 4 КГц - + 10 KHz 10 КГц - + 1.5 KHz 1,5 КГц - + 2 KHz 2 КГц - + 6 KHz 6 КГц - + 8 KHz 8 КГц - + 12 KHz 12 КГц - + 16 KHz 16 КГц - + No max Без максимума - + Log Логарифм. - + All Bins Все бины - + Peak Bins Пиковые бины - + Frequencies Частоты - + <unknown> <неизвестно> - + Peak Frequency: %1 - %2 Hz Пиковая частота: %1 - %2 Гц - + Peak Frequency: %1 Hz Пиковая частота: %1 Гц - + Peak Pitch: %3 - %4 Пиковая высота тона: %3 - %4 - + Peak Pitch: %2 Пиковая высота тона: %2 - + Time: %1 - %2 Время: %1 - %2 - + Time: %1 Время: %1 - + %1Bin Frequency: %2 - %3 Hz %4Bin Pitch: %5 - %6 @@ -7549,7 +7549,7 @@ - + %1Bin Frequency: %2 Hz %3Bin Pitch: %4 @@ -7558,73 +7558,73 @@ - - + + -Inf -Inf - + dB: %1 - %2 Дб: %1 - %2 - + dB: %1 Дб: %1 - + Phase: %1 - %2 Фаза: %1 - %2 - + Phase: %1 Фаза: %1 - + Window Overlap Перекрытие окон - + Smoothing - - + + None Нет - + 25 % 25 % - + 50 % 50 % - + 75 % 75 % - + 87.5 % 87,5 % - + 93.75 % 93,75 % @@ -7633,39 +7633,39 @@ Нормализовать видимую область - + Bins Бины - + FFT cache failed Не удалось кэшировать FFT - + Failed to create the FFT model for this spectrogram. There may be insufficient memory or disc space to continue. Не удалось создать FFT-модель этой спектрограммы. Вероятно, не хватает памяти или дискового порстранства для продолжения. - + dBV^2 ДбВ^2 - + dBV ДбВ - + 43Hz 43 Гц - + %1Hz %1 Гц @@ -8470,44 +8470,44 @@ Создать звуковой сигнал при помощи расширения "%1" (из %2) - - + + Plugin type Тип расширения - - + + Category Категория - - + + System Identifier Системный идентификатор - - + + Name Название - - + + Description Описание - - + + Maker Создатель - - + + Units Единица измерения @@ -8726,63 +8726,63 @@ View - + Global Scroll Глобальная прокрутка - + Global Zoom Глобальный масштаб - + Follow Playback Следовать за воспроизведением - + Scroll Прокручивать - + Page Постранично - + Off Выключить - + <unknown> <неизвестно> - + Layer rendering error - + Waiting for layers to be ready... Ожидание готовности слоёв... - - + + Cancel Отменить - + Rendering image... Отрисовывается изображение... - + Alignment Выравнивание diff -r ecb946764afe -r 0ef711a400a2 main/MainWindow.cpp --- 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("Alignment calculation failed

Failed to calculate an audio alignment using transform \"%1\":

%2") - .arg(transformName).arg(message), + tr("Alignment calculation failed

Failed to calculate an audio alignment:

%1") + .arg(message), QMessageBox::Ok); } @@ -4574,7 +4576,7 @@ aboutText += ""; - aboutText += tr("With Qt v%1 © Nokia Corporation").arg(QT_VERSION_STR); + aboutText += tr("With Qt v%1 © The Qt Company").arg(QT_VERSION_STR); #ifdef HAVE_JACK #ifdef JACK_VERSION diff -r ecb946764afe -r 0ef711a400a2 main/MainWindow.h --- 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(); diff -r ecb946764afe -r 0ef711a400a2 main/main.cpp --- 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 #include @@ -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"); diff -r ecb946764afe -r 0ef711a400a2 sonic-visualiser.pro --- 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, diff -r ecb946764afe -r 0ef711a400a2 sv.pro --- 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 diff -r ecb946764afe -r 0ef711a400a2 version.h --- 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"