sv1-commits Mailing List for Sonic Visualiser (Page 3)
Brought to you by:
cannam
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(25) |
Oct
(57) |
Nov
(25) |
Dec
(11) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(36) |
Feb
(34) |
Mar
(55) |
Apr
(41) |
May
(25) |
Jun
(27) |
Jul
(22) |
Aug
(16) |
Sep
(33) |
Oct
(52) |
Nov
(79) |
Dec
(28) |
2008 |
Jan
(27) |
Feb
(56) |
Mar
(38) |
Apr
(32) |
May
(22) |
Jun
(55) |
Jul
(48) |
Aug
(10) |
Sep
(23) |
Oct
(32) |
Nov
(56) |
Dec
(71) |
2009 |
Jan
(35) |
Feb
(61) |
Mar
(52) |
Apr
(3) |
May
(18) |
Jun
(24) |
Jul
(13) |
Aug
(20) |
Sep
(27) |
Oct
(29) |
Nov
|
Dec
(1) |
2010 |
Jan
(3) |
Feb
(5) |
Mar
(8) |
Apr
(1) |
May
(20) |
Jun
(15) |
Jul
(8) |
Aug
(4) |
Sep
(3) |
Oct
|
Nov
(1) |
Dec
|
2011 |
Jan
(3) |
Feb
(1) |
Mar
|
Apr
(9) |
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
(3) |
Nov
(2) |
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ca...@us...> - 2010-06-15 10:54:21
|
Revision: 1714 http://sv1.svn.sourceforge.net/sv1/?rev=1714&view=rev Author: cannam Date: 2010-06-15 10:54:15 +0000 (Tue, 15 Jun 2010) Log Message: ----------- * Fix duplicate entries on right-button Layer menu when more than one audio file is loaded Modified Paths: -------------- sonic-visualiser/trunk/sv/main/MainWindow.cpp Modified: sonic-visualiser/trunk/sv/main/MainWindow.cpp =================================================================== --- sonic-visualiser/trunk/sv/main/MainWindow.cpp 2010-06-15 10:48:28 UTC (rev 1713) +++ sonic-visualiser/trunk/sv/main/MainWindow.cpp 2010-06-15 10:54:15 UTC (rev 1714) @@ -331,14 +331,6 @@ // m_rightButtonMenu->setTearOffEnabled(true); } - if (m_rightButtonLayerMenu) { - m_rightButtonLayerMenu->clear(); - } else { - m_rightButtonLayerMenu = m_rightButtonMenu->addMenu(tr("&Layer")); - m_rightButtonLayerMenu->setTearOffEnabled(true); - m_rightButtonMenu->addSeparator(); - } - if (m_rightButtonTransformsMenu) { m_rightButtonTransformsMenu->clear(); } else { @@ -906,6 +898,14 @@ m_layerMenu->setTearOffEnabled(true); } + if (m_rightButtonLayerMenu) { + m_rightButtonLayerMenu->clear(); + } else { + m_rightButtonLayerMenu = m_rightButtonMenu->addMenu(tr("&Layer")); + m_rightButtonLayerMenu->setTearOffEnabled(true); + m_rightButtonMenu->addSeparator(); + } + QMenu *menu = m_paneMenu; IconLoader il; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-06-15 10:48:34
|
Revision: 1713 http://sv1.svn.sourceforge.net/sv1/?rev=1713&view=rev Author: cannam Date: 2010-06-15 10:48:28 +0000 (Tue, 15 Jun 2010) Log Message: ----------- * Fix incorrect grouping for spectrum layer parameters Modified Paths: -------------- sonic-visualiser/trunk/layer/SpectrumLayer.cpp Modified: sonic-visualiser/trunk/layer/SpectrumLayer.cpp =================================================================== --- sonic-visualiser/trunk/layer/SpectrumLayer.cpp 2010-06-15 10:39:06 UTC (rev 1712) +++ sonic-visualiser/trunk/layer/SpectrumLayer.cpp 2010-06-15 10:48:28 UTC (rev 1713) @@ -170,7 +170,7 @@ { if (name == "Window Size" || name == "Window Increment") return tr("Window"); - if (name == "Show Peak Frequencies") return tr("Plot Type"); + if (name == "Show Peak Frequencies") return tr("Bins"); return SliceLayer::getPropertyGroupName(name); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-06-15 10:39:12
|
Revision: 1712 http://sv1.svn.sourceforge.net/sv1/?rev=1712&view=rev Author: cannam Date: 2010-06-15 10:39:06 +0000 (Tue, 15 Jun 2010) Log Message: ----------- * Ensure solo works correctly when switching to a waveform that was generated via an effects transform from another waveform that's in a different pane (previously, switching to the generated version would leave both playing) Modified Paths: -------------- sonic-visualiser/trunk/framework/MainWindowBase.cpp Modified: sonic-visualiser/trunk/framework/MainWindowBase.cpp =================================================================== --- sonic-visualiser/trunk/framework/MainWindowBase.cpp 2010-06-08 12:30:28 UTC (rev 1711) +++ sonic-visualiser/trunk/framework/MainWindowBase.cpp 2010-06-15 10:39:06 UTC (rev 1712) @@ -531,7 +531,13 @@ View::ModelSet sources; for (View::ModelSet::iterator mi = soloModels.begin(); mi != soloModels.end(); ++mi) { - if (*mi && (*mi)->getSourceModel()) { + // If a model in this pane is derived from something else, + // then we want to play that model as well -- if the model + // that's derived from it is not something that is itself + // individually playable (e.g. a waveform) + if (*mi && + !dynamic_cast<RangeSummarisableTimeValueModel *>(*mi) && + (*mi)->getSourceModel()) { sources.insert((*mi)->getSourceModel()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-06-08 15:20:56
|
Revision: 1711 http://sv1.svn.sourceforge.net/sv1/?rev=1711&view=rev Author: cannam Date: 2010-06-08 12:30:28 +0000 (Tue, 08 Jun 2010) Log Message: ----------- * Add link to 32-bit Ubuntu package Modified Paths: -------------- website/download.html Modified: website/download.html =================================================================== --- website/download.html 2010-06-08 11:36:07 UTC (rev 1710) +++ website/download.html 2010-06-08 12:30:28 UTC (rev 1711) @@ -42,13 +42,11 @@ <td align=center>Version<br><big><b>1.7.2</b></big></td> - <td align=center><br>Coming soon -<!-- + <td align=center><br> <a - href="http://downloads.sourceforge.net/sv1/sonic-visualiser_1.7.1cc-1_i386.deb"><img src="images/linux.png" valign=middle style="padding-right:8px" border=0>32-bit</a> or <a - href="http://downloads.sourceforge.net/sv1/sonic-visualiser_1.7.1cc-1_amd64.deb">64-bit</a><br><br> - <span style="font-size: 0.9em">Package for Ubuntu 8.10 and 9.04</span> ---> + href="http://downloads.sourceforge.net/sv1/sonic-visualiser_1.7.2cc-1_i386.deb"><img src="images/linux.png" valign=middle style="padding-right:8px" border=0>32-bit</a> <!-- or <a + href="http://downloads.sourceforge.net/sv1/sonic-visualiser_1.7.1cc-1_amd64.deb">64-bit</a> --><br><br> + <span style="font-size: 0.9em">Package for Ubuntu 10.04</span> <br><br> </td> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-06-08 11:36:15
|
Revision: 1710 http://sv1.svn.sourceforge.net/sv1/?rev=1710&view=rev Author: cannam Date: 2010-06-08 11:36:07 +0000 (Tue, 08 Jun 2010) Log Message: ----------- * Add script to work out dependent packages Added Paths: ----------- sonic-visualiser/trunk/misc/debian-dependencies.sh Added: sonic-visualiser/trunk/misc/debian-dependencies.sh =================================================================== --- sonic-visualiser/trunk/misc/debian-dependencies.sh (rev 0) +++ sonic-visualiser/trunk/misc/debian-dependencies.sh 2010-06-08 11:36:07 UTC (rev 1710) @@ -0,0 +1,41 @@ +#!/bin/bash + +target=$1 + +if [ ! -f "$target" ]; then + echo "Usage: $0 target-executable" + exit 1 +fi + +pfile=/tmp/packages_$$ +rfile=/tmp/redundant_$$ + +trap "rm -f $pfile $rfile" 0 +echo + +ldd "$target" | awk '{ print $3; }' | while read lib; do + if test -n "$lib" ; then + dpkg-query -S "$lib" + fi + done | grep ': ' | awk -F: '{ print $1 }' | sort | uniq > $pfile + +echo "Packages providing required libraries:" +cat $pfile +echo + +for p in `cat $pfile`; do + apt-cache showpkg "$p" | grep '^ ' | grep ',' | awk -F, '{ print $1; }' | \ + while read d; do + if grep -q '^'$d'$' $pfile; then + echo $p + fi + done +done | sort | uniq > $rfile + +echo "Packages that can be eliminated because other packages depend on them:" +cat $rfile +echo + +echo "Remaining required packages:" +cat $pfile $rfile | sort | uniq -u + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-26 16:47:29
|
Revision: 1709 http://sv1.svn.sourceforge.net/sv1/?rev=1709&view=rev Author: cannam Date: 2010-05-26 16:47:23 +0000 (Wed, 26 May 2010) Log Message: ----------- * Retag for 0.5 Added Paths: ----------- sonic-annotator/tags/sonic-annotator-0.5/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-26 16:46:49
|
Revision: 1708 http://sv1.svn.sourceforge.net/sv1/?rev=1708&view=rev Author: cannam Date: 2010-05-26 16:46:39 +0000 (Wed, 26 May 2010) Log Message: ----------- * Delete tag, will retag Removed Paths: ------------- sonic-annotator/tags/sonic-annotator-0.5/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-26 16:46:11
|
Revision: 1707 http://sv1.svn.sourceforge.net/sv1/?rev=1707&view=rev Author: cannam Date: 2010-05-26 16:46:04 +0000 (Wed, 26 May 2010) Log Message: ----------- * update version number (sigh) Modified Paths: -------------- sonic-annotator/trunk/version.h Modified: sonic-annotator/trunk/version.h =================================================================== --- sonic-annotator/trunk/version.h 2010-05-26 16:38:00 UTC (rev 1706) +++ sonic-annotator/trunk/version.h 2010-05-26 16:46:04 UTC (rev 1707) @@ -1 +1 @@ -#define RUNNER_VERSION "0.4" +#define RUNNER_VERSION "0.5" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-26 16:38:06
|
Revision: 1706 http://sv1.svn.sourceforge.net/sv1/?rev=1706&view=rev Author: cannam Date: 2010-05-26 16:38:00 +0000 (Wed, 26 May 2010) Log Message: ----------- * Tag for v0.5 Added Paths: ----------- sonic-annotator/tags/sonic-annotator-0.5/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-26 16:37:50
|
Revision: 1705 http://sv1.svn.sourceforge.net/sv1/?rev=1705&view=rev Author: cannam Date: 2010-05-26 16:37:41 +0000 (Wed, 26 May 2010) Log Message: ----------- * change log update for 0.5 Modified Paths: -------------- sonic-annotator/trunk/CHANGELOG Modified: sonic-annotator/trunk/CHANGELOG =================================================================== --- sonic-annotator/trunk/CHANGELOG 2010-05-24 16:04:10 UTC (rev 1704) +++ sonic-annotator/trunk/CHANGELOG 2010-05-26 16:37:41 UTC (rev 1705) @@ -1,4 +1,18 @@ +Changes in Sonic Annotator 0.5 since the previous release 0.4: + +Build changes: + + - Remove unused audioio library and avoid its dependencies + +Front-end changes: + + - Avoid leaking file descriptors on exceptions + - Fix embarrassing bug that caused failure to mix down to mono + properly for single-channel plugins with multi-channel input files + - Fail sooner if the output file is not writable (i.e. don't wait + until the first data is available for writing) + Changes in Sonic Annotator 0.4 since the previous release 0.3: Build changes: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-24 16:04:16
|
Revision: 1704 http://sv1.svn.sourceforge.net/sv1/?rev=1704&view=rev Author: cannam Date: 2010-05-24 16:04:10 +0000 (Mon, 24 May 2010) Log Message: ----------- * Avoid failing on second and subsequent input files in single-output-file mode (because first input file caused output file to be open, so second input file failed because output "already existed") Modified Paths: -------------- sonic-visualiser/trunk/transform/FileFeatureWriter.cpp Modified: sonic-visualiser/trunk/transform/FileFeatureWriter.cpp =================================================================== --- sonic-visualiser/trunk/transform/FileFeatureWriter.cpp 2010-05-24 16:03:41 UTC (rev 1703) +++ sonic-visualiser/trunk/transform/FileFeatureWriter.cpp 2010-05-24 16:04:10 UTC (rev 1704) @@ -218,7 +218,14 @@ FileFeatureWriter::testOutputFile(QString trackId, TransformId transformId) { - if (m_stdout) return; + // Obviously, if we're writing to stdout we can't test for an + // openable output file. But when writing a single file we don't + // want to either, because this test would fail on the second and + // subsequent input files (because the file would already exist). + // getOutputFile does the right thing in this case, so we just + // leave it to it + if (m_stdout || m_singleFileName != "") return; + QString filename = getOutputFilename(trackId, transformId); if (filename == "") { throw FailedToOpenOutputStream(trackId, transformId); @@ -266,7 +273,7 @@ m_files[key] = 0; throw FailedToOpenFile(filename); } - + m_files[key] = file; } @@ -281,7 +288,7 @@ if (!file && !m_stdout) { return 0; } - + if (m_streams.find(file) == m_streams.end()) { if (m_stdout) { m_streams[file] = new QTextStream(stdout); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-24 16:03:47
|
Revision: 1703 http://sv1.svn.sourceforge.net/sv1/?rev=1703&view=rev Author: cannam Date: 2010-05-24 16:03:41 +0000 (Mon, 24 May 2010) Log Message: ----------- * Avoid failing on second and subsequent input files in single-output-file mode (because first input file caused output file to be open, so second input file failed because output "already existed") Modified Paths: -------------- sonic-annotator/trunk/svn-commit.sh Modified: sonic-annotator/trunk/svn-commit.sh =================================================================== --- sonic-annotator/trunk/svn-commit.sh 2010-05-24 15:06:30 UTC (rev 1702) +++ sonic-annotator/trunk/svn-commit.sh 2010-05-24 16:03:41 UTC (rev 1703) @@ -2,7 +2,7 @@ svn commit || exit -for x in audioio base data plugin rdf system transform; do +for x in base data plugin rdf system transform; do svn commit $x || exit done This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-24 15:06:37
|
Revision: 1702 http://sv1.svn.sourceforge.net/sv1/?rev=1702&view=rev Author: cannam Date: 2010-05-24 15:06:30 +0000 (Mon, 24 May 2010) Log Message: ----------- * Fix mixdown for multi-channel source -> 1-channel plugin Modified Paths: -------------- sonic-annotator/trunk/runner/FeatureExtractionManager.cpp Modified: sonic-annotator/trunk/runner/FeatureExtractionManager.cpp =================================================================== --- sonic-annotator/trunk/runner/FeatureExtractionManager.cpp 2010-05-21 10:21:33 UTC (rev 1701) +++ sonic-annotator/trunk/runner/FeatureExtractionManager.cpp 2010-05-24 15:06:30 UTC (rev 1702) @@ -429,7 +429,7 @@ cerr << "Opened " << channels << "-channel file or URL \"" << audioSource.toStdString() << "\"" << endl; - // reject file if it has too few channels, plugin will handle if it has too many + // reject file if it has too few channels if ((int)channels < m_channels) { delete reader; throw FileOperationFailed @@ -574,24 +574,40 @@ // leave it to the plugin adapter because the same plugin // adapter may have to serve for input files with various // numbers of channels (so the adapter is simply configured - // with a fixed channel count, generally 1). + // with a fixed channel count). int rc = reader->getChannelCount(); - for (int j = 0; j < m_blockSize; ++j) { + // m_channels is the number of channels we need for the plugin + + int index; + int fc = (int)frames.size(); + if (m_channels == 1) { // only case in which we can sensibly mix down + for (int j = 0; j < m_blockSize; ++j) { + data[0][j] = 0.f; + } + for (int c = 0; c < rc; ++c) { + for (int j = 0; j < m_blockSize; ++j) { + index = j * rc + c; + if (index < fc) data[0][j] += frames[index]; + } + } + for (int j = 0; j < m_blockSize; ++j) { + data[0][j] /= rc; + } + } else { for (int c = 0; c < m_channels; ++c) { - int index; - if (c < rc) { - index = j * rc + c; + for (int j = 0; j < m_blockSize; ++j) { data[c][j] = 0.f; - } else { - index = j * rc + (c % rc); } - if (index < (int)frames.size()) { - data[c][j] += frames[index]; + if (c < rc) { + for (int j = 0; j < m_blockSize; ++j) { + index = j * rc + c; + if (index < fc) data[c][j] += frames[index]; + } } } - } + } Vamp::RealTime timestamp = Vamp::RealTime::frame2RealTime (i, m_sampleRate); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-21 10:21:41
|
Revision: 1701 http://sv1.svn.sourceforge.net/sv1/?rev=1701&view=rev Author: cannam Date: 2010-05-21 10:21:33 +0000 (Fri, 21 May 2010) Log Message: ----------- * No audioio any more Modified Paths: -------------- sonic-annotator/trunk/svn-diff.sh Modified: sonic-annotator/trunk/svn-diff.sh =================================================================== --- sonic-annotator/trunk/svn-diff.sh 2010-05-21 10:21:18 UTC (rev 1700) +++ sonic-annotator/trunk/svn-diff.sh 2010-05-21 10:21:33 UTC (rev 1701) @@ -2,7 +2,7 @@ svn diff || exit -for x in audioio base data plugin rdf system transform; do +for x in base data plugin rdf system transform; do svn diff $x || exit done This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-21 10:21:24
|
Revision: 1700 http://sv1.svn.sourceforge.net/sv1/?rev=1700&view=rev Author: cannam Date: 2010-05-21 10:21:18 +0000 (Fri, 21 May 2010) Log Message: ----------- * Improve behaviour when output file write fails (i.e. fail earlier) Modified Paths: -------------- sonic-visualiser/trunk/transform/FeatureWriter.h sonic-visualiser/trunk/transform/FileFeatureWriter.cpp sonic-visualiser/trunk/transform/FileFeatureWriter.h Modified: sonic-visualiser/trunk/transform/FeatureWriter.h =================================================================== --- sonic-visualiser/trunk/transform/FeatureWriter.h 2010-05-21 10:20:52 UTC (rev 1699) +++ sonic-visualiser/trunk/transform/FeatureWriter.h 2010-05-21 10:21:18 UTC (rev 1700) @@ -85,6 +85,16 @@ const Vamp::Plugin::FeatureList &features, std::string summaryType = "") = 0; + /** + * Throw FailedToOpenOutputStream if we can already tell that we + * will be unable to write to the output file. This is called to + * test the output stream before processing begins. The writer + * may legitimately succeed here but still fail later -- this is + * really an optimisation to ensure that easy-to-recognise failure + * cases fail early. + */ + virtual void testOutputFile(QString trackId, TransformId transformId) { } + virtual void flush() { } // whatever the last stream was virtual void finish() = 0; Modified: sonic-visualiser/trunk/transform/FileFeatureWriter.cpp =================================================================== --- sonic-visualiser/trunk/transform/FileFeatureWriter.cpp 2010-05-21 10:20:52 UTC (rev 1699) +++ sonic-visualiser/trunk/transform/FileFeatureWriter.cpp 2010-05-21 10:21:18 UTC (rev 1700) @@ -59,9 +59,11 @@ m_streams.erase(m_streams.begin()); } while (!m_files.empty()) { - cerr << "FileFeatureWriter::~FileFeatureWriter: NOTE: Closing feature file \"" - << m_files.begin()->second->fileName().toStdString() << "\"" << endl; - delete m_files.begin()->second; + if (m_files.begin()->second) { + cerr << "FileFeatureWriter::~FileFeatureWriter: NOTE: Closing feature file \"" + << m_files.begin()->second->fileName().toStdString() << "\"" << endl; + delete m_files.begin()->second; + } m_files.erase(m_files.begin()); } } @@ -153,8 +155,9 @@ } } -QString FileFeatureWriter::getOutputFilename(QString trackId, - TransformId transformId) +QString +FileFeatureWriter::getOutputFilename(QString trackId, + TransformId transformId) { if (m_singleFileName != "") { if (QFileInfo(m_singleFileName).exists() && !(m_force || m_append)) { @@ -181,14 +184,14 @@ infilename = scheme + ":" + infilename; // DOS drive! } - cerr << "trackId = " << trackId.toStdString() << ", url = " << url.toString().toStdString() << ", infilename = " - << infilename.toStdString() << ", basename = " << basename.toStdString() << ", m_baseDir = " << m_baseDir.toStdString() << endl; +// cerr << "trackId = " << trackId.toStdString() << ", url = " << url.toString().toStdString() << ", infilename = " +// << infilename.toStdString() << ", basename = " << basename.toStdString() << ", m_baseDir = " << m_baseDir.toStdString() << endl; if (m_baseDir != "") dirname = QFileInfo(m_baseDir).absoluteFilePath(); else if (local) dirname = QFileInfo(infilename).absolutePath(); else dirname = QDir::currentPath(); - cerr << "dirname = " << dirname.toStdString() << endl; +// cerr << "dirname = " << dirname.toStdString() << endl; QString filename; @@ -211,9 +214,20 @@ return filename; } +void +FileFeatureWriter::testOutputFile(QString trackId, + TransformId transformId) +{ + if (m_stdout) return; + QString filename = getOutputFilename(trackId, transformId); + if (filename == "") { + throw FailedToOpenOutputStream(trackId, transformId); + } +} -QFile *FileFeatureWriter::getOutputFile(QString trackId, - TransformId transformId) +QFile * +FileFeatureWriter::getOutputFile(QString trackId, + TransformId transformId) { pair<QString, TransformId> key; @@ -229,7 +243,7 @@ QString filename = getOutputFilename(trackId, transformId); - if (filename == "") { // stdout + if (filename == "") { // stdout or failure return 0; } @@ -309,9 +323,11 @@ m_streams.erase(m_streams.begin()); } while (!m_files.empty()) { - cerr << "FileFeatureWriter::finish: NOTE: Closing feature file \"" - << m_files.begin()->second->fileName().toStdString() << "\"" << endl; - delete m_files.begin()->second; + if (m_files.begin()->second) { + cerr << "FileFeatureWriter::finish: NOTE: Closing feature file \"" + << m_files.begin()->second->fileName().toStdString() << "\"" << endl; + delete m_files.begin()->second; + } m_files.erase(m_files.begin()); } m_prevstream = 0; Modified: sonic-visualiser/trunk/transform/FileFeatureWriter.h =================================================================== --- sonic-visualiser/trunk/transform/FileFeatureWriter.h 2010-05-21 10:20:52 UTC (rev 1699) +++ sonic-visualiser/trunk/transform/FileFeatureWriter.h 2010-05-21 10:21:18 UTC (rev 1700) @@ -42,6 +42,7 @@ virtual ParameterList getSupportedParameters() const; virtual void setParameters(map<string, string> ¶ms); + virtual void testOutputFile(QString trackId, TransformId transformId); virtual void flush(); virtual void finish(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-21 10:20:58
|
Revision: 1699 http://sv1.svn.sourceforge.net/sv1/?rev=1699&view=rev Author: cannam Date: 2010-05-21 10:20:52 +0000 (Fri, 21 May 2010) Log Message: ----------- * Truncate long output lines Modified Paths: -------------- sonic-visualiser/trunk/base/ProgressPrinter.cpp Modified: sonic-visualiser/trunk/base/ProgressPrinter.cpp =================================================================== --- sonic-visualiser/trunk/base/ProgressPrinter.cpp 2010-05-14 10:28:26 UTC (rev 1698) +++ sonic-visualiser/trunk/base/ProgressPrinter.cpp 2010-05-21 10:20:52 UTC (rev 1699) @@ -52,6 +52,9 @@ ProgressPrinter::setMessage(QString message) { m_prefix = message; + if (m_prefix.length() > 70) { + m_prefix = m_prefix.left(70) + "..."; + } } void This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-14 10:28:32
|
Revision: 1698 http://sv1.svn.sourceforge.net/sv1/?rev=1698&view=rev Author: cannam Date: 2010-05-14 10:28:26 +0000 (Fri, 14 May 2010) Log Message: ----------- * Reference doc for 1.7.2, and fix typo (appeard) Modified Paths: -------------- website/doc/reference/1.7.2/en/index.html Added Paths: ----------- website/doc/reference/1.7.2/ Modified: website/doc/reference/1.7.2/en/index.html =================================================================== --- website/doc/reference/1.7.1/en/index.html 2010-05-05 16:27:44 UTC (rev 1696) +++ website/doc/reference/1.7.2/en/index.html 2010-05-14 10:28:26 UTC (rev 1698) @@ -888,7 +888,7 @@ <p>The colour 3D plot layer is not editable. For this reason, you cannot add an empty colour 3D plot layer using the Layer menu, because you would then be unable to do anything with it. These layers only -appeard when a <a href="#plugins">transform</a> whose output is +appear when a <a href="#plugins">transform</a> whose output is appropriate for grid display is applied, or when <a href="#layerimport">importing</a> certain types of annotation data.</p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-05 16:27:54
|
Revision: 1696 http://sv1.svn.sourceforge.net/sv1/?rev=1696&view=rev Author: cannam Date: 2010-05-05 16:27:44 +0000 (Wed, 05 May 2010) Log Message: ----------- * Re-tag Added Paths: ----------- sonic-visualiser/tags/sv-v1.7.2/ sonic-visualiser/tags/sv-v1.7.2/CHANGELOG sonic-visualiser/tags/sv-v1.7.2/INSTALL sonic-visualiser/tags/sv-v1.7.2/INSTALL.ubuntu sonic-visualiser/tags/sv-v1.7.2/sv/main/MainWindow.cpp sonic-visualiser/tags/sv-v1.7.2/sv/main/Surveyer.cpp sonic-visualiser/tags/sv-v1.7.2/version.h Removed Paths: ------------- sonic-visualiser/tags/sv-v1.7.2/CHANGELOG sonic-visualiser/tags/sv-v1.7.2/INSTALL sonic-visualiser/tags/sv-v1.7.2/sv/main/MainWindow.cpp sonic-visualiser/tags/sv-v1.7.2/sv/main/Surveyer.cpp sonic-visualiser/tags/sv-v1.7.2/version.h Property changes on: sonic-visualiser/tags/sv-v1.7.2 ___________________________________________________________________ Added: svn:mergeinfo + /sonic-visualiser/branches/one-fftdataserver-per-fftmodel:1406-1415 Deleted: sonic-visualiser/tags/sv-v1.7.2/CHANGELOG =================================================================== --- sonic-visualiser/trunk/CHANGELOG 2010-05-05 14:45:32 UTC (rev 1690) +++ sonic-visualiser/tags/sv-v1.7.2/CHANGELOG 2010-05-05 16:27:44 UTC (rev 1696) @@ -1,277 +0,0 @@ - -Changes in Sonic Visualiser 1.7.1 since the previous release 1.7: - - - The RDF importer does a better job of assigning labels to layers, - layers to panes, and values to labelled regions - - - Interactive editing in the Text layer benefits from the same - improvements as made in 1.7 to Note and Region layers - - - The layer data editor window has a text search feature - - - The main window status bar now shows the last label to have passed - the playback position in the current layer, at the right end of the - status bar - - - The Russian translation has been updated (thanks Alexandre) - -Changes in Sonic Visualiser 1.7 since the previous release 1.6: - - - A new "Insert Item At Selection" function on the Edit menu - can be used to create Note and Region layer items whose time - extents correspond to the current selection(s) - - - Interactively editing points in the Note and Region layers - now works much more smoothly - - - SV can now import MIDI files that use SMPTE timecode for event - timing (importing MIDI files using with the more common - timebase-based timing was already supported) - - - Time values throughout the display may optionally be shown in - seconds and frames at various frame rates - - - A crash on exit in Windows has been fixed - - - A very unobtrusive user survey is now included - - - Various other bug fixes. - -Changes in Sonic Visualiser 1.6 since the previous release 1.5: - - - The Colour 3D Plot layer now supports logarithmic vertical - scale and linear interpolation options. - - - A new colour scheme (High Gain) has been added for spectrogram - and Colour 3D Plot, which improves readability for some data. - - - Further performance improvements have been made to Colour 3D - Plot. - - - Various other bug fixes. - -Changes in Sonic Visualiser 1.5 since the previous version 1.4: - - - You can now insert time instants, time values, and notes using - a MIDI device during playback. If a time value or note layer is - current it will be used for insertion (giving a value equal to - the pitch class, or the played note, respectively); otherwise an - existing or new time instants layer will be used just as it is - when inserting instants using the PC keyboard. Using a MIDI - device should give better timing than using the PC keyboard. - - - There is a new Activity Log window with a (purely informative) list - of events and user interactions that happen while SV is running. - - - The spectrogram has somewhat improved graphical scaling, and - this is now the default (being much faster than the 4x oversampled - method). The previous default is still available as a preference. - - - Visualisation of very dense colour plots (such as spectrograms - calculated by plugins) is substantially faster in this release. - - - Spectrogram display is now faster in many circumstances. - - - Alignment using the MATCH plugin is faster on OS/X than before. - - - SV will take into account RDF plugin descriptions, if available, - in order to make somewhat better decisions about display of plugin - outputs (for example, placing segmentation data into a layer with - segmentation plot type). - - - You can now switch layers by clicking on the spare area at the left - end of the pane that is also used for the current pane indicator. - - - The vertical black lines dividing segments in the time value - layer's segmentation plot style are now optional. - - - Several widget layout bugs on OS/X have been fixed. - - - Several serious crashing, deadlock, and data corruption bugs have - been fixed. - - -New features in Sonic Visualiser 1.4 since the previous version 1.3: - - - SV now has a Region layer type, used for display of features with - durations. It also supports Vamp v2.0 plugins that provide durations - for features. - - - Layer data can now be imported from RDF described using the Audio - Features Ontology, as well as from the existing text file types. SV - can also export annotation layer data to RDF/Turtle, although in a - somewhat simplistic manner at present. - - - You can search for transforms by text in the new "Find a Transform" - dialog. This searches both installed plugins, and plugins that have - not been installed but that have descriptions available on the - semantic web. - - - You can now zoom and scroll vertically in the time-value, note, - and colour 3d plot layers. - - - Sonic Visualiser can now load sessions from uncompressed XML files - as well as its own compressed-XML .sv format. Files with extension - .xml that contain suitable session data will be loaded as sessions. - Note that .xml extension files still do not show up in the default - file load filter. This is intentional, as there may be any kind of - data in them -- if you want to load uncompressed session files from - XML, you need to know you're doing it. - - - Several crashes and other bugs have been fixed. - -Changes in Sonic Visualiser 1.3 since the previous version 1.2: - - - There is a new spreadsheet-style data viewer and editor for - viewing and editing the data in some types of annotation layer. - - - Alignments are now saved to the session file. - - - The spectrogram layer is usually somewhat faster than it was. - - - You can now hold Shift while dragging to move an item, in order - to override the initial drag resistance introduced in 1.2. - - - The gross mis-labelling of time lines in the ruler has been fixed. - - - There is a new, somewhat provisional PulseAudio output driver. - - - Several other bug fixes. - -New features in Sonic Visualiser 1.2, since the previous version 1.0: - - - SV now supports time-alignment of multiple performances of a work - loaded at the same time. This option is enabled when the MATCH Vamp - plugin is installed. When alignment is switched on and more than one - audio file is open, SV will assume that all open files are - differently timed performances of the same work, and will calculate - time alignments for them. Playback will then play only a single file - at a time, and the playback cursors in other files will track at the - varying speeds to try to ensure that each is at the same point in the - underlying score. This enables effective comparison of several such - files, as well as a meaningful way to switch from one performance to - another during playback (ensuring that the switch happens at the - correct point in the performance being switched to). - - - There is a new Image layer, which can display images from the - local filesystem or retrieved via HTTP or FTP. - - - A new measurement tool has been added. With the measurement tool - selected, dragging in a pane draws a rectangle labelled with the - scale values for its start and end corners and its size. You can - have any number of measurements present at once; they are associated - with the top layer, their scale values depend on the scale for that - layer, and they are only shown when that layer is at the top and the - measurement tool is active. Measurements are saved and reloaded in - the session file. Drawing measurements can be undone and redone, and - a measurement can be deleted by hitting Del when highlighted. Note - that the measurement tool shows the scale values associated with the - pixel positions of the mouse when dragging, not any values associated - with actual features present in the audio or its analysis (e.g. the - values are not rounded to the nearest spectrogram bin). - - - You can double-click using the measurement tool in the spectrogram - to get an instant measurement rectangle for a feature. This is a - purely graphical feature that works by calculating the boundary of a - contiguous region of pixels "similar to" the one you double-clicked - on; it does not use audio analysis. Adjusting the gain and colour - scheme etc of the spectrogram will (by design) affect the - measurements obtained this way. - - - The spectrum can now optionally show frequency estimates of peaks - aligned with a piano keyboard along the horizontal axis (this needs - some refinement). - - - The harmonic cursor in the spectrogram has moved from the Select - tool to the Measurement tool. There is now a similar harmonic cursor - in the spectrum. Both of them show more information as text - alongside the cursor than previously. - - - There is a new Erase tool for erasing individual points from an - editable layer. - - - Several keyboard shortcuts have changed -- all of the Alt+key - shortcuts now either use Ctrl or a plain keypress with no modifier, - to avoid clashes with window manager shortcuts and to make them - easier to use and remember - - - The playback controls are now in a Playback menu as well as the - toolbar. - - - There is a new key and mouse control reference under Help (or press - F2). - - - You can double-click on a pane in navigate mode to jump to a time. - - - All of the single-colour layers (waveform, time values etc) now - allow you to define your own colours as well as using the built-in - set. The colour of a layer is now shown next to its name on the pane. - - - When you add a new single-colour layer it will use a default colour - that is not yet in use in another layer (if there is one). - - - Single-colour layers can now optionally have black backgrounds (with - a set of lighter colours in the default colour palette that use black - backgrounds by default). - - - There's a new Printer colour scheme in the spectrogram with only a - small number of grey shades. - - - Vertical zoom in a log-scaled spectrogram is much more intuitive; - it now leaves the point that was in the centre of the visible area in - the centre after zoom, instead of the point that was in the centre of - the linear range corresponding to the visible area. - - - You can now turn a colour 3d plot layer upside down by clicking the - Invert Vertical Scale button. - - - There's a new Layer Summary window which shows the panes and - layer data in a tree layout. This is very simplistic at the moment. - - - Each pane now has an [X] button at its top left, which removes that - pane when clicked. - - - There's a new Solo play mode toggle button; when active, only the - currently selected pane is played. This is also the default when - time alignment is in use. - - - Rewind/ffwd now stay confined to the selection if Play Selection is - enabled; also, the rewind and ffwd "one step" buttons are now enabled - even if there is no time instants layer for them to align to (they - align to the time ruler instead and so jump in steps of a size - dependent on the zoom level). - - - You can now export note layers to MIDI. - - - MIDI note velocity is partially supported. Note velocity is - retained when importing and exporting MIDI and is used in playback, - but it is not yet shown in the display and cannot yet be edited. - - - You can now drag-and-drop files (of whatever type) onto SV from - other programs such as file managers or web browsers. - - - mp3 files (and Ogg, but they aren't supported on Windows at the - moment) are now decoded in a background thread so you can see the - start of the track without waiting for the rest to decode. - - - Mac builds of SV can now load AAC/mp4 files and anything else - supported by QuickTime. - - - There is now an option to resample audio files on import if they - don't match the samplerate of the first file loaded. By default this - is switched off, as it affects the visible waveform. The default - behaviour is unchanged (play at the wrong rate). There is still no - option to handle multiple rates "correctly" (i.e. by resampling - on playback and showing the waveforms at different resolutions - according to each one's underlying rate) and there probably never - will be. - - - SV can now open .m3u playlist files, though it's a hazardous thing - to do as it simply loads all the files in the playlist at once. - - - SV now has various options for how to number tapped time instants - (bar/beat, plain counter, time in seconds, tempo etc). - - - The official builds use Qt 4.3, which fixes some nasty - bugs in the file dialog that the version 1.0 builds suffered from. - Copied: sonic-visualiser/tags/sv-v1.7.2/CHANGELOG (from rev 1694, sonic-visualiser/trunk/CHANGELOG) =================================================================== --- sonic-visualiser/tags/sv-v1.7.2/CHANGELOG (rev 0) +++ sonic-visualiser/tags/sv-v1.7.2/CHANGELOG 2010-05-05 16:27:44 UTC (rev 1696) @@ -0,0 +1,289 @@ + +Changes in Sonic Visualiser 1.7.2 since the previous release 1.7.1: + + - The time-value layer now has an origin line and an option to + show derivatives (change from one point to the next) rather than + raw values + + - A static initialiser race has been fixed, possibly fixing an + occasional crash on startup in Windows + + - A crash when pressing Play straight after New Session has been + fixed + +Changes in Sonic Visualiser 1.7.1 since the previous release 1.7: + + - The RDF importer does a better job of assigning labels to layers, + layers to panes, and values to labelled regions + + - Interactive editing in the Text layer benefits from the same + improvements as made in 1.7 to Note and Region layers + + - The layer data editor window has a text search feature + + - The main window status bar now shows the last label to have passed + the playback position in the current layer, at the right end of the + status bar + + - The Russian translation has been updated (thanks Alexandre) + +Changes in Sonic Visualiser 1.7 since the previous release 1.6: + + - A new "Insert Item At Selection" function on the Edit menu + can be used to create Note and Region layer items whose time + extents correspond to the current selection(s) + + - Interactively editing points in the Note and Region layers + now works much more smoothly + + - SV can now import MIDI files that use SMPTE timecode for event + timing (importing MIDI files using with the more common + timebase-based timing was already supported) + + - Time values throughout the display may optionally be shown in + seconds and frames at various frame rates + + - A crash on exit in Windows has been fixed + + - A very unobtrusive user survey is now included + + - Various other bug fixes. + +Changes in Sonic Visualiser 1.6 since the previous release 1.5: + + - The Colour 3D Plot layer now supports logarithmic vertical + scale and linear interpolation options. + + - A new colour scheme (High Gain) has been added for spectrogram + and Colour 3D Plot, which improves readability for some data. + + - Further performance improvements have been made to Colour 3D + Plot. + + - Various other bug fixes. + +Changes in Sonic Visualiser 1.5 since the previous version 1.4: + + - You can now insert time instants, time values, and notes using + a MIDI device during playback. If a time value or note layer is + current it will be used for insertion (giving a value equal to + the pitch class, or the played note, respectively); otherwise an + existing or new time instants layer will be used just as it is + when inserting instants using the PC keyboard. Using a MIDI + device should give better timing than using the PC keyboard. + + - There is a new Activity Log window with a (purely informative) list + of events and user interactions that happen while SV is running. + + - The spectrogram has somewhat improved graphical scaling, and + this is now the default (being much faster than the 4x oversampled + method). The previous default is still available as a preference. + + - Visualisation of very dense colour plots (such as spectrograms + calculated by plugins) is substantially faster in this release. + + - Spectrogram display is now faster in many circumstances. + + - Alignment using the MATCH plugin is faster on OS/X than before. + + - SV will take into account RDF plugin descriptions, if available, + in order to make somewhat better decisions about display of plugin + outputs (for example, placing segmentation data into a layer with + segmentation plot type). + + - You can now switch layers by clicking on the spare area at the left + end of the pane that is also used for the current pane indicator. + + - The vertical black lines dividing segments in the time value + layer's segmentation plot style are now optional. + + - Several widget layout bugs on OS/X have been fixed. + + - Several serious crashing, deadlock, and data corruption bugs have + been fixed. + + +New features in Sonic Visualiser 1.4 since the previous version 1.3: + + - SV now has a Region layer type, used for display of features with + durations. It also supports Vamp v2.0 plugins that provide durations + for features. + + - Layer data can now be imported from RDF described using the Audio + Features Ontology, as well as from the existing text file types. SV + can also export annotation layer data to RDF/Turtle, although in a + somewhat simplistic manner at present. + + - You can search for transforms by text in the new "Find a Transform" + dialog. This searches both installed plugins, and plugins that have + not been installed but that have descriptions available on the + semantic web. + + - You can now zoom and scroll vertically in the time-value, note, + and colour 3d plot layers. + + - Sonic Visualiser can now load sessions from uncompressed XML files + as well as its own compressed-XML .sv format. Files with extension + .xml that contain suitable session data will be loaded as sessions. + Note that .xml extension files still do not show up in the default + file load filter. This is intentional, as there may be any kind of + data in them -- if you want to load uncompressed session files from + XML, you need to know you're doing it. + + - Several crashes and other bugs have been fixed. + +Changes in Sonic Visualiser 1.3 since the previous version 1.2: + + - There is a new spreadsheet-style data viewer and editor for + viewing and editing the data in some types of annotation layer. + + - Alignments are now saved to the session file. + + - The spectrogram layer is usually somewhat faster than it was. + + - You can now hold Shift while dragging to move an item, in order + to override the initial drag resistance introduced in 1.2. + + - The gross mis-labelling of time lines in the ruler has been fixed. + + - There is a new, somewhat provisional PulseAudio output driver. + + - Several other bug fixes. + +New features in Sonic Visualiser 1.2, since the previous version 1.0: + + - SV now supports time-alignment of multiple performances of a work + loaded at the same time. This option is enabled when the MATCH Vamp + plugin is installed. When alignment is switched on and more than one + audio file is open, SV will assume that all open files are + differently timed performances of the same work, and will calculate + time alignments for them. Playback will then play only a single file + at a time, and the playback cursors in other files will track at the + varying speeds to try to ensure that each is at the same point in the + underlying score. This enables effective comparison of several such + files, as well as a meaningful way to switch from one performance to + another during playback (ensuring that the switch happens at the + correct point in the performance being switched to). + + - There is a new Image layer, which can display images from the + local filesystem or retrieved via HTTP or FTP. + + - A new measurement tool has been added. With the measurement tool + selected, dragging in a pane draws a rectangle labelled with the + scale values for its start and end corners and its size. You can + have any number of measurements present at once; they are associated + with the top layer, their scale values depend on the scale for that + layer, and they are only shown when that layer is at the top and the + measurement tool is active. Measurements are saved and reloaded in + the session file. Drawing measurements can be undone and redone, and + a measurement can be deleted by hitting Del when highlighted. Note + that the measurement tool shows the scale values associated with the + pixel positions of the mouse when dragging, not any values associated + with actual features present in the audio or its analysis (e.g. the + values are not rounded to the nearest spectrogram bin). + + - You can double-click using the measurement tool in the spectrogram + to get an instant measurement rectangle for a feature. This is a + purely graphical feature that works by calculating the boundary of a + contiguous region of pixels "similar to" the one you double-clicked + on; it does not use audio analysis. Adjusting the gain and colour + scheme etc of the spectrogram will (by design) affect the + measurements obtained this way. + + - The spectrum can now optionally show frequency estimates of peaks + aligned with a piano keyboard along the horizontal axis (this needs + some refinement). + + - The harmonic cursor in the spectrogram has moved from the Select + tool to the Measurement tool. There is now a similar harmonic cursor + in the spectrum. Both of them show more information as text + alongside the cursor than previously. + + - There is a new Erase tool for erasing individual points from an + editable layer. + + - Several keyboard shortcuts have changed -- all of the Alt+key + shortcuts now either use Ctrl or a plain keypress with no modifier, + to avoid clashes with window manager shortcuts and to make them + easier to use and remember + + - The playback controls are now in a Playback menu as well as the + toolbar. + + - There is a new key and mouse control reference under Help (or press + F2). + + - You can double-click on a pane in navigate mode to jump to a time. + + - All of the single-colour layers (waveform, time values etc) now + allow you to define your own colours as well as using the built-in + set. The colour of a layer is now shown next to its name on the pane. + + - When you add a new single-colour layer it will use a default colour + that is not yet in use in another layer (if there is one). + + - Single-colour layers can now optionally have black backgrounds (with + a set of lighter colours in the default colour palette that use black + backgrounds by default). + + - There's a new Printer colour scheme in the spectrogram with only a + small number of grey shades. + + - Vertical zoom in a log-scaled spectrogram is much more intuitive; + it now leaves the point that was in the centre of the visible area in + the centre after zoom, instead of the point that was in the centre of + the linear range corresponding to the visible area. + + - You can now turn a colour 3d plot layer upside down by clicking the + Invert Vertical Scale button. + + - There's a new Layer Summary window which shows the panes and + layer data in a tree layout. This is very simplistic at the moment. + + - Each pane now has an [X] button at its top left, which removes that + pane when clicked. + + - There's a new Solo play mode toggle button; when active, only the + currently selected pane is played. This is also the default when + time alignment is in use. + + - Rewind/ffwd now stay confined to the selection if Play Selection is + enabled; also, the rewind and ffwd "one step" buttons are now enabled + even if there is no time instants layer for them to align to (they + align to the time ruler instead and so jump in steps of a size + dependent on the zoom level). + + - You can now export note layers to MIDI. + + - MIDI note velocity is partially supported. Note velocity is + retained when importing and exporting MIDI and is used in playback, + but it is not yet shown in the display and cannot yet be edited. + + - You can now drag-and-drop files (of whatever type) onto SV from + other programs such as file managers or web browsers. + + - mp3 files (and Ogg, but they aren't supported on Windows at the + moment) are now decoded in a background thread so you can see the + start of the track without waiting for the rest to decode. + + - Mac builds of SV can now load AAC/mp4 files and anything else + supported by QuickTime. + + - There is now an option to resample audio files on import if they + don't match the samplerate of the first file loaded. By default this + is switched off, as it affects the visible waveform. The default + behaviour is unchanged (play at the wrong rate). There is still no + option to handle multiple rates "correctly" (i.e. by resampling + on playback and showing the waveforms at different resolutions + according to each one's underlying rate) and there probably never + will be. + + - SV can now open .m3u playlist files, though it's a hazardous thing + to do as it simply loads all the files in the playlist at once. + + - SV now has various options for how to number tapped time instants + (bar/beat, plain counter, time in seconds, tempo etc). + + - The official builds use Qt 4.3, which fixes some nasty + bugs in the file dialog that the version 1.0 builds suffered from. + Deleted: sonic-visualiser/tags/sv-v1.7.2/INSTALL =================================================================== --- sonic-visualiser/trunk/INSTALL 2010-05-05 14:45:32 UTC (rev 1690) +++ sonic-visualiser/tags/sv-v1.7.2/INSTALL 2010-05-05 16:27:44 UTC (rev 1696) @@ -1,139 +0,0 @@ - -To compile from source ----------------------- - -First, please consider getting one of the ready-to-run binary -distributions available from http://www.sonicvisualiser.org/ . - -The following additional libraries are required or optional when -building Sonic Visualiser: - -REQUIRED Vamp Plugin SDK v2.0 http://www.vamp-plugins.org/ - -REQUIRED Qt4 Free Edition http://www.trolltech.com/ -REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/ -REQUIRED libsamplerate http://www.mega-nerd.com/SRC/ -REQUIRED FFTW3 http://www.fftw.org/ -REQUIRED bzip2 library http://www.bzip.org/ -REQUIRED Redland RDF libraries http://librdf.org/ -REQUIRED Rubber Band http://www.breakfastquay.com/rubberband/ - -Optional JACK http://www.jackaudio.org/ -Optional PortAudio v18 or v19 http://www.portaudio.com/ -Optional PulseAudio http://www.pulseaudio.org/ -Optional MAD mp3 decoder http://www.underbit.com/products/mad/ -Optional Oggz and fishsound http://www.annodex.net/software/libraries.html -Optional liblo OSC library http://www.plugin.org.uk/liblo/ - -Although JACK, PortAudio, and PulseAudio are individually optional, -you will need to have one or the other of them in order to get any -audio playback. Usually JACK is preferred on Linux with PulseAudio as -a backup, and PortAudio is used elsewhere. - -The Redland RDF libraries include the Raptor RDF parser library, -Rasqal RDF query library, and librdf, the Redland RDF datastore (which -depends on both of those). Sonic Visualiser uses Rasqal and Redland -directly, and so indirectly also requires Raptor. For best -performance it's strongly recommended that you build with Redland -1.0.8 or newer. - -On Linux, you will need the ALSA libraries (used for MIDI). - -If you happen to be using a Debian-based Linux, you probably want to -apt-get install the following packages: libqt4-dev libsndfile1-dev -libsamplerate0-dev fftw3-dev libbz2-dev libjack-dev libmad0-dev -liboggz1-dev libfishsound1-dev liblo0-dev liblrdf0-dev librdf0-dev . - -If you are building on a Unix-like system that supports pkg-config and -uses it for all appropriate libraries (such as a modern Linux -distribution) then you should be able to just run "qmake" (being -careful to ensure it is the Qt 4 version of qmake you are running, and -not a Qt 3 version). - -If you do not have pkg-config, you should first edit the file prf/sv.prf -and comment out any of the optional HAVE_* lines (in the section -starting "If you don't have pkg-config...") for library dependencies -that you aren't using. Then run the Qt 4 "qmake" command. This will -create the proper Makefile. - -(If you're on the Mac and you have Qt3 installed as well, you must -export QMAKESPEC=macx-g++ before you do this, or Qt will get confused.) - -Then type "make". The program will then either build, or not build. -If it builds, the result will be a binary file in sv/sonic-visualiser -(on Linux) or sv/release/Sonic Visualiser.exe (on Win32), or a bundle -in sv/Sonic Visualiser.app. There should be nothing to install apart -from the executable itself and any of the above listed third-party -shared libraries that are not already installed. - - -Qt Library Version Requirements -------------------------------- - -Sonic Visualiser requires Qt version 4.3 or newer. It can not be -built with Qt3 or with Qt 4.0.x, 4.1.x, or 4.2.x. - - -A Note on SV Library Dependencies ---------------------------------- - -Sonic Visualiser compiles as a set of static libraries, with various -dependencies. In some cases these dependencies are circular (which -may indicate a design flaw, or a "deliberate compromise"). You -shouldn't need to know any of this just to build SV, but it may be of -interest to developers. - - - Library Provides Depends on - ------- -------- ---------- - - audioio Audio playback - -> base data plugin - -> QtCore - - base Miscellaneous handy classes - -> system - -> QtCore - - data File & network I/O - FFT cache - Data model abstraction classes - -> base - -> QtNetwork QtXml QtGui QtCore - - framework Application base classes - -> base layer view transform data widgets - -> QtNetwork QtXml QtGui QtCore - - layer Display layer implementations - -> base data view widgets - -> QtXml QtGui QtCore - - plugin Plugin loaders and interface classes - -> base system - -> QtXml QtCore - - sv Main application classes - -> base data view widgets framework - transform layer audioio - -> QtNetwork QtXml QtGui QtCore - - system Platform helper functions - - transform Model-to-model data processing - -> base data plugin widgets - -> QtXml QtGui QtCore - - rdf RDF data discovery and querying - -> base data plugin transform - -> QtNetwork QtGui QtCore - - view View and pane widgets - -> base data layer widgets - -> QtXml QtGui QtCore - - widgets Widget and other GUI classes - -> base data layer plugin view - -> QtXml QtGui QtCore - - Copied: sonic-visualiser/tags/sv-v1.7.2/INSTALL (from rev 1691, sonic-visualiser/trunk/INSTALL) =================================================================== --- sonic-visualiser/tags/sv-v1.7.2/INSTALL (rev 0) +++ sonic-visualiser/tags/sv-v1.7.2/INSTALL 2010-05-05 16:27:44 UTC (rev 1696) @@ -0,0 +1,145 @@ + +To compile from source +---------------------- + +First, please consider getting one of the ready-to-run binary +distributions available from http://www.sonicvisualiser.org/ . + +This file provides various instructions useful when compiling Sonic +Visualiser from source, but it doesn't have a complete recipe for any +one platform -- there are too many variables. However, you can find a +recipe for one platform (Ubuntu Linux) in the file INSTALL.ubuntu. + +The following additional libraries are required or optional when +building Sonic Visualiser: + +REQUIRED Vamp Plugin SDK v2.0 http://www.vamp-plugins.org/ + +REQUIRED Qt4 Free Edition http://www.trolltech.com/ +REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/ +REQUIRED libsamplerate http://www.mega-nerd.com/SRC/ +REQUIRED FFTW3 http://www.fftw.org/ +REQUIRED bzip2 library http://www.bzip.org/ +REQUIRED Redland RDF libraries http://librdf.org/ +REQUIRED Rubber Band http://www.breakfastquay.com/rubberband/ + +Optional JACK http://www.jackaudio.org/ +Optional PortAudio v18 or v19 http://www.portaudio.com/ +Optional PulseAudio http://www.pulseaudio.org/ +Optional MAD mp3 decoder http://www.underbit.com/products/mad/ +Optional Oggz and fishsound http://www.annodex.net/software/libraries.html +Optional liblo OSC library http://www.plugin.org.uk/liblo/ + +Although JACK, PortAudio, and PulseAudio are individually optional, +you will need to have one or the other of them in order to get any +audio playback. Usually JACK is preferred on Linux with PulseAudio as +a backup, and PortAudio is used elsewhere. + +The Redland RDF libraries include the Raptor RDF parser library, +Rasqal RDF query library, and librdf, the Redland RDF datastore (which +depends on both of those). Sonic Visualiser uses Rasqal and Redland +directly, and so indirectly also requires Raptor. For best +performance it's strongly recommended that you build with Redland +1.0.8 or newer. + +On Linux, you will need the ALSA libraries (used for MIDI). + +If you happen to be using a Debian-based Linux, you probably want to +apt-get install the following packages: libqt4-dev libsndfile1-dev +libsamplerate0-dev fftw3-dev libbz2-dev libjack-dev libmad0-dev +liboggz1-dev libfishsound1-dev libasound2-dev liblo0-dev liblrdf0-dev +librdf0-dev . + +If you are building on a Unix-like system that supports pkg-config and +uses it for all appropriate libraries (such as a modern Linux +distribution) then you should be able to just run "qmake" (being +careful to ensure it is the Qt 4 version of qmake you are running, and +not a Qt 3 version). + +If you do not have pkg-config, you should first edit the file prf/sv.prf +and comment out any of the optional HAVE_* lines (in the section +starting "If you don't have pkg-config...") for library dependencies +that you aren't using. Then run the Qt 4 "qmake" command. This will +create the proper Makefile. + +(If you're on the Mac and you have Qt3 installed as well, you must +export QMAKESPEC=macx-g++ before you do this, or Qt will get confused.) + +Then type "make". The program will then either build, or not build. +If it builds, the result will be a binary file in sv/sonic-visualiser +(on Linux) or sv/release/Sonic Visualiser.exe (on Win32), or a bundle +in sv/Sonic Visualiser.app. There should be nothing to install apart +from the executable itself and any of the above listed third-party +shared libraries that are not already installed. + + +Qt Library Version Requirements +------------------------------- + +Sonic Visualiser requires Qt version 4.3 or newer. It can not be +built with Qt3 or with Qt 4.0.x, 4.1.x, or 4.2.x. + + +A Note on SV Library Dependencies +--------------------------------- + +Sonic Visualiser compiles as a set of static libraries, with various +dependencies. In some cases these dependencies are circular (which +may indicate a design flaw, or a "deliberate compromise"). You +shouldn't need to know any of this just to build SV, but it may be of +interest to developers. + + + Library Provides Depends on + ------- -------- ---------- + + audioio Audio playback + -> base data plugin + -> QtCore + + base Miscellaneous handy classes + -> system + -> QtCore + + data File & network I/O + FFT cache + Data model abstraction classes + -> base + -> QtNetwork QtXml QtGui QtCore + + framework Application base classes + -> base layer view transform data widgets + -> QtNetwork QtXml QtGui QtCore + + layer Display layer implementations + -> base data view widgets + -> QtXml QtGui QtCore + + plugin Plugin loaders and interface classes + -> base system + -> QtXml QtCore + + sv Main application classes + -> base data view widgets framework + transform layer audioio + -> QtNetwork QtXml QtGui QtCore + + system Platform helper functions + + transform Model-to-model data processing + -> base data plugin widgets + -> QtXml QtGui QtCore + + rdf RDF data discovery and querying + -> base data plugin transform + -> QtNetwork QtGui QtCore + + view View and pane widgets + -> base data layer widgets + -> QtXml QtGui QtCore + + widgets Widget and other GUI classes + -> base data layer plugin view + -> QtXml QtGui QtCore + + Copied: sonic-visualiser/tags/sv-v1.7.2/INSTALL.ubuntu (from rev 1691, sonic-visualiser/trunk/INSTALL.ubuntu) =================================================================== --- sonic-visualiser/tags/sv-v1.7.2/INSTALL.ubuntu (rev 0) +++ sonic-visualiser/tags/sv-v1.7.2/INSTALL.ubuntu 2010-05-05 16:27:44 UTC (rev 1696) @@ -0,0 +1,23 @@ + +To compile Sonic Visualiser from source in Ubuntu 10.04 +------------------------------------------------------- + +See INSTALL for general notes on compilation. This is a specific +recipe for Ubuntu 10.04. + +Starting from a clean installation of Ubuntu 10.04 desktop edition, +with a working network connection, with the Sonic Visualiser source +code unpacked into $HOME/sonic-visualiser: + +$ cd sonic-visualiser +$ sudo apt-get update +$ sudo apt-get install build-essential libqt4-dev libsndfile-dev libsamplerate-dev fftw3-dev libbz2-dev libjack-dev libasound-dev libmad0-dev liboggz-dev libfishsound-dev liblo-dev liblrdf-dev librdf-dev librubberband-dev vamp-plugin-sdk +$ qmake-qt4 +$ make + +And wait for some time for the build to complete. + +You should now have an executable file at sv/sonic-visualiser. You +don't need to properly install this -- just run it in place, or copy +it to wherever you like. + Deleted: sonic-visualiser/tags/sv-v1.7.2/sv/main/MainWindow.cpp =================================================================== --- sonic-visualiser/trunk/sv/main/MainWindow.cpp 2010-05-05 14:45:32 UTC (rev 1690) +++ sonic-visualiser/tags/sv-v1.7.2/sv/main/MainWindow.cpp 2010-05-05 16:27:44 UTC (rev 1696) @@ -1,4068 +0,0 @@ -/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ - -/* - Sonic Visualiser - An audio file viewer and annotation editor. - Centre for Digital Music, Queen Mary, University of London. - This file copyright 2006-2007 Chris Cannam and QMUL. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. See the file - COPYING included with this distribution for more information. -*/ - -#include "../version.h" - -#include "MainWindow.h" -#include "PreferencesDialog.h" - -#include "view/Pane.h" -#include "view/PaneStack.h" -#include "data/model/WaveFileModel.h" -#include "data/model/SparseOneDimensionalModel.h" -#include "data/model/NoteModel.h" -#include "data/model/Labeller.h" -#include "data/osc/OSCQueue.h" -#include "framework/Document.h" -#include "view/ViewManager.h" -#include "base/Preferences.h" -#include "layer/WaveformLayer.h" -#include "layer/TimeRulerLayer.h" -#include "layer/TimeInstantLayer.h" -#include "layer/TimeValueLayer.h" -#include "layer/NoteLayer.h" -#include "layer/Colour3DPlotLayer.h" -#include "layer/SliceLayer.h" -#include "layer/SliceableLayer.h" -#include "layer/ImageLayer.h" -#include "layer/RegionLayer.h" -#include "widgets/Fader.h" -#include "view/Overview.h" -#include "widgets/PropertyBox.h" -#include "widgets/PropertyStack.h" -#include "widgets/AudioDial.h" -#include "widgets/IconLoader.h" -#include "widgets/LayerTreeDialog.h" -#include "widgets/ListInputDialog.h" -#include "widgets/SubdividingMenu.h" -#include "widgets/NotifyingPushButton.h" -#include "widgets/KeyReference.h" -#include "widgets/TransformFinder.h" -#include "widgets/LabelCounterInputDialog.h" -#include "widgets/ActivityLog.h" -#include "audioio/AudioCallbackPlaySource.h" -#include "audioio/AudioCallbackPlayTarget.h" -#include "audioio/AudioTargetFactory.h" -#include "audioio/PlaySpeedRangeMapper.h" -#include "data/fileio/DataFileReaderFactory.h" -#include "data/fileio/PlaylistFileReader.h" -#include "data/fileio/WavFileWriter.h" -#include "data/fileio/CSVFileWriter.h" -#include "data/fileio/MIDIFileWriter.h" -#include "data/fileio/BZipFileDevice.h" -#include "data/fileio/FileSource.h" -#include "data/fft/FFTDataServer.h" -#include "data/midi/MIDIInput.h" -#include "base/RecentFiles.h" -#include "transform/TransformFactory.h" -#include "transform/ModelTransformerFactory.h" -#include "base/PlayParameterRepository.h" -#include "base/XmlExportable.h" -#include "widgets/CommandHistory.h" -#include "base/Profiler.h" -#include "base/Clipboard.h" -#include "base/UnitDatabase.h" -#include "layer/ColourDatabase.h" -#include "widgets/ModelDataTableDialog.h" -#include "rdf/PluginRDFIndexer.h" -#include "rdf/RDFExporter.h" - -#include "Surveyer.h" -#include "framework/VersionTester.h" - -// For version information -#include <vamp/vamp.h> -#include <vamp-hostsdk/PluginBase.h> -#include "plugin/api/ladspa.h" -#include "plugin/api/dssi.h" - -#include <QApplication> -#include <QMessageBox> -#include <QGridLayout> -#include <QLabel> -#include <QAction> -#include <QMenuBar> -#include <QToolBar> -#include <QInputDialog> -#include <QStatusBar> -#include <QTreeView> -#include <QFile> -#include <QFileInfo> -#include <QDir> -#include <QTextStream> -#include <QProcess> -#include <QShortcut> -#include <QSettings> -#include <QDateTime> -#include <QProcess> -#include <QCheckBox> -#include <QRegExp> -#include <QScrollArea> - -#include <iostream> -#include <cstdio> -#include <errno.h> - -using std::cerr; -using std::endl; - -using std::vector; -using std::map; -using std::set; - - -MainWindow::MainWindow(bool withAudioOutput, bool withOSCSupport) : - MainWindowBase(withAudioOutput, withOSCSupport, true), - m_overview(0), - m_mainMenusCreated(false), - m_paneMenu(0), - m_layerMenu(0), - m_transformsMenu(0), - m_playbackMenu(0), - m_existingLayersMenu(0), - m_sliceMenu(0), - m_recentFilesMenu(0), - m_recentTransformsMenu(0), - m_rightButtonMenu(0), - m_rightButtonLayerMenu(0), - m_rightButtonTransformsMenu(0), - m_rightButtonPlaybackMenu(0), - m_soloAction(0), - m_soloModified(false), - m_prevSolo(false), - m_rwdStartAction(0), - m_rwdSimilarAction(0), - m_rwdAction(0), - m_ffwdAction(0), - m_ffwdSimilarAction(0), - m_ffwdEndAction(0), - m_playAction(0), - m_playSelectionAction(0), - m_playLoopAction(0), - m_playControlsSpacer(0), - m_playControlsWidth(0), - m_preferencesDialog(0), - m_layerTreeDialog(0), - m_activityLog(new ActivityLog()), - m_keyReference(new KeyReference()) -{ - Profiler profiler("MainWindow::MainWindow"); - - setWindowTitle(tr("Sonic Visualiser")); - - UnitDatabase *udb = UnitDatabase::getInstance(); - udb->registerUnit("Hz"); - udb->registerUnit("dB"); - udb->registerUnit("s"); - - ColourDatabase *cdb = ColourDatabase::getInstance(); - cdb->addColour(Qt::black, tr("Black")); - cdb->addColour(Qt::darkRed, tr("Red")); - cdb->addColour(Qt::darkBlue, tr("Blue")); - cdb->addColour(Qt::darkGreen, tr("Green")); - cdb->addColour(QColor(200, 50, 255), tr("Purple")); - cdb->addColour(QColor(255, 150, 50), tr("Orange")); - cdb->setUseDarkBackground(cdb->addColour(Qt::white, tr("White")), true); - cdb->setUseDarkBackground(cdb->addColour(Qt::red, tr("Bright Red")), true); - cdb->setUseDarkBackground(cdb->addColour(QColor(30, 150, 255), tr("Bright Blue")), true); - cdb->setUseDarkBackground(cdb->addColour(Qt::green, tr("Bright Green")), true); - cdb->setUseDarkBackground(cdb->addColour(QColor(225, 74, 255), tr("Bright Purple")), true); - cdb->setUseDarkBackground(cdb->addColour(QColor(255, 188, 80), tr("Bright Orange")), true); - - QFrame *frame = new QFrame; - setCentralWidget(frame); - - QGridLayout *layout = new QGridLayout; - - m_descriptionLabel = new QLabel; //!!! hang on, this is declared in base class -- should be declared and initialised by same class - - QScrollArea *scroll = new QScrollArea(frame); - scroll->setWidgetResizable(true); - scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - scroll->setFrameShape(QFrame::NoFrame); - - scroll->setWidget(m_paneStack); - - m_overview = new Overview(frame); - m_overview->setViewManager(m_viewManager); - m_overview->setFixedHeight(40); -#ifndef _WIN32 - // For some reason, the contents of the overview never appear if we - // make this setting on Windows. I have no inclination at the moment - // to track down the reason why. - m_overview->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); -#endif - connect(m_overview, SIGNAL(contextHelpChanged(const QString &)), - this, SLOT(contextHelpChanged(const QString &))); - - m_panLayer = new WaveformLayer; - m_panLayer->setChannelMode(WaveformLayer::MergeChannels); - m_panLayer->setAggressiveCacheing(true); - m_overview->addLayer(m_panLayer); - - if (m_viewManager->getGlobalDarkBackground()) { - m_panLayer->setBaseColour - (ColourDatabase::getInstance()->getColourIndex(tr("Bright Green"))); - } else { - m_panLayer->setBaseColour - (ColourDatabase::getInstance()->getColourIndex(tr("Green"))); - } - - m_fader = new Fader(frame, false); - connect(m_fader, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); - connect(m_fader, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); - - m_playSpeed = new AudioDial(frame); - m_playSpeed->setMinimum(0); - m_playSpeed->setMaximum(200); - m_playSpeed->setValue(100); - m_playSpeed->setFixedWidth(32); - m_playSpeed->setFixedHeight(32); - m_playSpeed->setNotchesVisible(true); - m_playSpeed->setPageStep(10); - m_playSpeed->setObjectName(tr("Playback Speedup")); - m_playSpeed->setDefaultValue(100); - m_playSpeed->setRangeMapper(new PlaySpeedRangeMapper(0, 200)); - m_playSpeed->setShowToolTip(true); - connect(m_playSpeed, SIGNAL(valueChanged(int)), - this, SLOT(playSpeedChanged(int))); - connect(m_playSpeed, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); - connect(m_playSpeed, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); - - IconLoader il; - - QSettings settings; - settings.beginGroup("MainWindow"); - settings.endGroup(); - - m_playControlsSpacer = new QFrame; - - layout->setSpacing(4); - layout->addWidget(scroll, 0, 0, 1, 5); - layout->addWidget(m_overview, 1, 1); - layout->addWidget(m_playControlsSpacer, 1, 2); - layout->addWidget(m_playSpeed, 1, 3); - layout->addWidget(m_fader, 1, 4); - - m_playControlsWidth = - m_fader->width() + m_playSpeed->width() + layout->spacing() * 2; - - layout->setColumnMinimumWidth(0, 14); - layout->setColumnStretch(0, 0); - - m_paneStack->setPropertyStackMinWidth(m_playControlsWidth - + 2 + layout->spacing()); - m_playControlsSpacer->setFixedSize(QSize(2, 2)); - - layout->setColumnStretch(1, 10); - - connect(m_paneStack, SIGNAL(propertyStacksResized(int)), - this, SLOT(propertyStacksResized(int))); - - frame->setLayout(layout); - - setupMenus(); - setupToolbars(); - setupHelpMenu(); - - statusBar(); - m_currentLabel = new QLabel; - statusBar()->addPermanentWidget(m_currentLabel); - - connect(m_viewManager, SIGNAL(activity(QString)), - m_activityLog, SLOT(activityHappened(QString))); - connect(m_playSource, SIGNAL(activity(QString)), - m_activityLog, SLOT(activityHappened(QString))); - connect(CommandHistory::getInstance(), SIGNAL(activity(QString)), - m_activityLog, SLOT(activityHappened(QString))); - connect(this, SIGNAL(activity(QString)), - m_activityLog, SLOT(activityHappened(QString))); - connect(this, SIGNAL(replacedDocument()), this, SLOT(documentReplaced())); - m_activityLog->hide(); - - newSession(); - - connect(m_midiInput, SIGNAL(eventsAvailable()), - this, SLOT(midiEventsAvailable())); - - TransformFactory::getInstance()->startPopulationThread(); - - Surveyer *surveyer = new Surveyer(this); - VersionTester *vt = new VersionTester - ("sonicvisualiser.org", "/latest-version.txt", SV_VERSION); - connect(vt, SIGNAL(newerVersionAvailable(QString)), - this, SLOT(newerVersionAvailable(QString))); -} - -MainWindow::~MainWindow() -{ -// std::cerr << "MainWindow::~MainWindow" << std::endl; - delete m_keyReference; - delete m_preferencesDialog; - delete m_layerTreeDialog; - Profiles::getInstance()->dump(); -// std::cerr << "MainWindow::~MainWindow finishing" << std::endl; -} - -void -MainWindow::setupMenus() -{ - if (!m_mainMenusCreated) { - m_rightButtonMenu = new QMenu(); - - // No -- we don't want tear-off enabled on the right-button - // menu. If it is enabled, then simply right-clicking and - // releasing will pop up the menu, activate the tear-off, and - // leave the torn-off menu window in front of the main window. - // That isn't desirable. I'm not sure it ever would be, in a - // context menu -- perhaps technically a Qt bug? -// m_rightButtonMenu->setTearOffEnabled(true); - } - - if (m_rightButtonLayerMenu) { - m_rightButtonLayerMenu->clear(); - } else { - m_rightButtonLayerMenu = m_rightButtonMenu->addMenu(tr("&Layer")); - m_rightButtonLayerMenu->setTearOffEnabled(true); - m_rightButtonMenu->addSeparator(); - } - - if (m_rightButtonTransformsMenu) { - m_rightButtonTransformsMenu->clear(); - } else { - m_rightButtonTransformsMenu = m_rightButtonMenu->addMenu(tr("&Transform")); - m_rightButtonTransformsMenu->setTearOffEnabled(true); - m_rightButtonMenu->addSeparator(); - } - - if (!m_mainMenusCreated) { - CommandHistory::getInstance()->registerMenu(m_rightButtonMenu); - m_rightButtonMenu->addSeparator(); - } - - setupFileMenu(); - setupEditMenu(); - setupViewMenu(); - setupPaneAndLayerMenus(); - setupTransformsMenu(); - - m_mainMenusCreated = true; -} - -void -MainWindow::setupFileMenu() -{ - if (m_mainMenusCreated) return; - - QMenu *menu = menuBar()->addMenu(tr("&File")); - menu->setTearOffEnabled(true); - QToolBar *toolbar = addToolBar(tr("File Toolbar")); - - m_keyReference->setCategory(tr("File and Session Management")); - - IconLoader il; - - QIcon icon = il.load("filenew"); - icon.addPixmap(il.loadPixmap("filenew-22")); - QAction *action = new QAction(icon, tr("&New Session"), this); - action->setShortcut(tr("Ctrl+N")); - action->setStatusTip(tr("Abandon the current Sonic Visualiser session and start a new one")); - connect(action, SIGNAL(triggered()), this, SLOT(newSession())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - toolbar->addAction(action); - - icon = il.load("fileopensession"); - action = new QAction(icon, tr("&Open Session..."), this); - action->setShortcut(tr("Ctrl+O")); - action->setStatusTip(tr("Open a previously saved Sonic Visualiser session file")); - connect(action, SIGNAL(triggered()), this, SLOT(openSession())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - icon = il.load("fileopen"); - icon.addPixmap(il.loadPixmap("fileopen-22")); - - action = new QAction(icon, tr("&Open..."), this); - action->setStatusTip(tr("Open a session file, audio file, or layer")); - connect(action, SIGNAL(triggered()), this, SLOT(openSomething())); - toolbar->addAction(action); - - icon = il.load("filesave"); - icon.addPixmap(il.loadPixmap("filesave-22")); - action = new QAction(icon, tr("&Save Session"), this); - action->setShortcut(tr("Ctrl+S")); - action->setStatusTip(tr("Save the current session into a Sonic Visualiser session file")); - connect(action, SIGNAL(triggered()), this, SLOT(saveSession())); - connect(this, SIGNAL(canSave(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - toolbar->addAction(action); - - icon = il.load("filesaveas"); - icon.addPixmap(il.loadPixmap("filesaveas-22")); - action = new QAction(icon, tr("Save Session &As..."), this); - action->setShortcut(tr("Ctrl+Shift+S")); - action->setStatusTip(tr("Save the current session into a new Sonic Visualiser session file")); - connect(action, SIGNAL(triggered()), this, SLOT(saveSessionAs())); - menu->addAction(action); - toolbar->addAction(action); - - menu->addSeparator(); - - icon = il.load("fileopenaudio"); - action = new QAction(icon, tr("&Import Audio File..."), this); - action->setShortcut(tr("Ctrl+I")); - action->setStatusTip(tr("Import an existing audio file")); - connect(action, SIGNAL(triggered()), this, SLOT(importAudio())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Import Secondary Audio File..."), this); - action->setShortcut(tr("Ctrl+Shift+I")); - action->setStatusTip(tr("Import an extra audio file as a separate layer")); - connect(action, SIGNAL(triggered()), this, SLOT(importMoreAudio())); - connect(this, SIGNAL(canImportMoreAudio(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("&Export Audio File..."), this); - action->setStatusTip(tr("Export selection as an audio file")); - connect(action, SIGNAL(triggered()), this, SLOT(exportAudio())); - connect(this, SIGNAL(canExportAudio(bool)), action, SLOT(setEnabled(bool))); - menu->addAction(action); - - menu->addSeparator(); - - action = new QAction(tr("Import Annotation &Layer..."), this); - action->setShortcut(tr("Ctrl+L")); - action->setStatusTip(tr("Import layer data from an existing file")); - connect(action, SIGNAL(triggered()), this, SLOT(importLayer())); - connect(this, SIGNAL(canImportLayer(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Export Annotation Layer..."), this); - action->setStatusTip(tr("Export layer data to a file")); - connect(action, SIGNAL(triggered()), this, SLOT(exportLayer())); - connect(this, SIGNAL(canExportLayer(bool)), action, SLOT(setEnabled(bool))); - menu->addAction(action); - - menu->addSeparator(); - - action = new QAction(tr("Export Image File..."), this); - action->setStatusTip(tr("Export a single pane to an image file")); - connect(action, SIGNAL(triggered()), this, SLOT(exportImage())); - connect(this, SIGNAL(canExportImage(bool)), action, SLOT(setEnabled(bool))); - menu->addAction(action); - - menu->addSeparator(); - - action = new QAction(tr("Open Lo&cation..."), this); - action->setShortcut(tr("Ctrl+Shift+O")); - action->setStatusTip(tr("Open or import a file from a remote URL")); - connect(action, SIGNAL(triggered()), this, SLOT(openLocation())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - menu->addSeparator(); - - m_recentFilesMenu = menu->addMenu(tr("&Recent Files")); - m_recentFilesMenu->setTearOffEnabled(true); - setupRecentFilesMenu(); - connect(&m_recentFiles, SIGNAL(recentChanged()), - this, SLOT(setupRecentFilesMenu())); - - menu->addSeparator(); - action = new QAction(tr("&Preferences..."), this); - action->setStatusTip(tr("Adjust the application preferences")); - connect(action, SIGNAL(triggered()), this, SLOT(preferences())); - menu->addAction(action); - - menu->addSeparator(); - action = new QAction(il.load("exit"), - tr("&Quit"), this); - action->setShortcut(tr("Ctrl+Q")); - action->setStatusTip(tr("Exit Sonic Visualiser")); - connect(action, SIGNAL(triggered()), this, SLOT(close())); - m_keyReference->registerShortcut(action); - menu->addAction(action); -} - -void -MainWindow::setupEditMenu() -{ - if (m_mainMenusCreated) return; - - QMenu *menu = menuBar()->addMenu(tr("&Edit")); - menu->setTearOffEnabled(true); - CommandHistory::getInstance()->registerMenu(menu); - - m_keyReference->setCategory(tr("Editing")); - - menu->addSeparator(); - - IconLoader il; - - QAction *action = new QAction(il.load("editcut"), - tr("Cu&t"), this); - action->setShortcut(tr("Ctrl+X")); - action->setStatusTip(tr("Cut the selection from the current layer to the clipboard")); - connect(action, SIGNAL(triggered()), this, SLOT(cut())); - connect(this, SIGNAL(canEditSelection(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - m_rightButtonMenu->addAction(action); - - action = new QAction(il.load("editcopy"), - tr("&Copy"), this); - action->setShortcut(tr("Ctrl+C")); - action->setStatusTip(tr("Copy the selection from the current layer to the clipboard")); - connect(action, SIGNAL(triggered()), this, SLOT(copy())); - connect(this, SIGNAL(canEditSelection(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - m_rightButtonMenu->addAction(action); - - action = new QAction(il.load("editpaste"), - tr("&Paste"), this); - action->setShortcut(tr("Ctrl+V")); - action->setStatusTip(tr("Paste from the clipboard to the current layer")); - connect(action, SIGNAL(triggered()), this, SLOT(paste())); - connect(this, SIGNAL(canPaste(bool)), action, SLOT(setEnabled(bool))); - m_keyReference... [truncated message content] |
From: <ca...@us...> - 2010-05-05 16:27:26
|
Revision: 1695 http://sv1.svn.sourceforge.net/sv1/?rev=1695&view=rev Author: cannam Date: 2010-05-05 16:27:20 +0000 (Wed, 05 May 2010) Log Message: ----------- * Remove tag (about to re-tag with updated change log) Removed Paths: ------------- sonic-visualiser/tags/sv-v1.7.2/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-05 16:27:07
|
Revision: 1694 http://sv1.svn.sourceforge.net/sv1/?rev=1694&view=rev Author: cannam Date: 2010-05-05 16:27:01 +0000 (Wed, 05 May 2010) Log Message: ----------- * Update change log for 1.7.2 Modified Paths: -------------- sonic-visualiser/trunk/CHANGELOG Modified: sonic-visualiser/trunk/CHANGELOG =================================================================== --- sonic-visualiser/trunk/CHANGELOG 2010-05-05 16:22:41 UTC (rev 1693) +++ sonic-visualiser/trunk/CHANGELOG 2010-05-05 16:27:01 UTC (rev 1694) @@ -1,4 +1,16 @@ +Changes in Sonic Visualiser 1.7.2 since the previous release 1.7.1: + + - The time-value layer now has an origin line and an option to + show derivatives (change from one point to the next) rather than + raw values + + - A static initialiser race has been fixed, possibly fixing an + occasional crash on startup in Windows + + - A crash when pressing Play straight after New Session has been + fixed + Changes in Sonic Visualiser 1.7.1 since the previous release 1.7: - The RDF importer does a better job of assigning labels to layers, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-05 16:22:49
|
Revision: 1693 http://sv1.svn.sourceforge.net/sv1/?rev=1693&view=rev Author: cannam Date: 2010-05-05 16:22:41 +0000 (Wed, 05 May 2010) Log Message: ----------- * Tag for 1.7.2 Added Paths: ----------- sonic-visualiser/tags/sv-v1.7.2/ sonic-visualiser/tags/sv-v1.7.2/INSTALL sonic-visualiser/tags/sv-v1.7.2/INSTALL.ubuntu sonic-visualiser/tags/sv-v1.7.2/sv/main/MainWindow.cpp sonic-visualiser/tags/sv-v1.7.2/sv/main/Surveyer.cpp sonic-visualiser/tags/sv-v1.7.2/version.h Removed Paths: ------------- sonic-visualiser/tags/sv-v1.7.2/INSTALL sonic-visualiser/tags/sv-v1.7.2/sv/main/MainWindow.cpp sonic-visualiser/tags/sv-v1.7.2/sv/main/Surveyer.cpp sonic-visualiser/tags/sv-v1.7.2/version.h Property changes on: sonic-visualiser/tags/sv-v1.7.2 ___________________________________________________________________ Added: svn:mergeinfo + /sonic-visualiser/branches/one-fftdataserver-per-fftmodel:1406-1415 Deleted: sonic-visualiser/tags/sv-v1.7.2/INSTALL =================================================================== --- sonic-visualiser/trunk/INSTALL 2010-05-05 14:45:32 UTC (rev 1690) +++ sonic-visualiser/tags/sv-v1.7.2/INSTALL 2010-05-05 16:22:41 UTC (rev 1693) @@ -1,139 +0,0 @@ - -To compile from source ----------------------- - -First, please consider getting one of the ready-to-run binary -distributions available from http://www.sonicvisualiser.org/ . - -The following additional libraries are required or optional when -building Sonic Visualiser: - -REQUIRED Vamp Plugin SDK v2.0 http://www.vamp-plugins.org/ - -REQUIRED Qt4 Free Edition http://www.trolltech.com/ -REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/ -REQUIRED libsamplerate http://www.mega-nerd.com/SRC/ -REQUIRED FFTW3 http://www.fftw.org/ -REQUIRED bzip2 library http://www.bzip.org/ -REQUIRED Redland RDF libraries http://librdf.org/ -REQUIRED Rubber Band http://www.breakfastquay.com/rubberband/ - -Optional JACK http://www.jackaudio.org/ -Optional PortAudio v18 or v19 http://www.portaudio.com/ -Optional PulseAudio http://www.pulseaudio.org/ -Optional MAD mp3 decoder http://www.underbit.com/products/mad/ -Optional Oggz and fishsound http://www.annodex.net/software/libraries.html -Optional liblo OSC library http://www.plugin.org.uk/liblo/ - -Although JACK, PortAudio, and PulseAudio are individually optional, -you will need to have one or the other of them in order to get any -audio playback. Usually JACK is preferred on Linux with PulseAudio as -a backup, and PortAudio is used elsewhere. - -The Redland RDF libraries include the Raptor RDF parser library, -Rasqal RDF query library, and librdf, the Redland RDF datastore (which -depends on both of those). Sonic Visualiser uses Rasqal and Redland -directly, and so indirectly also requires Raptor. For best -performance it's strongly recommended that you build with Redland -1.0.8 or newer. - -On Linux, you will need the ALSA libraries (used for MIDI). - -If you happen to be using a Debian-based Linux, you probably want to -apt-get install the following packages: libqt4-dev libsndfile1-dev -libsamplerate0-dev fftw3-dev libbz2-dev libjack-dev libmad0-dev -liboggz1-dev libfishsound1-dev liblo0-dev liblrdf0-dev librdf0-dev . - -If you are building on a Unix-like system that supports pkg-config and -uses it for all appropriate libraries (such as a modern Linux -distribution) then you should be able to just run "qmake" (being -careful to ensure it is the Qt 4 version of qmake you are running, and -not a Qt 3 version). - -If you do not have pkg-config, you should first edit the file prf/sv.prf -and comment out any of the optional HAVE_* lines (in the section -starting "If you don't have pkg-config...") for library dependencies -that you aren't using. Then run the Qt 4 "qmake" command. This will -create the proper Makefile. - -(If you're on the Mac and you have Qt3 installed as well, you must -export QMAKESPEC=macx-g++ before you do this, or Qt will get confused.) - -Then type "make". The program will then either build, or not build. -If it builds, the result will be a binary file in sv/sonic-visualiser -(on Linux) or sv/release/Sonic Visualiser.exe (on Win32), or a bundle -in sv/Sonic Visualiser.app. There should be nothing to install apart -from the executable itself and any of the above listed third-party -shared libraries that are not already installed. - - -Qt Library Version Requirements -------------------------------- - -Sonic Visualiser requires Qt version 4.3 or newer. It can not be -built with Qt3 or with Qt 4.0.x, 4.1.x, or 4.2.x. - - -A Note on SV Library Dependencies ---------------------------------- - -Sonic Visualiser compiles as a set of static libraries, with various -dependencies. In some cases these dependencies are circular (which -may indicate a design flaw, or a "deliberate compromise"). You -shouldn't need to know any of this just to build SV, but it may be of -interest to developers. - - - Library Provides Depends on - ------- -------- ---------- - - audioio Audio playback - -> base data plugin - -> QtCore - - base Miscellaneous handy classes - -> system - -> QtCore - - data File & network I/O - FFT cache - Data model abstraction classes - -> base - -> QtNetwork QtXml QtGui QtCore - - framework Application base classes - -> base layer view transform data widgets - -> QtNetwork QtXml QtGui QtCore - - layer Display layer implementations - -> base data view widgets - -> QtXml QtGui QtCore - - plugin Plugin loaders and interface classes - -> base system - -> QtXml QtCore - - sv Main application classes - -> base data view widgets framework - transform layer audioio - -> QtNetwork QtXml QtGui QtCore - - system Platform helper functions - - transform Model-to-model data processing - -> base data plugin widgets - -> QtXml QtGui QtCore - - rdf RDF data discovery and querying - -> base data plugin transform - -> QtNetwork QtGui QtCore - - view View and pane widgets - -> base data layer widgets - -> QtXml QtGui QtCore - - widgets Widget and other GUI classes - -> base data layer plugin view - -> QtXml QtGui QtCore - - Copied: sonic-visualiser/tags/sv-v1.7.2/INSTALL (from rev 1691, sonic-visualiser/trunk/INSTALL) =================================================================== --- sonic-visualiser/tags/sv-v1.7.2/INSTALL (rev 0) +++ sonic-visualiser/tags/sv-v1.7.2/INSTALL 2010-05-05 16:22:41 UTC (rev 1693) @@ -0,0 +1,145 @@ + +To compile from source +---------------------- + +First, please consider getting one of the ready-to-run binary +distributions available from http://www.sonicvisualiser.org/ . + +This file provides various instructions useful when compiling Sonic +Visualiser from source, but it doesn't have a complete recipe for any +one platform -- there are too many variables. However, you can find a +recipe for one platform (Ubuntu Linux) in the file INSTALL.ubuntu. + +The following additional libraries are required or optional when +building Sonic Visualiser: + +REQUIRED Vamp Plugin SDK v2.0 http://www.vamp-plugins.org/ + +REQUIRED Qt4 Free Edition http://www.trolltech.com/ +REQUIRED libsndfile http://www.mega-nerd.com/libsndfile/ +REQUIRED libsamplerate http://www.mega-nerd.com/SRC/ +REQUIRED FFTW3 http://www.fftw.org/ +REQUIRED bzip2 library http://www.bzip.org/ +REQUIRED Redland RDF libraries http://librdf.org/ +REQUIRED Rubber Band http://www.breakfastquay.com/rubberband/ + +Optional JACK http://www.jackaudio.org/ +Optional PortAudio v18 or v19 http://www.portaudio.com/ +Optional PulseAudio http://www.pulseaudio.org/ +Optional MAD mp3 decoder http://www.underbit.com/products/mad/ +Optional Oggz and fishsound http://www.annodex.net/software/libraries.html +Optional liblo OSC library http://www.plugin.org.uk/liblo/ + +Although JACK, PortAudio, and PulseAudio are individually optional, +you will need to have one or the other of them in order to get any +audio playback. Usually JACK is preferred on Linux with PulseAudio as +a backup, and PortAudio is used elsewhere. + +The Redland RDF libraries include the Raptor RDF parser library, +Rasqal RDF query library, and librdf, the Redland RDF datastore (which +depends on both of those). Sonic Visualiser uses Rasqal and Redland +directly, and so indirectly also requires Raptor. For best +performance it's strongly recommended that you build with Redland +1.0.8 or newer. + +On Linux, you will need the ALSA libraries (used for MIDI). + +If you happen to be using a Debian-based Linux, you probably want to +apt-get install the following packages: libqt4-dev libsndfile1-dev +libsamplerate0-dev fftw3-dev libbz2-dev libjack-dev libmad0-dev +liboggz1-dev libfishsound1-dev libasound2-dev liblo0-dev liblrdf0-dev +librdf0-dev . + +If you are building on a Unix-like system that supports pkg-config and +uses it for all appropriate libraries (such as a modern Linux +distribution) then you should be able to just run "qmake" (being +careful to ensure it is the Qt 4 version of qmake you are running, and +not a Qt 3 version). + +If you do not have pkg-config, you should first edit the file prf/sv.prf +and comment out any of the optional HAVE_* lines (in the section +starting "If you don't have pkg-config...") for library dependencies +that you aren't using. Then run the Qt 4 "qmake" command. This will +create the proper Makefile. + +(If you're on the Mac and you have Qt3 installed as well, you must +export QMAKESPEC=macx-g++ before you do this, or Qt will get confused.) + +Then type "make". The program will then either build, or not build. +If it builds, the result will be a binary file in sv/sonic-visualiser +(on Linux) or sv/release/Sonic Visualiser.exe (on Win32), or a bundle +in sv/Sonic Visualiser.app. There should be nothing to install apart +from the executable itself and any of the above listed third-party +shared libraries that are not already installed. + + +Qt Library Version Requirements +------------------------------- + +Sonic Visualiser requires Qt version 4.3 or newer. It can not be +built with Qt3 or with Qt 4.0.x, 4.1.x, or 4.2.x. + + +A Note on SV Library Dependencies +--------------------------------- + +Sonic Visualiser compiles as a set of static libraries, with various +dependencies. In some cases these dependencies are circular (which +may indicate a design flaw, or a "deliberate compromise"). You +shouldn't need to know any of this just to build SV, but it may be of +interest to developers. + + + Library Provides Depends on + ------- -------- ---------- + + audioio Audio playback + -> base data plugin + -> QtCore + + base Miscellaneous handy classes + -> system + -> QtCore + + data File & network I/O + FFT cache + Data model abstraction classes + -> base + -> QtNetwork QtXml QtGui QtCore + + framework Application base classes + -> base layer view transform data widgets + -> QtNetwork QtXml QtGui QtCore + + layer Display layer implementations + -> base data view widgets + -> QtXml QtGui QtCore + + plugin Plugin loaders and interface classes + -> base system + -> QtXml QtCore + + sv Main application classes + -> base data view widgets framework + transform layer audioio + -> QtNetwork QtXml QtGui QtCore + + system Platform helper functions + + transform Model-to-model data processing + -> base data plugin widgets + -> QtXml QtGui QtCore + + rdf RDF data discovery and querying + -> base data plugin transform + -> QtNetwork QtGui QtCore + + view View and pane widgets + -> base data layer widgets + -> QtXml QtGui QtCore + + widgets Widget and other GUI classes + -> base data layer plugin view + -> QtXml QtGui QtCore + + Copied: sonic-visualiser/tags/sv-v1.7.2/INSTALL.ubuntu (from rev 1691, sonic-visualiser/trunk/INSTALL.ubuntu) =================================================================== --- sonic-visualiser/tags/sv-v1.7.2/INSTALL.ubuntu (rev 0) +++ sonic-visualiser/tags/sv-v1.7.2/INSTALL.ubuntu 2010-05-05 16:22:41 UTC (rev 1693) @@ -0,0 +1,23 @@ + +To compile Sonic Visualiser from source in Ubuntu 10.04 +------------------------------------------------------- + +See INSTALL for general notes on compilation. This is a specific +recipe for Ubuntu 10.04. + +Starting from a clean installation of Ubuntu 10.04 desktop edition, +with a working network connection, with the Sonic Visualiser source +code unpacked into $HOME/sonic-visualiser: + +$ cd sonic-visualiser +$ sudo apt-get update +$ sudo apt-get install build-essential libqt4-dev libsndfile-dev libsamplerate-dev fftw3-dev libbz2-dev libjack-dev libasound-dev libmad0-dev liboggz-dev libfishsound-dev liblo-dev liblrdf-dev librdf-dev librubberband-dev vamp-plugin-sdk +$ qmake-qt4 +$ make + +And wait for some time for the build to complete. + +You should now have an executable file at sv/sonic-visualiser. You +don't need to properly install this -- just run it in place, or copy +it to wherever you like. + Deleted: sonic-visualiser/tags/sv-v1.7.2/sv/main/MainWindow.cpp =================================================================== --- sonic-visualiser/trunk/sv/main/MainWindow.cpp 2010-05-05 14:45:32 UTC (rev 1690) +++ sonic-visualiser/tags/sv-v1.7.2/sv/main/MainWindow.cpp 2010-05-05 16:22:41 UTC (rev 1693) @@ -1,4068 +0,0 @@ -/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ - -/* - Sonic Visualiser - An audio file viewer and annotation editor. - Centre for Digital Music, Queen Mary, University of London. - This file copyright 2006-2007 Chris Cannam and QMUL. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. See the file - COPYING included with this distribution for more information. -*/ - -#include "../version.h" - -#include "MainWindow.h" -#include "PreferencesDialog.h" - -#include "view/Pane.h" -#include "view/PaneStack.h" -#include "data/model/WaveFileModel.h" -#include "data/model/SparseOneDimensionalModel.h" -#include "data/model/NoteModel.h" -#include "data/model/Labeller.h" -#include "data/osc/OSCQueue.h" -#include "framework/Document.h" -#include "view/ViewManager.h" -#include "base/Preferences.h" -#include "layer/WaveformLayer.h" -#include "layer/TimeRulerLayer.h" -#include "layer/TimeInstantLayer.h" -#include "layer/TimeValueLayer.h" -#include "layer/NoteLayer.h" -#include "layer/Colour3DPlotLayer.h" -#include "layer/SliceLayer.h" -#include "layer/SliceableLayer.h" -#include "layer/ImageLayer.h" -#include "layer/RegionLayer.h" -#include "widgets/Fader.h" -#include "view/Overview.h" -#include "widgets/PropertyBox.h" -#include "widgets/PropertyStack.h" -#include "widgets/AudioDial.h" -#include "widgets/IconLoader.h" -#include "widgets/LayerTreeDialog.h" -#include "widgets/ListInputDialog.h" -#include "widgets/SubdividingMenu.h" -#include "widgets/NotifyingPushButton.h" -#include "widgets/KeyReference.h" -#include "widgets/TransformFinder.h" -#include "widgets/LabelCounterInputDialog.h" -#include "widgets/ActivityLog.h" -#include "audioio/AudioCallbackPlaySource.h" -#include "audioio/AudioCallbackPlayTarget.h" -#include "audioio/AudioTargetFactory.h" -#include "audioio/PlaySpeedRangeMapper.h" -#include "data/fileio/DataFileReaderFactory.h" -#include "data/fileio/PlaylistFileReader.h" -#include "data/fileio/WavFileWriter.h" -#include "data/fileio/CSVFileWriter.h" -#include "data/fileio/MIDIFileWriter.h" -#include "data/fileio/BZipFileDevice.h" -#include "data/fileio/FileSource.h" -#include "data/fft/FFTDataServer.h" -#include "data/midi/MIDIInput.h" -#include "base/RecentFiles.h" -#include "transform/TransformFactory.h" -#include "transform/ModelTransformerFactory.h" -#include "base/PlayParameterRepository.h" -#include "base/XmlExportable.h" -#include "widgets/CommandHistory.h" -#include "base/Profiler.h" -#include "base/Clipboard.h" -#include "base/UnitDatabase.h" -#include "layer/ColourDatabase.h" -#include "widgets/ModelDataTableDialog.h" -#include "rdf/PluginRDFIndexer.h" -#include "rdf/RDFExporter.h" - -#include "Surveyer.h" -#include "framework/VersionTester.h" - -// For version information -#include <vamp/vamp.h> -#include <vamp-hostsdk/PluginBase.h> -#include "plugin/api/ladspa.h" -#include "plugin/api/dssi.h" - -#include <QApplication> -#include <QMessageBox> -#include <QGridLayout> -#include <QLabel> -#include <QAction> -#include <QMenuBar> -#include <QToolBar> -#include <QInputDialog> -#include <QStatusBar> -#include <QTreeView> -#include <QFile> -#include <QFileInfo> -#include <QDir> -#include <QTextStream> -#include <QProcess> -#include <QShortcut> -#include <QSettings> -#include <QDateTime> -#include <QProcess> -#include <QCheckBox> -#include <QRegExp> -#include <QScrollArea> - -#include <iostream> -#include <cstdio> -#include <errno.h> - -using std::cerr; -using std::endl; - -using std::vector; -using std::map; -using std::set; - - -MainWindow::MainWindow(bool withAudioOutput, bool withOSCSupport) : - MainWindowBase(withAudioOutput, withOSCSupport, true), - m_overview(0), - m_mainMenusCreated(false), - m_paneMenu(0), - m_layerMenu(0), - m_transformsMenu(0), - m_playbackMenu(0), - m_existingLayersMenu(0), - m_sliceMenu(0), - m_recentFilesMenu(0), - m_recentTransformsMenu(0), - m_rightButtonMenu(0), - m_rightButtonLayerMenu(0), - m_rightButtonTransformsMenu(0), - m_rightButtonPlaybackMenu(0), - m_soloAction(0), - m_soloModified(false), - m_prevSolo(false), - m_rwdStartAction(0), - m_rwdSimilarAction(0), - m_rwdAction(0), - m_ffwdAction(0), - m_ffwdSimilarAction(0), - m_ffwdEndAction(0), - m_playAction(0), - m_playSelectionAction(0), - m_playLoopAction(0), - m_playControlsSpacer(0), - m_playControlsWidth(0), - m_preferencesDialog(0), - m_layerTreeDialog(0), - m_activityLog(new ActivityLog()), - m_keyReference(new KeyReference()) -{ - Profiler profiler("MainWindow::MainWindow"); - - setWindowTitle(tr("Sonic Visualiser")); - - UnitDatabase *udb = UnitDatabase::getInstance(); - udb->registerUnit("Hz"); - udb->registerUnit("dB"); - udb->registerUnit("s"); - - ColourDatabase *cdb = ColourDatabase::getInstance(); - cdb->addColour(Qt::black, tr("Black")); - cdb->addColour(Qt::darkRed, tr("Red")); - cdb->addColour(Qt::darkBlue, tr("Blue")); - cdb->addColour(Qt::darkGreen, tr("Green")); - cdb->addColour(QColor(200, 50, 255), tr("Purple")); - cdb->addColour(QColor(255, 150, 50), tr("Orange")); - cdb->setUseDarkBackground(cdb->addColour(Qt::white, tr("White")), true); - cdb->setUseDarkBackground(cdb->addColour(Qt::red, tr("Bright Red")), true); - cdb->setUseDarkBackground(cdb->addColour(QColor(30, 150, 255), tr("Bright Blue")), true); - cdb->setUseDarkBackground(cdb->addColour(Qt::green, tr("Bright Green")), true); - cdb->setUseDarkBackground(cdb->addColour(QColor(225, 74, 255), tr("Bright Purple")), true); - cdb->setUseDarkBackground(cdb->addColour(QColor(255, 188, 80), tr("Bright Orange")), true); - - QFrame *frame = new QFrame; - setCentralWidget(frame); - - QGridLayout *layout = new QGridLayout; - - m_descriptionLabel = new QLabel; //!!! hang on, this is declared in base class -- should be declared and initialised by same class - - QScrollArea *scroll = new QScrollArea(frame); - scroll->setWidgetResizable(true); - scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - scroll->setFrameShape(QFrame::NoFrame); - - scroll->setWidget(m_paneStack); - - m_overview = new Overview(frame); - m_overview->setViewManager(m_viewManager); - m_overview->setFixedHeight(40); -#ifndef _WIN32 - // For some reason, the contents of the overview never appear if we - // make this setting on Windows. I have no inclination at the moment - // to track down the reason why. - m_overview->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); -#endif - connect(m_overview, SIGNAL(contextHelpChanged(const QString &)), - this, SLOT(contextHelpChanged(const QString &))); - - m_panLayer = new WaveformLayer; - m_panLayer->setChannelMode(WaveformLayer::MergeChannels); - m_panLayer->setAggressiveCacheing(true); - m_overview->addLayer(m_panLayer); - - if (m_viewManager->getGlobalDarkBackground()) { - m_panLayer->setBaseColour - (ColourDatabase::getInstance()->getColourIndex(tr("Bright Green"))); - } else { - m_panLayer->setBaseColour - (ColourDatabase::getInstance()->getColourIndex(tr("Green"))); - } - - m_fader = new Fader(frame, false); - connect(m_fader, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); - connect(m_fader, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); - - m_playSpeed = new AudioDial(frame); - m_playSpeed->setMinimum(0); - m_playSpeed->setMaximum(200); - m_playSpeed->setValue(100); - m_playSpeed->setFixedWidth(32); - m_playSpeed->setFixedHeight(32); - m_playSpeed->setNotchesVisible(true); - m_playSpeed->setPageStep(10); - m_playSpeed->setObjectName(tr("Playback Speedup")); - m_playSpeed->setDefaultValue(100); - m_playSpeed->setRangeMapper(new PlaySpeedRangeMapper(0, 200)); - m_playSpeed->setShowToolTip(true); - connect(m_playSpeed, SIGNAL(valueChanged(int)), - this, SLOT(playSpeedChanged(int))); - connect(m_playSpeed, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); - connect(m_playSpeed, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); - - IconLoader il; - - QSettings settings; - settings.beginGroup("MainWindow"); - settings.endGroup(); - - m_playControlsSpacer = new QFrame; - - layout->setSpacing(4); - layout->addWidget(scroll, 0, 0, 1, 5); - layout->addWidget(m_overview, 1, 1); - layout->addWidget(m_playControlsSpacer, 1, 2); - layout->addWidget(m_playSpeed, 1, 3); - layout->addWidget(m_fader, 1, 4); - - m_playControlsWidth = - m_fader->width() + m_playSpeed->width() + layout->spacing() * 2; - - layout->setColumnMinimumWidth(0, 14); - layout->setColumnStretch(0, 0); - - m_paneStack->setPropertyStackMinWidth(m_playControlsWidth - + 2 + layout->spacing()); - m_playControlsSpacer->setFixedSize(QSize(2, 2)); - - layout->setColumnStretch(1, 10); - - connect(m_paneStack, SIGNAL(propertyStacksResized(int)), - this, SLOT(propertyStacksResized(int))); - - frame->setLayout(layout); - - setupMenus(); - setupToolbars(); - setupHelpMenu(); - - statusBar(); - m_currentLabel = new QLabel; - statusBar()->addPermanentWidget(m_currentLabel); - - connect(m_viewManager, SIGNAL(activity(QString)), - m_activityLog, SLOT(activityHappened(QString))); - connect(m_playSource, SIGNAL(activity(QString)), - m_activityLog, SLOT(activityHappened(QString))); - connect(CommandHistory::getInstance(), SIGNAL(activity(QString)), - m_activityLog, SLOT(activityHappened(QString))); - connect(this, SIGNAL(activity(QString)), - m_activityLog, SLOT(activityHappened(QString))); - connect(this, SIGNAL(replacedDocument()), this, SLOT(documentReplaced())); - m_activityLog->hide(); - - newSession(); - - connect(m_midiInput, SIGNAL(eventsAvailable()), - this, SLOT(midiEventsAvailable())); - - TransformFactory::getInstance()->startPopulationThread(); - - Surveyer *surveyer = new Surveyer(this); - VersionTester *vt = new VersionTester - ("sonicvisualiser.org", "/latest-version.txt", SV_VERSION); - connect(vt, SIGNAL(newerVersionAvailable(QString)), - this, SLOT(newerVersionAvailable(QString))); -} - -MainWindow::~MainWindow() -{ -// std::cerr << "MainWindow::~MainWindow" << std::endl; - delete m_keyReference; - delete m_preferencesDialog; - delete m_layerTreeDialog; - Profiles::getInstance()->dump(); -// std::cerr << "MainWindow::~MainWindow finishing" << std::endl; -} - -void -MainWindow::setupMenus() -{ - if (!m_mainMenusCreated) { - m_rightButtonMenu = new QMenu(); - - // No -- we don't want tear-off enabled on the right-button - // menu. If it is enabled, then simply right-clicking and - // releasing will pop up the menu, activate the tear-off, and - // leave the torn-off menu window in front of the main window. - // That isn't desirable. I'm not sure it ever would be, in a - // context menu -- perhaps technically a Qt bug? -// m_rightButtonMenu->setTearOffEnabled(true); - } - - if (m_rightButtonLayerMenu) { - m_rightButtonLayerMenu->clear(); - } else { - m_rightButtonLayerMenu = m_rightButtonMenu->addMenu(tr("&Layer")); - m_rightButtonLayerMenu->setTearOffEnabled(true); - m_rightButtonMenu->addSeparator(); - } - - if (m_rightButtonTransformsMenu) { - m_rightButtonTransformsMenu->clear(); - } else { - m_rightButtonTransformsMenu = m_rightButtonMenu->addMenu(tr("&Transform")); - m_rightButtonTransformsMenu->setTearOffEnabled(true); - m_rightButtonMenu->addSeparator(); - } - - if (!m_mainMenusCreated) { - CommandHistory::getInstance()->registerMenu(m_rightButtonMenu); - m_rightButtonMenu->addSeparator(); - } - - setupFileMenu(); - setupEditMenu(); - setupViewMenu(); - setupPaneAndLayerMenus(); - setupTransformsMenu(); - - m_mainMenusCreated = true; -} - -void -MainWindow::setupFileMenu() -{ - if (m_mainMenusCreated) return; - - QMenu *menu = menuBar()->addMenu(tr("&File")); - menu->setTearOffEnabled(true); - QToolBar *toolbar = addToolBar(tr("File Toolbar")); - - m_keyReference->setCategory(tr("File and Session Management")); - - IconLoader il; - - QIcon icon = il.load("filenew"); - icon.addPixmap(il.loadPixmap("filenew-22")); - QAction *action = new QAction(icon, tr("&New Session"), this); - action->setShortcut(tr("Ctrl+N")); - action->setStatusTip(tr("Abandon the current Sonic Visualiser session and start a new one")); - connect(action, SIGNAL(triggered()), this, SLOT(newSession())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - toolbar->addAction(action); - - icon = il.load("fileopensession"); - action = new QAction(icon, tr("&Open Session..."), this); - action->setShortcut(tr("Ctrl+O")); - action->setStatusTip(tr("Open a previously saved Sonic Visualiser session file")); - connect(action, SIGNAL(triggered()), this, SLOT(openSession())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - icon = il.load("fileopen"); - icon.addPixmap(il.loadPixmap("fileopen-22")); - - action = new QAction(icon, tr("&Open..."), this); - action->setStatusTip(tr("Open a session file, audio file, or layer")); - connect(action, SIGNAL(triggered()), this, SLOT(openSomething())); - toolbar->addAction(action); - - icon = il.load("filesave"); - icon.addPixmap(il.loadPixmap("filesave-22")); - action = new QAction(icon, tr("&Save Session"), this); - action->setShortcut(tr("Ctrl+S")); - action->setStatusTip(tr("Save the current session into a Sonic Visualiser session file")); - connect(action, SIGNAL(triggered()), this, SLOT(saveSession())); - connect(this, SIGNAL(canSave(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - toolbar->addAction(action); - - icon = il.load("filesaveas"); - icon.addPixmap(il.loadPixmap("filesaveas-22")); - action = new QAction(icon, tr("Save Session &As..."), this); - action->setShortcut(tr("Ctrl+Shift+S")); - action->setStatusTip(tr("Save the current session into a new Sonic Visualiser session file")); - connect(action, SIGNAL(triggered()), this, SLOT(saveSessionAs())); - menu->addAction(action); - toolbar->addAction(action); - - menu->addSeparator(); - - icon = il.load("fileopenaudio"); - action = new QAction(icon, tr("&Import Audio File..."), this); - action->setShortcut(tr("Ctrl+I")); - action->setStatusTip(tr("Import an existing audio file")); - connect(action, SIGNAL(triggered()), this, SLOT(importAudio())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Import Secondary Audio File..."), this); - action->setShortcut(tr("Ctrl+Shift+I")); - action->setStatusTip(tr("Import an extra audio file as a separate layer")); - connect(action, SIGNAL(triggered()), this, SLOT(importMoreAudio())); - connect(this, SIGNAL(canImportMoreAudio(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("&Export Audio File..."), this); - action->setStatusTip(tr("Export selection as an audio file")); - connect(action, SIGNAL(triggered()), this, SLOT(exportAudio())); - connect(this, SIGNAL(canExportAudio(bool)), action, SLOT(setEnabled(bool))); - menu->addAction(action); - - menu->addSeparator(); - - action = new QAction(tr("Import Annotation &Layer..."), this); - action->setShortcut(tr("Ctrl+L")); - action->setStatusTip(tr("Import layer data from an existing file")); - connect(action, SIGNAL(triggered()), this, SLOT(importLayer())); - connect(this, SIGNAL(canImportLayer(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Export Annotation Layer..."), this); - action->setStatusTip(tr("Export layer data to a file")); - connect(action, SIGNAL(triggered()), this, SLOT(exportLayer())); - connect(this, SIGNAL(canExportLayer(bool)), action, SLOT(setEnabled(bool))); - menu->addAction(action); - - menu->addSeparator(); - - action = new QAction(tr("Export Image File..."), this); - action->setStatusTip(tr("Export a single pane to an image file")); - connect(action, SIGNAL(triggered()), this, SLOT(exportImage())); - connect(this, SIGNAL(canExportImage(bool)), action, SLOT(setEnabled(bool))); - menu->addAction(action); - - menu->addSeparator(); - - action = new QAction(tr("Open Lo&cation..."), this); - action->setShortcut(tr("Ctrl+Shift+O")); - action->setStatusTip(tr("Open or import a file from a remote URL")); - connect(action, SIGNAL(triggered()), this, SLOT(openLocation())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - menu->addSeparator(); - - m_recentFilesMenu = menu->addMenu(tr("&Recent Files")); - m_recentFilesMenu->setTearOffEnabled(true); - setupRecentFilesMenu(); - connect(&m_recentFiles, SIGNAL(recentChanged()), - this, SLOT(setupRecentFilesMenu())); - - menu->addSeparator(); - action = new QAction(tr("&Preferences..."), this); - action->setStatusTip(tr("Adjust the application preferences")); - connect(action, SIGNAL(triggered()), this, SLOT(preferences())); - menu->addAction(action); - - menu->addSeparator(); - action = new QAction(il.load("exit"), - tr("&Quit"), this); - action->setShortcut(tr("Ctrl+Q")); - action->setStatusTip(tr("Exit Sonic Visualiser")); - connect(action, SIGNAL(triggered()), this, SLOT(close())); - m_keyReference->registerShortcut(action); - menu->addAction(action); -} - -void -MainWindow::setupEditMenu() -{ - if (m_mainMenusCreated) return; - - QMenu *menu = menuBar()->addMenu(tr("&Edit")); - menu->setTearOffEnabled(true); - CommandHistory::getInstance()->registerMenu(menu); - - m_keyReference->setCategory(tr("Editing")); - - menu->addSeparator(); - - IconLoader il; - - QAction *action = new QAction(il.load("editcut"), - tr("Cu&t"), this); - action->setShortcut(tr("Ctrl+X")); - action->setStatusTip(tr("Cut the selection from the current layer to the clipboard")); - connect(action, SIGNAL(triggered()), this, SLOT(cut())); - connect(this, SIGNAL(canEditSelection(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - m_rightButtonMenu->addAction(action); - - action = new QAction(il.load("editcopy"), - tr("&Copy"), this); - action->setShortcut(tr("Ctrl+C")); - action->setStatusTip(tr("Copy the selection from the current layer to the clipboard")); - connect(action, SIGNAL(triggered()), this, SLOT(copy())); - connect(this, SIGNAL(canEditSelection(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - m_rightButtonMenu->addAction(action); - - action = new QAction(il.load("editpaste"), - tr("&Paste"), this); - action->setShortcut(tr("Ctrl+V")); - action->setStatusTip(tr("Paste from the clipboard to the current layer")); - connect(action, SIGNAL(triggered()), this, SLOT(paste())); - connect(this, SIGNAL(canPaste(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - m_rightButtonMenu->addAction(action); - - m_deleteSelectedAction = new QAction(tr("&Delete Selected Items"), this); - m_deleteSelectedAction->setShortcut(tr("Del")); - m_deleteSelectedAction->setStatusTip(tr("Delete items in current selection from the current layer")); - connect(m_deleteSelectedAction, SIGNAL(triggered()), this, SLOT(deleteSelected())); - connect(this, SIGNAL(canDeleteSelection(bool)), m_deleteSelectedAction, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(m_deleteSelectedAction); - menu->addAction(m_deleteSelectedAction); - m_rightButtonMenu->addAction(m_deleteSelectedAction); - - menu->addSeparator(); - m_rightButtonMenu->addSeparator(); - - m_keyReference->setCategory(tr("Selection")); - - action = new QAction(tr("Select &All"), this); - action->setShortcut(tr("Ctrl+A")); - action->setStatusTip(tr("Select the whole duration of the current session")); - connect(action, SIGNAL(triggered()), this, SLOT(selectAll())); - connect(this, SIGNAL(canSelect(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - m_rightButtonMenu->addAction(action); - - action = new QAction(tr("Select &Visible Range"), this); - action->setShortcut(tr("Ctrl+Shift+A")); - action->setStatusTip(tr("Select the time range corresponding to the current window width")); - connect(action, SIGNAL(triggered()), this, SLOT(selectVisible())); - connect(this, SIGNAL(canSelect(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Select to &Start"), this); - action->setShortcut(tr("Shift+Left")); - action->setStatusTip(tr("Select from the start of the session to the current playback position")); - connect(action, SIGNAL(triggered()), this, SLOT(selectToStart())); - connect(this, SIGNAL(canSelect(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Select to &End"), this); - action->setShortcut(tr("Shift+Right")); - action->setStatusTip(tr("Select from the current playback position to the end of the session")); - connect(action, SIGNAL(triggered()), this, SLOT(selectToEnd())); - connect(this, SIGNAL(canSelect(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("C&lear Selection"), this); - action->setShortcut(tr("Esc")); - action->setStatusTip(tr("Clear the selection")); - connect(action, SIGNAL(triggered()), this, SLOT(clearSelection())); - connect(this, SIGNAL(canClearSelection(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - m_rightButtonMenu->addAction(action); - - menu->addSeparator(); - - m_keyReference->setCategory(tr("Tapping Time Instants")); - - action = new QAction(tr("&Insert Instant at Playback Position"), this); - action->setShortcut(tr("Enter")); - action->setStatusTip(tr("Insert a new time instant at the current playback position, in a new layer if necessary")); - connect(action, SIGNAL(triggered()), this, SLOT(insertInstant())); - connect(this, SIGNAL(canInsertInstant(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - // Laptop shortcut (no keypad Enter key) - QString shortcut(tr(";")); - connect(new QShortcut(shortcut, this), SIGNAL(activated()), - this, SLOT(insertInstant())); - m_keyReference->registerAlternativeShortcut(action, shortcut); - - action = new QAction(tr("Insert Instants at Selection &Boundaries"), this); - action->setShortcut(tr("Shift+Enter")); - action->setStatusTip(tr("Insert new time instants at the start and end of the current selected regions, in a new layer if necessary")); - connect(action, SIGNAL(triggered()), this, SLOT(insertInstantsAtBoundaries())); - connect(this, SIGNAL(canInsertInstantsAtBoundaries(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Insert Item at Selection"), this); - action->setShortcut(tr("Ctrl+Shift+Enter")); - action->setStatusTip(tr("Insert a new note or region item corresponding to the current selection")); - connect(action, SIGNAL(triggered()), this, SLOT(insertItemAtSelection())); - connect(this, SIGNAL(canInsertItemAtSelection(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - menu->addSeparator(); - - QMenu *numberingMenu = menu->addMenu(tr("Number New Instants with")); - numberingMenu->setTearOffEnabled(true); - QActionGroup *numberingGroup = new QActionGroup(this); - - Labeller::TypeNameMap types = m_labeller->getTypeNames(); - for (Labeller::TypeNameMap::iterator i = types.begin(); i != types.end(); ++i) { - - if (i->first == Labeller::ValueFromLabel || - i->first == Labeller::ValueFromExistingNeighbour) continue; - - action = new QAction(i->second, this); - connect(action, SIGNAL(triggered()), this, SLOT(setInstantsNumbering())); - action->setCheckable(true); - action->setChecked(m_labeller->getType() == i->first); - numberingGroup->addAction(action); - numberingMenu->addAction(action); - m_numberingActions[action] = (int)i->first; - - if (i->first == Labeller::ValueFromTwoLevelCounter) { - - QMenu *cycleMenu = numberingMenu->addMenu(tr("Cycle size")); - QActionGroup *cycleGroup = new QActionGroup(this); - - int cycles[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 16 }; - for (int i = 0; i < int(sizeof(cycles)/sizeof(cycles[0])); ++i) { - action = new QAction(QString("%1").arg(cycles[i]), this); - connect(action, SIGNAL(triggered()), this, SLOT(setInstantsCounterCycle())); - action->setCheckable(true); - action->setChecked(cycles[i] == m_labeller->getCounterCycleSize()); - cycleGroup->addAction(action); - cycleMenu->addAction(action); - } - } - - if (i->first == Labeller::ValueNone || - i->first == Labeller::ValueFromTwoLevelCounter || - i->first == Labeller::ValueFromRealTime) { - numberingMenu->addSeparator(); - } - } - - action = new QAction(tr("Set Numbering Counters..."), this); - action->setStatusTip(tr("Set the counters used for counter-based labelling")); - connect(action, SIGNAL(triggered()), this, SLOT(resetInstantsCounters())); - menu->addAction(action); - - action = new QAction(tr("Renumber Selected Instants"), this); - action->setStatusTip(tr("Renumber the selected instants using the current labelling scheme")); - connect(action, SIGNAL(triggered()), this, SLOT(renumberInstants())); - connect(this, SIGNAL(canRenumberInstants(bool)), action, SLOT(setEnabled(bool))); -// m_keyReference->registerShortcut(action); - menu->addAction(action); -} - -void -MainWindow::setupViewMenu() -{ - if (m_mainMenusCreated) return; - - IconLoader il; - - QAction *action = 0; - - m_keyReference->setCategory(tr("Panning and Navigation")); - - QMenu *menu = menuBar()->addMenu(tr("&View")); - menu->setTearOffEnabled(true); - action = new QAction(tr("Scroll &Left"), this); - action->setShortcut(tr("Left")); - action->setStatusTip(tr("Scroll the current pane to the left")); - connect(action, SIGNAL(triggered()), this, SLOT(scrollLeft())); - connect(this, SIGNAL(canScroll(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Scroll &Right"), this); - action->setShortcut(tr("Right")); - action->setStatusTip(tr("Scroll the current pane to the right")); - connect(action, SIGNAL(triggered()), this, SLOT(scrollRight())); - connect(this, SIGNAL(canScroll(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("&Jump Left"), this); - action->setShortcut(tr("Ctrl+Left")); - action->setStatusTip(tr("Scroll the current pane a big step to the left")); - connect(action, SIGNAL(triggered()), this, SLOT(jumpLeft())); - connect(this, SIGNAL(canScroll(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("J&ump Right"), this); - action->setShortcut(tr("Ctrl+Right")); - action->setStatusTip(tr("Scroll the current pane a big step to the right")); - connect(action, SIGNAL(triggered()), this, SLOT(jumpRight())); - connect(this, SIGNAL(canScroll(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Peek Left"), this); - action->setShortcut(tr("Alt+Left")); - action->setStatusTip(tr("Scroll the current pane to the left without moving the playback cursor or other panes")); - connect(action, SIGNAL(triggered()), this, SLOT(peekLeft())); - connect(this, SIGNAL(canScroll(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Peek Right"), this); - action->setShortcut(tr("Alt+Right")); - action->setStatusTip(tr("Scroll the current pane to the right without moving the playback cursor or other panes")); - connect(action, SIGNAL(triggered()), this, SLOT(peekRight())); - connect(this, SIGNAL(canScroll(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - menu->addSeparator(); - - m_keyReference->setCategory(tr("Zoom")); - - action = new QAction(il.load("zoom-in"), - tr("Zoom &In"), this); - action->setShortcut(tr("Up")); - action->setStatusTip(tr("Increase the zoom level")); - connect(action, SIGNAL(triggered()), this, SLOT(zoomIn())); - connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(il.load("zoom-out"), - tr("Zoom &Out"), this); - action->setShortcut(tr("Down")); - action->setStatusTip(tr("Decrease the zoom level")); - connect(action, SIGNAL(triggered()), this, SLOT(zoomOut())); - connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Restore &Default Zoom"), this); - action->setStatusTip(tr("Restore the zoom level to the default")); - connect(action, SIGNAL(triggered()), this, SLOT(zoomDefault())); - connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); - menu->addAction(action); - - action = new QAction(il.load("zoom-fit"), - tr("Zoom to &Fit"), this); - action->setShortcut(tr("F")); - action->setStatusTip(tr("Zoom to show the whole file")); - connect(action, SIGNAL(triggered()), this, SLOT(zoomToFit())); - connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - menu->addSeparator(); - - m_keyReference->setCategory(tr("Display Features")); - - QActionGroup *overlayGroup = new QActionGroup(this); - - action = new QAction(tr("Show &No Overlays"), this); - action->setShortcut(tr("0")); - action->setStatusTip(tr("Hide centre indicator, frame times, layer names and scale")); - connect(action, SIGNAL(triggered()), this, SLOT(showNoOverlays())); - action->setCheckable(true); - action->setChecked(false); - overlayGroup->addAction(action); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Show &Minimal Overlays"), this); - action->setShortcut(tr("9")); - action->setStatusTip(tr("Show centre indicator only")); - connect(action, SIGNAL(triggered()), this, SLOT(showMinimalOverlays())); - action->setCheckable(true); - action->setChecked(false); - overlayGroup->addAction(action); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Show &Standard Overlays"), this); - action->setShortcut(tr("8")); - action->setStatusTip(tr("Show centre indicator, frame times and scale")); - connect(action, SIGNAL(triggered()), this, SLOT(showStandardOverlays())); - action->setCheckable(true); - action->setChecked(true); - overlayGroup->addAction(action); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Show &All Overlays"), this); - action->setShortcut(tr("7")); - action->setStatusTip(tr("Show all texts and scale")); - connect(action, SIGNAL(triggered()), this, SLOT(showAllOverlays())); - action->setCheckable(true); - action->setChecked(false); - overlayGroup->addAction(action); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - menu->addSeparator(); - - action = new QAction(tr("Show &Zoom Wheels"), this); - action->setShortcut(tr("Z")); - action->setStatusTip(tr("Show thumbwheels for zooming horizontally and vertically")); - connect(action, SIGNAL(triggered()), this, SLOT(toggleZoomWheels())); - action->setCheckable(true); - action->setChecked(m_viewManager->getZoomWheelsEnabled()); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Show Property Bo&xes"), this); - action->setShortcut(tr("X")); - action->setStatusTip(tr("Show the layer property boxes at the side of the main window")); - connect(action, SIGNAL(triggered()), this, SLOT(togglePropertyBoxes())); - action->setCheckable(true); - action->setChecked(true); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Show Status &Bar"), this); - action->setStatusTip(tr("Show context help information in the status bar at the bottom of the window")); - connect(action, SIGNAL(triggered()), this, SLOT(toggleStatusBar())); - action->setCheckable(true); - action->setChecked(true); - menu->addAction(action); - - QSettings settings; - settings.beginGroup("MainWindow"); - bool sb = settings.value("showstatusbar", true).toBool(); - if (!sb) { - action->setChecked(false); - statusBar()->hide(); - } - settings.endGroup(); - - menu->addSeparator(); - - action = new QAction(tr("Show La&yer Summary"), this); - action->setShortcut(tr("Y")); - action->setStatusTip(tr("Open a window displaying the hierarchy of panes and layers in this session")); - connect(action, SIGNAL(triggered()), this, SLOT(showLayerTree())); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - action = new QAction(tr("Show Acti&vity Log"), this); - action->setStatusTip(tr("Open a window listing interactions and other events")); - connect(action, SIGNAL(triggered()), this, SLOT(showActivityLog())); - menu->addAction(action); -} - -void -MainWindow::setupPaneAndLayerMenus() -{ - if (m_paneMenu) { - m_paneActions.clear(); - m_paneMenu->clear(); - } else { - m_paneMenu = menuBar()->addMenu(tr("&Pane")); - m_paneMenu->setTearOffEnabled(true); - } - - if (m_layerMenu) { - m_layerActions.clear(); - m_layerMenu->clear(); - } else { - m_layerMenu = menuBar()->addMenu(tr("&Layer")); - m_layerMenu->setTearOffEnabled(true); - } - - QMenu *menu = m_paneMenu; - - IconLoader il; - - m_keyReference->setCategory(tr("Managing Panes and Layers")); - - QAction *action = new QAction(il.load("pane"), tr("Add &New Pane"), this); - action->setShortcut(tr("N")); - action->setStatusTip(tr("Add a new pane containing only a time ruler")); - connect(action, SIGNAL(triggered()), this, SLOT(addPane())); - connect(this, SIGNAL(canAddPane(bool)), action, SLOT(setEnabled(bool))); - m_paneActions[action] = LayerConfiguration(LayerFactory::TimeRuler); - m_keyReference->registerShortcut(action); - menu->addAction(action); - - menu->addSeparator(); - - menu = m_layerMenu; - -// menu->addSeparator(); - - LayerFactory::LayerTypeSet emptyLayerTypes = - LayerFactory::getInstance()->getValidEmptyLayerTypes(); - - for (LayerFactory::LayerTypeSet::iterator i = emptyLayerTypes.begin(); - i != emptyLayerTypes.end(); ++i) { - - QIcon icon; - QString mainText, tipText, channelText; - LayerFactory::LayerType type = *i; - QString name = LayerFactory::getInstance()->getLayerPresentationName(type); - - icon = il.load(LayerFactory::getInstance()->getLayerIconName(type)); - - mainText = tr("Add New %1 Layer").arg(name); - tipText = tr("Add a new empty layer of type %1").arg(name); - - action = new QAction(icon, mainText, this); - action->setStatusTip(tipText); - - if (type == LayerFactory::Text) { - action->setShortcut(tr("T")); - m_keyReference->registerShortcut(action); - } - - connect(action, SIGNAL(triggered()), this, SLOT(addLayer())); - connect(this, SIGNAL(canAddLayer(bool)), action, SLOT(setEnabled(bool))); - m_layerActions[action] = LayerConfiguration(type); - menu->addAction(action); - m_rightButtonLayerMenu->addAction(action); - } - - m_rightButtonLayerMenu->addSeparator(); - menu->addSeparator(); - - LayerFactory::LayerType backgroundTypes[] = { - LayerFactory::Waveform, - LayerFactory::Spectrogram, - LayerFactory::MelodicRangeSpectrogram, - LayerFactory::PeakFrequencySpectrogram, - LayerFactory::Spectrum - }; - - std::vector<Model *> models; - if (m_document) models = m_document->getTransformInputModels(); - bool plural = (models.size() > 1); - if (models.empty()) { - models.push_back(getMainModel()); // probably 0 - } - - for (unsigned int i = 0; - i < sizeof(backgroundTypes)/sizeof(backgroundTypes[0]); ++i) { - - const int paneMenuType = 0, layerMenuType = 1; - - for (int menuType = paneMenuType; menuType <= layerMenuType; ++menuType) { - - if (menuType == paneMenuType) menu = m_paneMenu; - else menu = m_layerMenu; - - QMenu *submenu = 0; - - QIcon icon; - QString mainText, shortcutText, tipText, channelText; - LayerFactory::LayerType type = backgroundTypes[i]; - bool mono = true; - - switch (type) { - - case LayerFactory::Waveform: - icon = il.load("waveform"); - mainText = tr("Add &Waveform"); - if (menuType == paneMenuType) { - shortcutText = tr("W"); - tipText = tr("Add a new pane showing a waveform view"); - } else { - tipText = tr("Add a new layer showing a waveform view"); - } - mono = false; - break; - - case LayerFactory::Spectrogram: - icon = il.load("spectrogram"); - mainText = tr("Add Spectro&gram"); - if (menuType == paneMenuType) { - shortcutText = tr("G"); - tipText = tr("Add a new pane showing a spectrogram"); - } else { - tipText = tr("Add a new layer showing a spectrogram"); - } - break; - - case LayerFactory::MelodicRangeSpectrogram: - icon = il.load("spectrogram"); - mainText = tr("Add &Melodic Range Spectrogram"); - if (menuType == paneMenuType) { - shortcutText = tr("M"); - tipText = tr("Add a new pane showing a spectrogram set up for an overview of note pitches"); - } else { - tipText = tr("Add a new layer showing a spectrogram set up for an overview of note pitches"); - } - break; - - case LayerFactory::PeakFrequencySpectrogram: - icon = il.load("spectrogram"); - mainText = tr("Add Pea&k Frequency Spectrogram"); - if (menuType == paneMenuType) { - shortcutText = tr("K"); - tipText = tr("Add a new pane showing a spectrogram set up for tracking frequencies"); - } else { - tipText = tr("Add a new layer showing a spectrogram set up for tracking frequencies"); - } - break; - - case LayerFactory::Spectrum: - icon = il.load("spectrum"); - mainText = tr("Add Spectr&um"); - if (menuType == paneMenuType) { - shortcutText = tr("U"); - tipText = tr("Add a new pane showing a frequency spectrum"); - } else { - tipText = tr("Add a new layer showing a frequency spectrum"); - } - break; - - default: break; - } - - std::vector<Model *> candidateModels; -// if (menuType == paneMenuType) { - candidateModels = models; -// } else { -// candidateModels.push_back(0); -// } - - for (std::vector<Model *>::iterator mi = - candidateModels.begin(); - mi != candidateModels.end(); ++mi) { - - Model *model = *mi; - - int channels = 0; - if (model) { - DenseTimeValueModel *dtvm = - dynamic_cast<DenseTimeValueModel *>(model); - if (dtvm) channels = dtvm->getChannelCount(); - } - if (channels < 1 && getMainModel()) { - channels = getMainModel()->getChannelCount(); - } - if (channels < 1) channels = 1; - - for (int c = 0; c <= channels; ++c) { - - if (c == 1 && channels == 1) continue; - bool isDefault = (c == 0); - bool isOnly = (isDefault && (channels == 1)); - -// if (menuType == layerMenuType) { -// if (isDefault) isOnly = true; -// else continue; -// } - - if (isOnly && (!plural /*|| menuType == layerMenuType*/)) { - -// if (menuType == layerMenuType && type != LayerFactory::Waveform) { -// action = new QAction(mainText, this); -// } else { - action = new QAction(icon, mainText, this); -// } - - action->setShortcut(shortcutText); - action->setStatusTip(tipText); - if (menuType == paneMenuType) { - connect(action, SIGNAL(triggered()), - this, SLOT(addPane())); - connect(this, SIGNAL(canAddPane(bool)), - action, SLOT(setEnabled(bool))); - m_paneActions[action] = LayerConfiguration(type); - } else { - connect(action, SIGNAL(triggered()), - this, SLOT(addLayer())); - connect(this, SIGNAL(canAddLayer(bool)), - action, SLOT(setEnabled(bool))); - m_layerActions[action] = LayerConfiguration(type); - } - if (shortcutText != "") { - m_keyReference->registerShortcut(action); - } - menu->addAction(action); - - } else { - - if (!submenu) { - submenu = menu->addMenu(mainText); - submenu->setTearOffEnabled(true); - } else if (isDefault) { - submenu->addSeparator(); - } - - QString actionText; - if (c == 0) { - if (mono) { - actionText = tr("&All Channels Mixed"); - } else { - actionText = tr("&All Channels"); - } - }... [truncated message content] |
From: <ca...@us...> - 2010-05-05 16:21:51
|
Revision: 1692 http://sv1.svn.sourceforge.net/sv1/?rev=1692&view=rev Author: cannam Date: 2010-05-05 16:21:44 +0000 (Wed, 05 May 2010) Log Message: ----------- * Version and dates Modified Paths: -------------- sonic-visualiser/trunk/sv/main/MainWindow.cpp sonic-visualiser/trunk/version.h Modified: sonic-visualiser/trunk/sv/main/MainWindow.cpp =================================================================== --- sonic-visualiser/trunk/sv/main/MainWindow.cpp 2010-05-05 14:46:26 UTC (rev 1691) +++ sonic-visualiser/trunk/sv/main/MainWindow.cpp 2010-05-05 16:21:44 UTC (rev 1692) @@ -4033,7 +4033,7 @@ #endif aboutText += - "<p><small>Sonic Visualiser Copyright © 2005–2009 Chris Cannam and " + "<p><small>Sonic Visualiser Copyright © 2005–2010 Chris Cannam and " "Queen Mary, University of London.</small></p>" "<p><small>This program is free software; you can redistribute it and/or " "modify it under the terms of the GNU General Public License as " Modified: sonic-visualiser/trunk/version.h =================================================================== --- sonic-visualiser/trunk/version.h 2010-05-05 14:46:26 UTC (rev 1691) +++ sonic-visualiser/trunk/version.h 2010-05-05 16:21:44 UTC (rev 1692) @@ -1 +1 @@ -#define SV_VERSION "1.7.1" +#define SV_VERSION "1.7.2" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-05 14:46:33
|
Revision: 1691 http://sv1.svn.sourceforge.net/sv1/?rev=1691&view=rev Author: cannam Date: 2010-05-05 14:46:26 +0000 (Wed, 05 May 2010) Log Message: ----------- * Add Ubuntu-specific note Modified Paths: -------------- sonic-visualiser/trunk/INSTALL sonic-visualiser/trunk/sv/main/Surveyer.cpp Added Paths: ----------- sonic-visualiser/trunk/INSTALL.ubuntu Modified: sonic-visualiser/trunk/INSTALL =================================================================== --- sonic-visualiser/trunk/INSTALL 2010-05-05 14:45:32 UTC (rev 1690) +++ sonic-visualiser/trunk/INSTALL 2010-05-05 14:46:26 UTC (rev 1691) @@ -5,6 +5,11 @@ First, please consider getting one of the ready-to-run binary distributions available from http://www.sonicvisualiser.org/ . +This file provides various instructions useful when compiling Sonic +Visualiser from source, but it doesn't have a complete recipe for any +one platform -- there are too many variables. However, you can find a +recipe for one platform (Ubuntu Linux) in the file INSTALL.ubuntu. + The following additional libraries are required or optional when building Sonic Visualiser: @@ -42,7 +47,8 @@ If you happen to be using a Debian-based Linux, you probably want to apt-get install the following packages: libqt4-dev libsndfile1-dev libsamplerate0-dev fftw3-dev libbz2-dev libjack-dev libmad0-dev -liboggz1-dev libfishsound1-dev liblo0-dev liblrdf0-dev librdf0-dev . +liboggz1-dev libfishsound1-dev libasound2-dev liblo0-dev liblrdf0-dev +librdf0-dev . If you are building on a Unix-like system that supports pkg-config and uses it for all appropriate libraries (such as a modern Linux Added: sonic-visualiser/trunk/INSTALL.ubuntu =================================================================== --- sonic-visualiser/trunk/INSTALL.ubuntu (rev 0) +++ sonic-visualiser/trunk/INSTALL.ubuntu 2010-05-05 14:46:26 UTC (rev 1691) @@ -0,0 +1,23 @@ + +To compile Sonic Visualiser from source in Ubuntu 10.04 +------------------------------------------------------- + +See INSTALL for general notes on compilation. This is a specific +recipe for Ubuntu 10.04. + +Starting from a clean installation of Ubuntu 10.04 desktop edition, +with a working network connection, with the Sonic Visualiser source +code unpacked into $HOME/sonic-visualiser: + +$ cd sonic-visualiser +$ sudo apt-get update +$ sudo apt-get install build-essential libqt4-dev libsndfile-dev libsamplerate-dev fftw3-dev libbz2-dev libjack-dev libasound-dev libmad0-dev liboggz-dev libfishsound-dev liblo-dev liblrdf-dev librdf-dev librubberband-dev vamp-plugin-sdk +$ qmake-qt4 +$ make + +And wait for some time for the build to complete. + +You should now have an executable file at sv/sonic-visualiser. You +don't need to properly install this -- just run it in place, or copy +it to wherever you like. + Modified: sonic-visualiser/trunk/sv/main/Surveyer.cpp =================================================================== --- sonic-visualiser/trunk/sv/main/Surveyer.cpp 2010-05-05 14:45:32 UTC (rev 1690) +++ sonic-visualiser/trunk/sv/main/Surveyer.cpp 2010-05-05 14:46:26 UTC (rev 1691) @@ -42,7 +42,7 @@ QSettings settings; settings.beginGroup("Survey"); if (!settings.contains("countdown")) { - settings.setValue("countdown", 5); + settings.setValue("countdown", 15); settings.endGroup(); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-05 14:45:38
|
Revision: 1690 http://sv1.svn.sourceforge.net/sv1/?rev=1690&view=rev Author: cannam Date: 2010-05-05 14:45:32 +0000 (Wed, 05 May 2010) Log Message: ----------- * Quick workarounds for some very weird behaviour on first test on Ubuntu 10.04 Modified Paths: -------------- sonic-visualiser/trunk/layer/SpectrogramLayer.cpp sonic-visualiser/trunk/sv/main/main.cpp Modified: sonic-visualiser/trunk/layer/SpectrogramLayer.cpp =================================================================== --- sonic-visualiser/trunk/layer/SpectrogramLayer.cpp 2010-05-05 12:32:20 UTC (rev 1689) +++ sonic-visualiser/trunk/layer/SpectrogramLayer.cpp 2010-05-05 14:45:32 UTC (rev 1690) @@ -2366,7 +2366,7 @@ std::cerr << "Recreating image cache: width = " << v->width() << ", height = " << h << std::endl; #endif - cache.image = QImage(v->width(), h, QImage::Format_RGB32); + cache.image = QImage(v->width(), h, QImage::Format_ARGB32_Premultiplied); } if (w > 0) { Modified: sonic-visualiser/trunk/sv/main/main.cpp =================================================================== --- sonic-visualiser/trunk/sv/main/main.cpp 2010-05-05 12:32:20 UTC (rev 1689) +++ sonic-visualiser/trunk/sv/main/main.cpp 2010-05-05 14:45:32 UTC (rev 1690) @@ -211,7 +211,7 @@ { #ifdef Q_WS_X11 #if QT_VERSION >= 0x040500 - QApplication::setGraphicsSystem("raster"); +// QApplication::setGraphicsSystem("raster"); #endif #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2010-05-05 12:32:27
|
Revision: 1689 http://sv1.svn.sourceforge.net/sv1/?rev=1689&view=rev Author: cannam Date: 2010-05-05 12:32:20 +0000 (Wed, 05 May 2010) Log Message: ----------- * Tidy some spare stuff into misc/ Added Paths: ----------- sonic-visualiser/trunk/misc/ sonic-visualiser/trunk/misc/deploy_mac.sh sonic-visualiser/trunk/misc/find-todo.pl sonic-visualiser/trunk/misc/ladspa.cat sonic-visualiser/trunk/misc/sv.pch sonic-visualiser/trunk/misc/sv.prf.osx sonic-visualiser/trunk/misc/sv_mingw.prf sonic-visualiser/trunk/misc/update-i18n.sh Removed Paths: ------------- sonic-visualiser/trunk/deploy_mac.sh sonic-visualiser/trunk/find-todo.pl sonic-visualiser/trunk/ladspa.cat sonic-visualiser/trunk/sv.pch sonic-visualiser/trunk/sv.prf.osx sonic-visualiser/trunk/sv_mingw.prf sonic-visualiser/trunk/update-i18n.sh Deleted: sonic-visualiser/trunk/deploy_mac.sh =================================================================== --- sonic-visualiser/trunk/deploy_mac.sh 2010-04-07 11:38:56 UTC (rev 1688) +++ sonic-visualiser/trunk/deploy_mac.sh 2010-05-05 12:32:20 UTC (rev 1689) @@ -1,34 +0,0 @@ -#!/bin/bash - -# this script should be executed from the directory that contains the app directory (application bundle) -# it copies the required 3rd party libraries into the application bundle and corrects the library install names and references - -TARGETPATH="Sonic Visualiser.app/Contents/Frameworks/" - -mkdir "$TARGETPATH" - -QTPREFIX=/Library/Frameworks/ -QTFWKS="QtXml QtCore QtGui QtNetwork" - -# copy the dynamic libraries into the app bundle - -for FWK in $QTFWKS; do - cp ${QTPREFIX}${FWK}.framework/Versions/4/${FWK} "${TARGETPATH}" -done - -# change the id's of the dylibs -for FWK in $QTFWKS; do - install_name_tool -id @executable_path/../Frameworks/${FWK} "$TARGETPATH/$FWK" -done - -# tell the linker to look for dylibs in the app bundle -for FWK in $QTFWKS; do - install_name_tool -change ${FWK}.framework/Versions/4/${FWK} @executable_path/../Frameworks/${FWK} "Sonic Visualiser.app/Contents/MacOS/Sonic Visualiser" -done - -# correct dependencies between QT dylibs -for FWK in $QTFWKS; do - case $FWK in QtCore) continue;; esac - install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore "$TARGETPATH/${FWK}" -done - Deleted: sonic-visualiser/trunk/find-todo.pl =================================================================== --- sonic-visualiser/trunk/find-todo.pl 2010-04-07 11:38:56 UTC (rev 1688) +++ sonic-visualiser/trunk/find-todo.pl 2010-05-05 12:32:20 UTC (rev 1689) @@ -1,69 +0,0 @@ -#!/usr/bin/perl -w -require 5; -use strict; - -# Command line should contain a list of files to look in. -# -# A likely invocation would be -# find . \( -name \*.h -o -name \*.cpp \) -print | xargs perl ./find-todo.pl -# -# Unusual or binary files will be ignored. - -my $todo_count = 0; -my $file_count = 0; -my $unfinished_count = 0; - -sub print_file_maybe -{ - my ($pf, $file) = @_; - if (! $$pf) { - print "\n$file:\n"; - $$pf = 1; - $file_count++; - } -} - -foreach (@ARGV) { - - my $file = $_; - next if ($file =~ /~$/); - open FILE, $file or next; - my $in_todo = 0; - my $printed_file = 0; - my $line = 0; - - while (<FILE>) { - - $line++; - last if (m.^[\200-\377].); # probably a binary file - - if ($in_todo) { - - if (m, /[/\*](!!!)?\s* (.*) $ ,x) { - print " $2\n"; - } else { - $in_todo = 0; - } - - } else { - - if (m, /[/\*] !!!\s* (.*) $ ,x) { - print_file_maybe(\$printed_file, $file); - print sprintf("%8d", $line), ": $1\n"; - $in_todo = 1; - $todo_count++; - - } elsif (m, /[/\*] \Q...\E \s* (.*) $ ,x) { - print_file_maybe(\$printed_file, $file); - print sprintf("%8d", $line), ": [U] $1\n"; - $unfinished_count++; - } - } - } - - close FILE; -} - -print "\nTotal: $todo_count problem items, $unfinished_count unfinished " . - "markers in $file_count files\n\n"; - Deleted: sonic-visualiser/trunk/ladspa.cat =================================================================== --- sonic-visualiser/trunk/ladspa.cat 2010-04-07 11:38:56 UTC (rev 1688) +++ sonic-visualiser/trunk/ladspa.cat 2010-05-05 12:32:20 UTC (rev 1689) @@ -1,304 +0,0 @@ -ladspa:adsr_1653:adsr::Amplitude > Dynamics -ladspa:adsr_1680:adsr_g+t::Amplitude > Dynamics -ladspa:alias_1407:alias::Amplitude > Distortions -ladspa:allpass_1895:allpass_c::Time > Delays -ladspa:allpass_1895:allpass_l::Time > Delays -ladspa:allpass_1895:allpass_n::Time > Delays -ladspa:amp_1181:amp::Amplitude > Amplifiers -ladspa:amp_1654:amp_gaia_oa::Amplitude > Amplifiers -ladspa:amp_1654:amp_gcia_oa::Amplitude > Amplifiers -ladspa:amp:amp_mono::Amplitude > Amplifiers -ladspa:amp:amp_stereo::Amplitude > Amplifiers -ladspa:am_pitchshift_1433:amPitchshift::Frequency > Pitch shifters -ladspa:analogue_osc_1416:analogueOsc::Generators > Oscillators -ladspa:bandpass_a_iir_1893:bandpass_a_iir::Frequency > Filters > Bandpass -ladspa:bandpass_iir_1892:bandpass_iir::Frequency > Filters > Bandpass -ladspa:blvco:Pulse-VCO::Generators > Oscillators -ladspa:blvco:Rec-VCO::Generators > Oscillators -ladspa:blvco:Saw-VCO::Generators > Oscillators -ladspa:bode_shifter_1431:bodeShifter::Spectral -ladspa:bode_shifter_cv_1432:bodeShifterCV::Spectral -ladspa:branch_1673:branch_ia_oaoa::Utilities -ladspa:branch_1673:branch_ic_ococ::Utilities -ladspa:butterworth_1902:butthigh_iir::Frequency > Filters > Highpass -ladspa:butterworth_1902:buttlow_iir::Frequency > Filters > Lowpass -ladspa:butterworth_1902:bwxover_iir::Frequency > Filters > Bandpass -ladspa:caps:AmpIII::Amplitude > Distortions -ladspa:caps:AmpIV::Amplitude > Distortions -ladspa:caps:Cabinet::Amplitude > Distortions -ladspa:caps:CEO::Generators > Oscillators -ladspa:caps:Chorus::Time > Chorus -ladspa:caps:Click::Utilities -ladspa:caps:Clip::Amplitude > Distortions -ladspa:caps:Compress::Amplitude > Dynamics > Compressors -ladspa:caps:Eq::Frequency > EQs -ladspa:caps:HRTF::Utilities -ladspa:caps:JVRev::Time > Reverbs -ladspa:caps:Lorenz::Generators -ladspa:caps:Pan::Utilities -ladspa:caps:Phaser::Time > Phasers -ladspa:caps:Plate2x2::Time > Reverbs -ladspa:caps:Plate::Time > Reverbs -ladspa:caps:PreampIII::Amplitude > Distortions -ladspa:caps:PreampIV::Amplitude > Distortions -ladspa:caps:Roessler::Generators -ladspa:caps:Sin::Generators -ladspa:caps:StereoChorus::Time > Chorus -ladspa:caps:SweepVF::Frequency > Filters -ladspa:caps:VCOd::Generators > Oscillators -ladspa:caps:VCOs::Generators > Oscillators -ladspa:caps:White::Generators -ladspa:chebstortion_1430:chebstortion::Amplitude > Distortions -ladspa:cmt:am::Amplitude > Modulators -ladspa:cmt:amp_mono::Amplitude > Amplifiers -ladspa:cmt:amp_stereo::Amplitude > Amplifiers -ladspa:cmt:analogue::Generators -ladspa:cmt:bf2cube::Utilities > Ambisonic -ladspa:cmt:bf2quad::Utilities > Ambisonic -ladspa:cmt:bf2stereo::Utilities > Ambisonic -ladspa:cmt:bf_rotate_z::Utilities > Ambisonic -ladspa:cmt:canyon_delay::Time > Delays -ladspa:cmt:compress_peak::Amplitude > Dynamics > Compressors -ladspa:cmt:compress_rms::Amplitude > Dynamics > Compressors -ladspa:cmt:delay_0.01s::Time > Delays -ladspa:cmt:delay_0.1s::Time > Delays -ladspa:cmt:delay_1s::Time > Delays -ladspa:cmt:delay_5s::Time > Delays -ladspa:cmt:delay_60s::Time > Delays -ladspa:cmt:disintegrator::Amplitude > Distortions -ladspa:cmt:encode_bformat::Utilities > Ambisonic -ladspa:cmt:encode_fmh::Utilities > Ambisonic -ladspa:cmt:expand_peak::Amplitude > Dynamics > Expanders -ladspa:cmt:expand_rms::Amplitude > Dynamics > Expanders -ladspa:cmt:fbdelay_0.01s::Time > Delays -ladspa:cmt:fbdelay_0.1s::Time > Delays -ladspa:cmt:fbdelay_1s::Time > Delays -ladspa:cmt:fbdelay_5s::Time > Delays -ladspa:cmt:fbdelay_60s::Time > Delays -ladspa:cmt:fmh2bf::Utilities > Ambisonic -ladspa:cmt:fmh2oct::Utilities > Ambisonic -ladspa:cmt:fmh_rotate_z::Utilities > Ambisonic -ladspa:cmt:freeverb3::Time > Reverbs -ladspa:cmt:grain_scatter::Generators -ladspa:cmt:hard_gate::Amplitude > Dynamics > Gates -ladspa:cmt:hpf::Frequency > Filters > Highpass -ladspa:cmt:identity_audio::Utilities -ladspa:cmt:identity_control::Utilities -ladspa:cmt:limit_peak::Amplitude > Dynamics > Limiters -ladspa:cmt:limit_rms::Amplitude > Dynamics > Limiters -ladspa:cmt:lofi::Amplitude > Distortions -ladspa:cmt:logistic::Utilities -ladspa:cmt:lpf::Frequency > Filters > Lowpass -ladspa:cmt:mixer::Utilities -ladspa:cmt:noise_source_white::Generators -ladspa:cmt:null_ai::Utilities -ladspa:cmt:null_ao::Utilities -ladspa:cmt:null_ci::Utilities -ladspa:cmt:null_co::Utilities -ladspa:cmt:organ::Generators -ladspa:cmt:peak::Utilities -ladspa:cmt:phasemod::Generators -ladspa:cmt:pink_full_frequency::Generators -ladspa:cmt:pink_interpolated_audio::Generators -ladspa:cmt:pink_sh::Generators -ladspa:cmt:sine_faaa::Generators -ladspa:cmt:sine_faac::Generators -ladspa:cmt:sine_fcaa::Generators -ladspa:cmt:sine_fcac::Generators -ladspa:cmt:sledgehammer::Amplitude > Dynamics > Limiters -ladspa:cmt:syndrum::Generators -ladspa:cmt:track_max_peak::Utilities -ladspa:cmt:track_max_rms::Utilities -ladspa:cmt:track_peak::Utilities -ladspa:cmt:track_rms::Utilities -ladspa:cmt:vcf303::Frequency > Filters > Lowpass -ladspa:cmt:wshape_sine::Amplitude > Waveshapers -ladspa:comb_1190:comb::Frequency > Filters > Combs -ladspa:comb_1887:comb_c::Time > Delays -ladspa:comb_1887:comb_l::Time > Delays -ladspa:comb_1887:comb_n::Time > Delays -ladspa:comb_splitter_1411:combSplitter::Frequency > Filters > Combs -ladspa:const_1909:const::Utilities -ladspa:crossover_dist_1404:crossoverDist::Amplitude > Distortions -ladspa:cs_chorus:Chorus1::Time > Chorus -ladspa:cs_chorus:Chorus2::Time > Chorus -ladspa:cs_phaser:Phaser1+LFO::Time > Phasers -ladspa:cs_phaser:Phaser1::Time > Phasers -ladspa:dahdsr_2021:dahdsr_cg+t_control::Amplitude > Dynamics -ladspa:dahdsr_2021:dahdsr_g+t_audio::Amplitude > Dynamics -ladspa:dahdsr_2021:dahdsr_g+t_control::Amplitude > Dynamics -ladspa:dc_remove_1207:dcRemove::Frequency > Filters > Highpass -ladspa:decay_1886:decay::Utilities -ladspa:decimator_1202:decimator::Amplitude > Distortions -ladspa:declip_1195:declip::Amplitude > Waveshapers -ladspa:delay_1898:delay_c::Time > Delays -ladspa:delay_1898:delay_l::Time > Delays -ladspa:delay_1898:delay_n::Time > Delays -ladspa:delay:delay_5s::Time > Delays -ladspa:delayorama_1402:delayorama::Time > Delays -ladspa:difference_2030:difference_iama_oa::Utilities -ladspa:difference_2030:difference_iamc_oa::Utilities -ladspa:difference_2030:difference_icma_oa::Utilities -ladspa:difference_2030:difference_icmc_oc::Utilities -ladspa:diode_1185:diode::Amplitude > Distortions -ladspa:divider_1186:divider::Generators -ladspa:dj_eq_1901:dj_eq::Frequency > EQs -ladspa:dj_eq_1901:dj_eq_mono::Frequency > EQs -ladspa:dj_flanger_1438:djFlanger::Time > Flangers -ladspa:dyson_compress_1403:dysonCompress::Amplitude > Dynamics > Compressors -ladspa:fad_delay_1192:fadDelay::Time > Delays -ladspa:fast_lookahead_limiter_1913:fastLookaheadLimiter::Amplitude > Dynamics > Limiters -ladspa:filter:hpf::Frequency > Filters > Highpass -ladspa:filter:lpf::Frequency > Filters > Lowpass -ladspa:filters:Parametric1::Frequency > Filters -ladspa:flanger_1191:flanger::Time > Flangers -ladspa:fmod_1656:fmod_fama_oa::Frequency -ladspa:fmod_1656:fmod_famc_oa::Frequency -ladspa:fmod_1656:fmod_fcma_oa::Frequency -ladspa:fmod_1656:fmod_fcmc_oc::Frequency -ladspa:fm_osc_1415:fmOsc::Generators > Oscillators -ladspa:foldover_1213:foldover::Amplitude > Distortions -ladspa:foverdrive_1196:foverdrive::Amplitude > Distortions -ladspa:freq_tracker_1418:freqTracker::Frequency > Measurement -ladspa:g2reverb:G2reverb::Time > Reverbs -ladspa:gate_1410:gate::Amplitude > Dynamics > Gates -ladspa:giant_flange_1437:giantFlange::Time > Flangers -ladspa:gong_1424:gong::Simulators -ladspa:gong_beater_1439:gongBeater::Generators -ladspa:gsm_1215:gsm::Amplitude > Distortions -ladspa:gverb_1216:gverb::Time > Reverbs -ladspa:hard_limiter_1413:hardLimiter::Amplitude > Dynamics > Limiters -ladspa:harmonic_gen_1220:harmonicGen::Generators -ladspa:hermes_filter_1200:hermesFilter::Frequency > Filters -ladspa:highpass_iir_1890:highpass_iir::Frequency > Filters > Highpass -ladspa:hilbert_1440:hilbert::Utilities -ladspa:imp_1199:imp::Spectral -ladspa:impulse_1885:impulse_fc::Utilities -ladspa:interpolator_1660:interpolator::Utilities -ladspa:inv_1429:inv::Utilities -ladspa:jamincont_1912:jaminController::Utilities -ladspa:karaoke_1409:karaoke::Utilities -ladspa:latency_1914:artificialLatency::Utilities -ladspa:lcr_delay_1436:lcrDelay::Time > Delays -ladspa:lowpass_iir_1891:lowpass_iir::Frequency > Filters > Lowpass -ladspa:lp4pole_1671:lp4pole_faraia_oa::Frequency > Filters > Lowpass -ladspa:lp4pole_1671:lp4pole_fcrcia_oa::Frequency > Filters > Lowpass -ladspa:ls_filter_1908:lsFilter::Frequency > Filters -ladspa:matrix_ms_st_1421:matrixMSSt::Utilities -ladspa:matrix_spatialiser_1422:matrixSpatialiser::Utilities -ladspa:matrix_st_ms_1420:matrixStMS::Utilities -ladspa:mbeq_1197:mbeq::Frequency > EQs > Multiband -ladspa:mod_delay_1419:modDelay::Time > Delays -ladspa:multivoice_chorus_1201:multivoiceChorus::Time > Chorus -ladspa:mvchpf24:Mvchpf-1::Frequency > Filters -ladspa:mvclpf24:Mvclpf-1::Frequency > Filters -ladspa:mvclpf24:Mvclpf-2::Frequency > Filters -ladspa:mvclpf24:Mvclpf-3::Frequency > Filters -ladspa:mvclpf24:Mvclpf-4::Frequency > Filters -ladspa:noise:noise_white::Generators -ladspa:notch_iir_1894:notch_iir::Frequency > Filters > Notch -ladspa:phasers_1217:autoPhaser::Time > Phasers -ladspa:phasers_1217:fourByFourPole::Frequency > Filters > Allpass -ladspa:phasers_1217:lfoPhaser::Time > Phasers -ladspa:pitch_scale_1193:pitchScale::Frequency > Pitch shifters -ladspa:pitch_scale_1194:pitchScaleHQ::Frequency > Pitch shifters -ladspa:plate_1423:plate::Time > Reverbs -ladspa:pointer_cast_1910:pointerCastDistortion::Amplitude > Distortions -ladspa:product_1668:product_iaia_oa::Utilities -ladspa:product_1668:product_iaic_oa::Utilities -ladspa:product_1668:product_icic_oc::Utilities -ladspa:pulse_1645:pulse_fapa_oa::Generators > Oscillators -ladspa:pulse_1645:pulse_fapc_oa::Generators > Oscillators -ladspa:pulse_1645:pulse_fcpa_oa::Generators > Oscillators -ladspa:pulse_1645:pulse_fcpc_oa::Generators > Oscillators -ladspa:pvoc:Accumulate::Spectral -ladspa:pvoc:Exaggerate::Spectral -ladspa:pvoc:Transpose::Frequency > Pitch shifters -ladspa:quantiser100_2029:quantiser100::Utilities -ladspa:quantiser20_2027:quantiser20::Utilities -ladspa:quantiser50_2028:quantiser50::Utilities -ladspa:random_1661:random_fasa_oa::Generators -ladspa:random_1661:random_fasc_oa::Generators -ladspa:random_1661:random_fcsa_oa::Generators -ladspa:random_1661:random_fcsc_oa::Generators -ladspa:rate_shifter_1417:rateShifter::Frequency > Pitch shifters -ladspa:ratio_2034:ratio_nada_oa::Utilities -ladspa:ratio_2034:ratio_nadc_oa::Utilities -ladspa:ratio_2034:ratio_ncda_oa::Utilities -ladspa:ratio_2034:ratio_ncdc_oc::Utilities -ladspa:retro_flange_1208:retroFlange::Time > Flangers -ladspa:revdelay_1605:revdelay::Time > Delays -ladspa:ringmod_1188:ringmod_1i1o1l::Amplitude > Modulators -ladspa:ringmod_1188:ringmod_2i1o::Amplitude > Modulators -ladspa:satan_maximiser_1408:satanMaximiser::Amplitude > Dynamics -ladspa:sawtooth_1641:sawtooth_fa_oa::Generators > Oscillators -ladspa:sawtooth_1641:sawtooth_fc_oa::Generators > Oscillators -ladspa:sc1_1425:sc1::Amplitude > Dynamics > Compressors -ladspa:sc2_1426:sc2::Amplitude > Dynamics > Compressors -ladspa:sc3_1427:sc3::Amplitude > Dynamics > Compressors -ladspa:sc4_1882:sc4::Amplitude > Dynamics > Compressors -ladspa:sc4m_1916:sc4m::Amplitude > Dynamics > Compressors -ladspa:se4_1883:se4::Amplitude > Dynamics > Compressors -ladspa:sequencer16_1677:sequencer16::Simulators -ladspa:sequencer32_1676:sequencer32::Simulators -ladspa:sequencer64_1675:sequencer64::Simulators -ladspa:shaper_1187:shaper::Amplitude > Waveshapers -ladspa:sifter_1210:sifter::Amplitude > Distortions -ladspa:sin_cos_1881:sinCos::Generators > Oscillators -ladspa:sine:sine_faaa::Generators > Oscillators -ladspa:sine:sine_faac::Generators > Oscillators -ladspa:sine:sine_fcaa::Generators > Oscillators -ladspa:sine:sine_fcac::Generators > Oscillators -ladspa:single_para_1203:singlePara::Frequency > EQs > Parametric -ladspa:sinus_wavewrapper_1198:sinusWavewrapper::Amplitude > Waveshapers -ladspa:smooth_decimate_1414:smoothDecimate::Amplitude > Distortions -ladspa:split_1406:split::Utilities -ladspa:square_1643:square_fa_oa::Generators > Oscillators -ladspa:square_1643:square_fc_oa::Generators > Oscillators -ladspa:step_muxer_1212:stepMuxer::Utilities -ladspa:sum_1665:sum_iaia_oa::Utilities -ladspa:sum_1665:sum_iaic_oa::Utilities -ladspa:sum_1665:sum_icic_oc::Utilities -ladspa:surround_encoder_1401:surroundEncoder::Utilities -ladspa:svf_1214:svf::Frequency > Filters -ladspa:sync_pulse_2023:syncpulse_fapaga_oa::Generators > Oscillators -ladspa:sync_pulse_2023:syncpulse_fcpcga_oa::Generators > Oscillators -ladspa:sync_square_1678:syncsquare_faga_oa::Generators > Oscillators -ladspa:sync_square_1678:syncsquare_fcga_oa::Generators > Oscillators -ladspa:tap_autopan:tap_autopan::Amplitude > Modulators -ladspa:tap_chorusflanger:tap_chorusflanger::Time > Flangers -ladspa:tap_deesser:tap_deesser::Amplitude > Dynamics -ladspa:tap_doubler:tap_doubler::Simulators -ladspa:tap_dynamics_m:tap_dynamics_m::Amplitude > Dynamics -ladspa:tap_dynamics_st:tap_dynamics_st::Amplitude > Dynamics -ladspa:tap_echo:tap_stereo_echo::Time > Delays -ladspa:tape_delay_1211:tapeDelay::Time > Delays -ladspa:tap_eqbw:tap_equalizer_bw::Frequency > EQs -ladspa:tap_eq:tap_equalizer::Frequency > EQs -ladspa:tap_limiter:tap_limiter::Amplitude > Dynamics > Limiters -ladspa:tap_pinknoise:tap_pinknoise::Utilities -ladspa:tap_pitch:tap_pitch::Frequency > Pitch shifters -ladspa:tap_reflector:tap_reflector::Time -ladspa:tap_reverb:tap_reverb::Time > Reverbs -ladspa:tap_rotspeak:tap_rotspeak::Simulators -ladspa:tap_sigmoid:tap_sigmoid::Amplitude > Distortions -ladspa:tap_tremolo:tap_tremolo::Amplitude > Modulators -ladspa:tap_tubewarmth:tap_tubewarmth::Simulators -ladspa:tap_vibrato:tap_vibrato::Amplitude > Modulators -ladspa:tracker_2025:tracker_gaaadaia_oa::Amplitude > Waveshapers -ladspa:tracker_2025:tracker_gaacdcia_oa::Amplitude > Waveshapers -ladspa:transient_1206:transient::Amplitude > Dynamics -ladspa:triangle_1649:triangle_fasa_oa::Generators > Oscillators -ladspa:triangle_1649:triangle_fasc_oa::Generators > Oscillators -ladspa:triangle_1649:triangle_fcsa_oa::Generators > Oscillators -ladspa:triangle_1649:triangle_fcsc_oa::Generators > Oscillators -ladspa:triple_para_1204:triplePara::Frequency > EQs > Parametric -ladspa:valve_1209:valve::Amplitude > Distortions -ladspa:valve_rect_1405:valveRect::Amplitude > Distortions -ladspa:vco_sawpulse:Pulse-VCO::Generators > Oscillators -ladspa:vco_sawpulse:Rec-VCO::Generators > Oscillators -ladspa:vco_sawpulse:Saw-VCO::Generators > Oscillators -ladspa:vynil_1905:vynil::Amplitude > Distortions -ladspa:wave_terrain_1412:waveTerrain::Generators > Oscillators -ladspa:xfade_1915:xfade4::Amplitude > Dynamics > Compressors -ladspa:zm1_1428:zm1::Utilities Copied: sonic-visualiser/trunk/misc/deploy_mac.sh (from rev 1688, sonic-visualiser/trunk/deploy_mac.sh) =================================================================== --- sonic-visualiser/trunk/misc/deploy_mac.sh (rev 0) +++ sonic-visualiser/trunk/misc/deploy_mac.sh 2010-05-05 12:32:20 UTC (rev 1689) @@ -0,0 +1,34 @@ +#!/bin/bash + +# this script should be executed from the directory that contains the app directory (application bundle) +# it copies the required 3rd party libraries into the application bundle and corrects the library install names and references + +TARGETPATH="Sonic Visualiser.app/Contents/Frameworks/" + +mkdir "$TARGETPATH" + +QTPREFIX=/Library/Frameworks/ +QTFWKS="QtXml QtCore QtGui QtNetwork" + +# copy the dynamic libraries into the app bundle + +for FWK in $QTFWKS; do + cp ${QTPREFIX}${FWK}.framework/Versions/4/${FWK} "${TARGETPATH}" +done + +# change the id's of the dylibs +for FWK in $QTFWKS; do + install_name_tool -id @executable_path/../Frameworks/${FWK} "$TARGETPATH/$FWK" +done + +# tell the linker to look for dylibs in the app bundle +for FWK in $QTFWKS; do + install_name_tool -change ${FWK}.framework/Versions/4/${FWK} @executable_path/../Frameworks/${FWK} "Sonic Visualiser.app/Contents/MacOS/Sonic Visualiser" +done + +# correct dependencies between QT dylibs +for FWK in $QTFWKS; do + case $FWK in QtCore) continue;; esac + install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore "$TARGETPATH/${FWK}" +done + Copied: sonic-visualiser/trunk/misc/find-todo.pl (from rev 1688, sonic-visualiser/trunk/find-todo.pl) =================================================================== --- sonic-visualiser/trunk/misc/find-todo.pl (rev 0) +++ sonic-visualiser/trunk/misc/find-todo.pl 2010-05-05 12:32:20 UTC (rev 1689) @@ -0,0 +1,69 @@ +#!/usr/bin/perl -w +require 5; +use strict; + +# Command line should contain a list of files to look in. +# +# A likely invocation would be +# find . \( -name \*.h -o -name \*.cpp \) -print | xargs perl ./find-todo.pl +# +# Unusual or binary files will be ignored. + +my $todo_count = 0; +my $file_count = 0; +my $unfinished_count = 0; + +sub print_file_maybe +{ + my ($pf, $file) = @_; + if (! $$pf) { + print "\n$file:\n"; + $$pf = 1; + $file_count++; + } +} + +foreach (@ARGV) { + + my $file = $_; + next if ($file =~ /~$/); + open FILE, $file or next; + my $in_todo = 0; + my $printed_file = 0; + my $line = 0; + + while (<FILE>) { + + $line++; + last if (m.^[\200-\377].); # probably a binary file + + if ($in_todo) { + + if (m, /[/\*](!!!)?\s* (.*) $ ,x) { + print " $2\n"; + } else { + $in_todo = 0; + } + + } else { + + if (m, /[/\*] !!!\s* (.*) $ ,x) { + print_file_maybe(\$printed_file, $file); + print sprintf("%8d", $line), ": $1\n"; + $in_todo = 1; + $todo_count++; + + } elsif (m, /[/\*] \Q...\E \s* (.*) $ ,x) { + print_file_maybe(\$printed_file, $file); + print sprintf("%8d", $line), ": [U] $1\n"; + $unfinished_count++; + } + } + } + + close FILE; +} + +print "\nTotal: $todo_count problem items, $unfinished_count unfinished " . + "markers in $file_count files\n\n"; + Copied: sonic-visualiser/trunk/misc/ladspa.cat (from rev 1688, sonic-visualiser/trunk/ladspa.cat) =================================================================== --- sonic-visualiser/trunk/misc/ladspa.cat (rev 0) +++ sonic-visualiser/trunk/misc/ladspa.cat 2010-05-05 12:32:20 UTC (rev 1689) @@ -0,0 +1,304 @@ +ladspa:adsr_1653:adsr::Amplitude > Dynamics +ladspa:adsr_1680:adsr_g+t::Amplitude > Dynamics +ladspa:alias_1407:alias::Amplitude > Distortions +ladspa:allpass_1895:allpass_c::Time > Delays +ladspa:allpass_1895:allpass_l::Time > Delays +ladspa:allpass_1895:allpass_n::Time > Delays +ladspa:amp_1181:amp::Amplitude > Amplifiers +ladspa:amp_1654:amp_gaia_oa::Amplitude > Amplifiers +ladspa:amp_1654:amp_gcia_oa::Amplitude > Amplifiers +ladspa:amp:amp_mono::Amplitude > Amplifiers +ladspa:amp:amp_stereo::Amplitude > Amplifiers +ladspa:am_pitchshift_1433:amPitchshift::Frequency > Pitch shifters +ladspa:analogue_osc_1416:analogueOsc::Generators > Oscillators +ladspa:bandpass_a_iir_1893:bandpass_a_iir::Frequency > Filters > Bandpass +ladspa:bandpass_iir_1892:bandpass_iir::Frequency > Filters > Bandpass +ladspa:blvco:Pulse-VCO::Generators > Oscillators +ladspa:blvco:Rec-VCO::Generators > Oscillators +ladspa:blvco:Saw-VCO::Generators > Oscillators +ladspa:bode_shifter_1431:bodeShifter::Spectral +ladspa:bode_shifter_cv_1432:bodeShifterCV::Spectral +ladspa:branch_1673:branch_ia_oaoa::Utilities +ladspa:branch_1673:branch_ic_ococ::Utilities +ladspa:butterworth_1902:butthigh_iir::Frequency > Filters > Highpass +ladspa:butterworth_1902:buttlow_iir::Frequency > Filters > Lowpass +ladspa:butterworth_1902:bwxover_iir::Frequency > Filters > Bandpass +ladspa:caps:AmpIII::Amplitude > Distortions +ladspa:caps:AmpIV::Amplitude > Distortions +ladspa:caps:Cabinet::Amplitude > Distortions +ladspa:caps:CEO::Generators > Oscillators +ladspa:caps:Chorus::Time > Chorus +ladspa:caps:Click::Utilities +ladspa:caps:Clip::Amplitude > Distortions +ladspa:caps:Compress::Amplitude > Dynamics > Compressors +ladspa:caps:Eq::Frequency > EQs +ladspa:caps:HRTF::Utilities +ladspa:caps:JVRev::Time > Reverbs +ladspa:caps:Lorenz::Generators +ladspa:caps:Pan::Utilities +ladspa:caps:Phaser::Time > Phasers +ladspa:caps:Plate2x2::Time > Reverbs +ladspa:caps:Plate::Time > Reverbs +ladspa:caps:PreampIII::Amplitude > Distortions +ladspa:caps:PreampIV::Amplitude > Distortions +ladspa:caps:Roessler::Generators +ladspa:caps:Sin::Generators +ladspa:caps:StereoChorus::Time > Chorus +ladspa:caps:SweepVF::Frequency > Filters +ladspa:caps:VCOd::Generators > Oscillators +ladspa:caps:VCOs::Generators > Oscillators +ladspa:caps:White::Generators +ladspa:chebstortion_1430:chebstortion::Amplitude > Distortions +ladspa:cmt:am::Amplitude > Modulators +ladspa:cmt:amp_mono::Amplitude > Amplifiers +ladspa:cmt:amp_stereo::Amplitude > Amplifiers +ladspa:cmt:analogue::Generators +ladspa:cmt:bf2cube::Utilities > Ambisonic +ladspa:cmt:bf2quad::Utilities > Ambisonic +ladspa:cmt:bf2stereo::Utilities > Ambisonic +ladspa:cmt:bf_rotate_z::Utilities > Ambisonic +ladspa:cmt:canyon_delay::Time > Delays +ladspa:cmt:compress_peak::Amplitude > Dynamics > Compressors +ladspa:cmt:compress_rms::Amplitude > Dynamics > Compressors +ladspa:cmt:delay_0.01s::Time > Delays +ladspa:cmt:delay_0.1s::Time > Delays +ladspa:cmt:delay_1s::Time > Delays +ladspa:cmt:delay_5s::Time > Delays +ladspa:cmt:delay_60s::Time > Delays +ladspa:cmt:disintegrator::Amplitude > Distortions +ladspa:cmt:encode_bformat::Utilities > Ambisonic +ladspa:cmt:encode_fmh::Utilities > Ambisonic +ladspa:cmt:expand_peak::Amplitude > Dynamics > Expanders +ladspa:cmt:expand_rms::Amplitude > Dynamics > Expanders +ladspa:cmt:fbdelay_0.01s::Time > Delays +ladspa:cmt:fbdelay_0.1s::Time > Delays +ladspa:cmt:fbdelay_1s::Time > Delays +ladspa:cmt:fbdelay_5s::Time > Delays +ladspa:cmt:fbdelay_60s::Time > Delays +ladspa:cmt:fmh2bf::Utilities > Ambisonic +ladspa:cmt:fmh2oct::Utilities > Ambisonic +ladspa:cmt:fmh_rotate_z::Utilities > Ambisonic +ladspa:cmt:freeverb3::Time > Reverbs +ladspa:cmt:grain_scatter::Generators +ladspa:cmt:hard_gate::Amplitude > Dynamics > Gates +ladspa:cmt:hpf::Frequency > Filters > Highpass +ladspa:cmt:identity_audio::Utilities +ladspa:cmt:identity_control::Utilities +ladspa:cmt:limit_peak::Amplitude > Dynamics > Limiters +ladspa:cmt:limit_rms::Amplitude > Dynamics > Limiters +ladspa:cmt:lofi::Amplitude > Distortions +ladspa:cmt:logistic::Utilities +ladspa:cmt:lpf::Frequency > Filters > Lowpass +ladspa:cmt:mixer::Utilities +ladspa:cmt:noise_source_white::Generators +ladspa:cmt:null_ai::Utilities +ladspa:cmt:null_ao::Utilities +ladspa:cmt:null_ci::Utilities +ladspa:cmt:null_co::Utilities +ladspa:cmt:organ::Generators +ladspa:cmt:peak::Utilities +ladspa:cmt:phasemod::Generators +ladspa:cmt:pink_full_frequency::Generators +ladspa:cmt:pink_interpolated_audio::Generators +ladspa:cmt:pink_sh::Generators +ladspa:cmt:sine_faaa::Generators +ladspa:cmt:sine_faac::Generators +ladspa:cmt:sine_fcaa::Generators +ladspa:cmt:sine_fcac::Generators +ladspa:cmt:sledgehammer::Amplitude > Dynamics > Limiters +ladspa:cmt:syndrum::Generators +ladspa:cmt:track_max_peak::Utilities +ladspa:cmt:track_max_rms::Utilities +ladspa:cmt:track_peak::Utilities +ladspa:cmt:track_rms::Utilities +ladspa:cmt:vcf303::Frequency > Filters > Lowpass +ladspa:cmt:wshape_sine::Amplitude > Waveshapers +ladspa:comb_1190:comb::Frequency > Filters > Combs +ladspa:comb_1887:comb_c::Time > Delays +ladspa:comb_1887:comb_l::Time > Delays +ladspa:comb_1887:comb_n::Time > Delays +ladspa:comb_splitter_1411:combSplitter::Frequency > Filters > Combs +ladspa:const_1909:const::Utilities +ladspa:crossover_dist_1404:crossoverDist::Amplitude > Distortions +ladspa:cs_chorus:Chorus1::Time > Chorus +ladspa:cs_chorus:Chorus2::Time > Chorus +ladspa:cs_phaser:Phaser1+LFO::Time > Phasers +ladspa:cs_phaser:Phaser1::Time > Phasers +ladspa:dahdsr_2021:dahdsr_cg+t_control::Amplitude > Dynamics +ladspa:dahdsr_2021:dahdsr_g+t_audio::Amplitude > Dynamics +ladspa:dahdsr_2021:dahdsr_g+t_control::Amplitude > Dynamics +ladspa:dc_remove_1207:dcRemove::Frequency > Filters > Highpass +ladspa:decay_1886:decay::Utilities +ladspa:decimator_1202:decimator::Amplitude > Distortions +ladspa:declip_1195:declip::Amplitude > Waveshapers +ladspa:delay_1898:delay_c::Time > Delays +ladspa:delay_1898:delay_l::Time > Delays +ladspa:delay_1898:delay_n::Time > Delays +ladspa:delay:delay_5s::Time > Delays +ladspa:delayorama_1402:delayorama::Time > Delays +ladspa:difference_2030:difference_iama_oa::Utilities +ladspa:difference_2030:difference_iamc_oa::Utilities +ladspa:difference_2030:difference_icma_oa::Utilities +ladspa:difference_2030:difference_icmc_oc::Utilities +ladspa:diode_1185:diode::Amplitude > Distortions +ladspa:divider_1186:divider::Generators +ladspa:dj_eq_1901:dj_eq::Frequency > EQs +ladspa:dj_eq_1901:dj_eq_mono::Frequency > EQs +ladspa:dj_flanger_1438:djFlanger::Time > Flangers +ladspa:dyson_compress_1403:dysonCompress::Amplitude > Dynamics > Compressors +ladspa:fad_delay_1192:fadDelay::Time > Delays +ladspa:fast_lookahead_limiter_1913:fastLookaheadLimiter::Amplitude > Dynamics > Limiters +ladspa:filter:hpf::Frequency > Filters > Highpass +ladspa:filter:lpf::Frequency > Filters > Lowpass +ladspa:filters:Parametric1::Frequency > Filters +ladspa:flanger_1191:flanger::Time > Flangers +ladspa:fmod_1656:fmod_fama_oa::Frequency +ladspa:fmod_1656:fmod_famc_oa::Frequency +ladspa:fmod_1656:fmod_fcma_oa::Frequency +ladspa:fmod_1656:fmod_fcmc_oc::Frequency +ladspa:fm_osc_1415:fmOsc::Generators > Oscillators +ladspa:foldover_1213:foldover::Amplitude > Distortions +ladspa:foverdrive_1196:foverdrive::Amplitude > Distortions +ladspa:freq_tracker_1418:freqTracker::Frequency > Measurement +ladspa:g2reverb:G2reverb::Time > Reverbs +ladspa:gate_1410:gate::Amplitude > Dynamics > Gates +ladspa:giant_flange_1437:giantFlange::Time > Flangers +ladspa:gong_1424:gong::Simulators +ladspa:gong_beater_1439:gongBeater::Generators +ladspa:gsm_1215:gsm::Amplitude > Distortions +ladspa:gverb_1216:gverb::Time > Reverbs +ladspa:hard_limiter_1413:hardLimiter::Amplitude > Dynamics > Limiters +ladspa:harmonic_gen_1220:harmonicGen::Generators +ladspa:hermes_filter_1200:hermesFilter::Frequency > Filters +ladspa:highpass_iir_1890:highpass_iir::Frequency > Filters > Highpass +ladspa:hilbert_1440:hilbert::Utilities +ladspa:imp_1199:imp::Spectral +ladspa:impulse_1885:impulse_fc::Utilities +ladspa:interpolator_1660:interpolator::Utilities +ladspa:inv_1429:inv::Utilities +ladspa:jamincont_1912:jaminController::Utilities +ladspa:karaoke_1409:karaoke::Utilities +ladspa:latency_1914:artificialLatency::Utilities +ladspa:lcr_delay_1436:lcrDelay::Time > Delays +ladspa:lowpass_iir_1891:lowpass_iir::Frequency > Filters > Lowpass +ladspa:lp4pole_1671:lp4pole_faraia_oa::Frequency > Filters > Lowpass +ladspa:lp4pole_1671:lp4pole_fcrcia_oa::Frequency > Filters > Lowpass +ladspa:ls_filter_1908:lsFilter::Frequency > Filters +ladspa:matrix_ms_st_1421:matrixMSSt::Utilities +ladspa:matrix_spatialiser_1422:matrixSpatialiser::Utilities +ladspa:matrix_st_ms_1420:matrixStMS::Utilities +ladspa:mbeq_1197:mbeq::Frequency > EQs > Multiband +ladspa:mod_delay_1419:modDelay::Time > Delays +ladspa:multivoice_chorus_1201:multivoiceChorus::Time > Chorus +ladspa:mvchpf24:Mvchpf-1::Frequency > Filters +ladspa:mvclpf24:Mvclpf-1::Frequency > Filters +ladspa:mvclpf24:Mvclpf-2::Frequency > Filters +ladspa:mvclpf24:Mvclpf-3::Frequency > Filters +ladspa:mvclpf24:Mvclpf-4::Frequency > Filters +ladspa:noise:noise_white::Generators +ladspa:notch_iir_1894:notch_iir::Frequency > Filters > Notch +ladspa:phasers_1217:autoPhaser::Time > Phasers +ladspa:phasers_1217:fourByFourPole::Frequency > Filters > Allpass +ladspa:phasers_1217:lfoPhaser::Time > Phasers +ladspa:pitch_scale_1193:pitchScale::Frequency > Pitch shifters +ladspa:pitch_scale_1194:pitchScaleHQ::Frequency > Pitch shifters +ladspa:plate_1423:plate::Time > Reverbs +ladspa:pointer_cast_1910:pointerCastDistortion::Amplitude > Distortions +ladspa:product_1668:product_iaia_oa::Utilities +ladspa:product_1668:product_iaic_oa::Utilities +ladspa:product_1668:product_icic_oc::Utilities +ladspa:pulse_1645:pulse_fapa_oa::Generators > Oscillators +ladspa:pulse_1645:pulse_fapc_oa::Generators > Oscillators +ladspa:pulse_1645:pulse_fcpa_oa::Generators > Oscillators +ladspa:pulse_1645:pulse_fcpc_oa::Generators > Oscillators +ladspa:pvoc:Accumulate::Spectral +ladspa:pvoc:Exaggerate::Spectral +ladspa:pvoc:Transpose::Frequency > Pitch shifters +ladspa:quantiser100_2029:quantiser100::Utilities +ladspa:quantiser20_2027:quantiser20::Utilities +ladspa:quantiser50_2028:quantiser50::Utilities +ladspa:random_1661:random_fasa_oa::Generators +ladspa:random_1661:random_fasc_oa::Generators +ladspa:random_1661:random_fcsa_oa::Generators +ladspa:random_1661:random_fcsc_oa::Generators +ladspa:rate_shifter_1417:rateShifter::Frequency > Pitch shifters +ladspa:ratio_2034:ratio_nada_oa::Utilities +ladspa:ratio_2034:ratio_nadc_oa::Utilities +ladspa:ratio_2034:ratio_ncda_oa::Utilities +ladspa:ratio_2034:ratio_ncdc_oc::Utilities +ladspa:retro_flange_1208:retroFlange::Time > Flangers +ladspa:revdelay_1605:revdelay::Time > Delays +ladspa:ringmod_1188:ringmod_1i1o1l::Amplitude > Modulators +ladspa:ringmod_1188:ringmod_2i1o::Amplitude > Modulators +ladspa:satan_maximiser_1408:satanMaximiser::Amplitude > Dynamics +ladspa:sawtooth_1641:sawtooth_fa_oa::Generators > Oscillators +ladspa:sawtooth_1641:sawtooth_fc_oa::Generators > Oscillators +ladspa:sc1_1425:sc1::Amplitude > Dynamics > Compressors +ladspa:sc2_1426:sc2::Amplitude > Dynamics > Compressors +ladspa:sc3_1427:sc3::Amplitude > Dynamics > Compressors +ladspa:sc4_1882:sc4::Amplitude > Dynamics > Compressors +ladspa:sc4m_1916:sc4m::Amplitude > Dynamics > Compressors +ladspa:se4_1883:se4::Amplitude > Dynamics > Compressors +ladspa:sequencer16_1677:sequencer16::Simulators +ladspa:sequencer32_1676:sequencer32::Simulators +ladspa:sequencer64_1675:sequencer64::Simulators +ladspa:shaper_1187:shaper::Amplitude > Waveshapers +ladspa:sifter_1210:sifter::Amplitude > Distortions +ladspa:sin_cos_1881:sinCos::Generators > Oscillators +ladspa:sine:sine_faaa::Generators > Oscillators +ladspa:sine:sine_faac::Generators > Oscillators +ladspa:sine:sine_fcaa::Generators > Oscillators +ladspa:sine:sine_fcac::Generators > Oscillators +ladspa:single_para_1203:singlePara::Frequency > EQs > Parametric +ladspa:sinus_wavewrapper_1198:sinusWavewrapper::Amplitude > Waveshapers +ladspa:smooth_decimate_1414:smoothDecimate::Amplitude > Distortions +ladspa:split_1406:split::Utilities +ladspa:square_1643:square_fa_oa::Generators > Oscillators +ladspa:square_1643:square_fc_oa::Generators > Oscillators +ladspa:step_muxer_1212:stepMuxer::Utilities +ladspa:sum_1665:sum_iaia_oa::Utilities +ladspa:sum_1665:sum_iaic_oa::Utilities +ladspa:sum_1665:sum_icic_oc::Utilities +ladspa:surround_encoder_1401:surroundEncoder::Utilities +ladspa:svf_1214:svf::Frequency > Filters +ladspa:sync_pulse_2023:syncpulse_fapaga_oa::Generators > Oscillators +ladspa:sync_pulse_2023:syncpulse_fcpcga_oa::Generators > Oscillators +ladspa:sync_square_1678:syncsquare_faga_oa::Generators > Oscillators +ladspa:sync_square_1678:syncsquare_fcga_oa::Generators > Oscillators +ladspa:tap_autopan:tap_autopan::Amplitude > Modulators +ladspa:tap_chorusflanger:tap_chorusflanger::Time > Flangers +ladspa:tap_deesser:tap_deesser::Amplitude > Dynamics +ladspa:tap_doubler:tap_doubler::Simulators +ladspa:tap_dynamics_m:tap_dynamics_m::Amplitude > Dynamics +ladspa:tap_dynamics_st:tap_dynamics_st::Amplitude > Dynamics +ladspa:tap_echo:tap_stereo_echo::Time > Delays +ladspa:tape_delay_1211:tapeDelay::Time > Delays +ladspa:tap_eqbw:tap_equalizer_bw::Frequency > EQs +ladspa:tap_eq:tap_equalizer::Frequency > EQs +ladspa:tap_limiter:tap_limiter::Amplitude > Dynamics > Limiters +ladspa:tap_pinknoise:tap_pinknoise::Utilities +ladspa:tap_pitch:tap_pitch::Frequency > Pitch shifters +ladspa:tap_reflector:tap_reflector::Time +ladspa:tap_reverb:tap_reverb::Time > Reverbs +ladspa:tap_rotspeak:tap_rotspeak::Simulators +ladspa:tap_sigmoid:tap_sigmoid::Amplitude > Distortions +ladspa:tap_tremolo:tap_tremolo::Amplitude > Modulators +ladspa:tap_tubewarmth:tap_tubewarmth::Simulators +ladspa:tap_vibrato:tap_vibrato::Amplitude > Modulators +ladspa:tracker_2025:tracker_gaaadaia_oa::Amplitude > Waveshapers +ladspa:tracker_2025:tracker_gaacdcia_oa::Amplitude > Waveshapers +ladspa:transient_1206:transient::Amplitude > Dynamics +ladspa:triangle_1649:triangle_fasa_oa::Generators > Oscillators +ladspa:triangle_1649:triangle_fasc_oa::Generators > Oscillators +ladspa:triangle_1649:triangle_fcsa_oa::Generators > Oscillators +ladspa:triangle_1649:triangle_fcsc_oa::Generators > Oscillators +ladspa:triple_para_1204:triplePara::Frequency > EQs > Parametric +ladspa:valve_1209:valve::Amplitude > Distortions +ladspa:valve_rect_1405:valveRect::Amplitude > Distortions +ladspa:vco_sawpulse:Pulse-VCO::Generators > Oscillators +ladspa:vco_sawpulse:Rec-VCO::Generators > Oscillators +ladspa:vco_sawpulse:Saw-VCO::Generators > Oscillators +ladspa:vynil_1905:vynil::Amplitude > Distortions +ladspa:wave_terrain_1412:waveTerrain::Generators > Oscillators +ladspa:xfade_1915:xfade4::Amplitude > Dynamics > Compressors +ladspa:zm1_1428:zm1::Utilities Copied: sonic-visualiser/trunk/misc/sv.pch (from rev 1688, sonic-visualiser/trunk/sv.pch) =================================================================== --- sonic-visualiser/trunk/misc/sv.pch (rev 0) +++ sonic-visualiser/trunk/misc/sv.pch 2010-05-05 12:32:20 UTC (rev 1689) @@ -0,0 +1,90 @@ +#ifndef _SV_PCH_H_ +#include <iostream> +#include <vector> +#include <map> +#include <set> +#include <algorithm> +#include <QAbstractItemModel> +#include <QAction> +#include <QApplication> +#include <QBitmap> +#include <QCheckBox> +#include <QColor> +#include <QColormap> +#include <QComboBox> +#include <QCursor> +#include <QDateTime> +#include <QDesktopWidget> +#include <QDial> +#include <QDialog> +#include <QDir> +#include <QDoubleSpinBox> +#include <QFile> +#include <QFileDialog> +#include <QFileInfo> +#include <QFont> +#include <QFrame> +#include <QGridLayout> +#include <QGroupBox> +#include <QHBoxLayout> +#include <QIcon> +#include <QImage> +#include <QInputDialog> +#include <QIODevice> +#include <QLabel> +#include <QLayout> +#include <QLineEdit> +#include <QList> +#include <QLocale> +#include <QMainWindow> +#include <QMenu> +#include <QMenuBar> +#include <QMessageBox> +#include <QMetaType> +#include <QMouseEvent> +#include <QMutex> +#include <QMutexLocker> +#include <QObject> +#include <QPaintDevice> +#include <QPainter> +#include <QPainterPath> +#include <QPaintEvent> +#include <QPalette> +#include <QPixmap> +#include <QPoint> +#include <QPointer> +#include <QProcess> +#include <QProgressBar> +#include <QProgressDialog> +#include <QPushButton> +#include <QRadioButton> +#include <QRect> +#include <QRegExp> +#include <QScrollArea> +#include <QSessionManager> +#include <QSettings> +#include <QShortcut> +#include <QSpinBox> +#include <QSplitter> +#include <QStackedWidget> +#include <QStatusBar> +#include <QString> +#include <QStringList> +#include <QTabBar> +#include <QTableWidget> +#include <QTabWidget> +#include <QtCore/qglobal.h> +#include <QTextStream> +#include <QThread> +#include <QTime> +#include <QTimer> +#include <QToolBar> +#include <QTranslator> +#include <QTreeView> +#include <QUrl> +#include <QVariant> +#include <QVBoxLayout> +#include <QWaitCondition> +#include <QWheelEvent> +#include <QWidget> +#endif Copied: sonic-visualiser/trunk/misc/sv.prf.osx (from rev 1688, sonic-visualiser/trunk/sv.prf.osx) =================================================================== --- sonic-visualiser/trunk/misc/sv.prf.osx (rev 0) +++ sonic-visualiser/trunk/misc/sv.prf.osx 2010-05-05 12:32:20 UTC (rev 1689) @@ -0,0 +1,154 @@ + +### +### BEGIN CONFIGURABLE STUFF +### + +# If you're building for PPC, change the x86 to ppc here: +# +CONFIG += release precompile_header x86 + + +# Whizzy optimization flags here. +# +# (Don't use -ffast-math -- it does make things faster, but it +# prevents isnan and isinf from working, and we need those.) +# +QMAKE_CXXFLAGS_RELEASE += -DNDEBUG -DNO_TIMING -O3 + + +# Mandatory libraries. If you don't have all of these, go away and +# install the ones you're missing. + +DEFINES += HAVE_BZ2 # Compression library (for session files) +DEFINES += HAVE_FFTW3F # Fourier transforms +DEFINES += HAVE_VAMP # Vamp plugin API +DEFINES += HAVE_VAMP_HOSTSDK # Vamp plugin host SDK +DEFINES += HAVE_SAMPLERATE # Resampling library +DEFINES += HAVE_RUBBERBAND # Time stretcher + +INCLUDEPATH += ../include +LIBPATH += ../lib + +LIBS += -lvamp-hostsdk -lrubberband -lfftw3 -lfftw3f -lsamplerate -lbz2 + + +# Optional libraries follow. + +# Libsndfile. Import for basic audio file format (.wav etc). You +# really need this unless you're using QuickTime. Even if you are, +# you might like to have this as well. +# +DEFINES += HAVE_SNDFILE # Audio file import +LIBS += -lsndfile + +# QuickTime. This library is optional, for audio file import. Note +# that if you compile in support for either or both of libmad and +# libsndfile as well as for QuickTime, libmad and libsndfile will be +# used in preference to QuickTime where applicable. For licensing +# reasons you may not redistribute binaries of Sonic Visualiser built +# with QuickTime support, except for platforms which include QuickTime +# as a standard part of the platform (i.e. OS/X). +# +DEFINES += HAVE_QUICKTIME +LIBS += -framework QuickTime + +# PortAudio for audio playback. If you don't have it, comment these +# out -- but you will need either PortAudio or JACK if you want any +# sound. We support PortAudio v18 and v19; the default is v19. If +# you want to use v18, uncomment the third line here as well. +# +DEFINES += HAVE_PORTAUDIO +LIBS += -lportaudio +#DEFINES += HAVE_PORTAUDIO_V18 + +# JACK for audio playback. If you don't have it, comment this out. +# +DEFINES += HAVE_JACK +LIBS += -ljack + +# Oggz and Fishsound for Ogg file import. If you don't have them, +# comment these out. +# +DEFINES += HAVE_OGGZ +DEFINES += HAVE_FISHSOUND +LIBS += -loggz -lfishsound + +# MAD and id3tag for MP3 file import and tag support. If you don't +# have these, comment these out (you can also comment out id3tag but +# leave MAD in if you want). +# +DEFINES += HAVE_MAD +DEFINES += HAVE_ID3TAG +LIBS += -lmad -lid3tag + + +### +### END CONFIGURABLE STUFF +### + +contains(SV_UNIT_PACKAGES, portaudio) { + contains(DEFINES, HAVE_PORTAUDIO) { + message("Including PortAudio support for audio playback") + } else { + message("WARNING: PortAudio audio playback support will not be included") + } +} + +contains(SV_UNIT_PACKAGES, jack) { + contains(DEFINES, HAVE_JACK) { + message("Including JACK support for audio playback") + } else { + !win32:message("WARNING: JACK audio playback support will not be included") + !contains(DEFINES, HAVE_PORTAUDIO) { + message("WARNING: No audio playback support is configured!") + } + } +} + +contains(SV_UNIT_PACKAGES, oggz) { + contains(DEFINES, HAVE_OGGZ) { + contains(DEFINES, HAVE_FISHSOUND) { + message("Including .ogg file import") + } else { + message("WARNING: .ogg file import will not be included") + } + } else { + message("WARNING: .ogg file import will not be included") + } +} + +contains(SV_UNIT_PACKAGES, mad) { + contains(DEFINES, HAVE_MAD) { + message("Including .mp3 file import") + } else { + message("WARNING: .mp3 file import will not be included") + } +} + +contains(SV_UNIT_PACKAGES, id3tag) { + contains(DEFINES, HAVE_ID3TAG) { + message("Including .mp3 file tag support") + } else { + message("WARNING: .mp3 file tag support will not be included") + } +} + +contains(SV_UNIT_PACKAGES, fftw3f) { + contains(DEFINES, HAVE_FFTW3F) { + message("Using FFTW3f") + } else { + message("WARNING: FFTW3f not available, using slower FFT implementation") + } +} + +contains(SV_UNIT_PACKAGES, vamp):!contains(DEFINES, HAVE_VAMP):error("Vamp plugin API required") +contains(SV_UNIT_PACKAGES, vamp-hostsdk):!contains(DEFINES, HAVE_VAMP_HOSTSDK):error("Vamp plugin host SDK required") +contains(SV_UNIT_PACKAGES, bz2):!contains(DEFINES, HAVE_BZ2):error("bzip2 library required") +contains(SV_UNIT_PACKAGES, sndfile):!contains(DEFINES, HAVE_SNDFILE):error("sndfile library required") +contains(SV_UNIT_PACKAGES, samplerate):!contains(DEFINES, HAVE_SAMPLERATE):error("libsamplerate required") + +VERSION_CFLAGS += -D"'"SVNREV='"'$$system(svnversion -n .)'"'"'" + +QMAKE_CXXFLAGS_DEBUG += -DBUILD_DEBUG $$VERSION_CFLAGS +QMAKE_CXXFLAGS_RELEASE += -DBUILD_RELEASE $$VERSION_CFLAGS + Copied: sonic-visualiser/trunk/misc/sv_mingw.prf (from rev 1688, sonic-visualiser/trunk/sv_mingw.prf) =================================================================== --- sonic-visualiser/trunk/misc/sv_mingw.prf (rev 0) +++ sonic-visualiser/trunk/misc/sv_mingw.prf 2010-05-05 12:32:20 UTC (rev 1689) @@ -0,0 +1,174 @@ + +### +### BEGIN CONFIGURABLE STUFF +### + +CONFIG += release +# precompile_header + +# Whizzy optimization flags here +# +#linux-g++:QMAKE_CXXFLAGS_RELEASE += -DNDEBUG -DNO_TIMING -O2 -march=pentium3 -mfpmath=sse -ffast-math +QMAKE_CXXFLAGS_RELEASE += -DNDEBUG -DNO_TIMING -O2 +# QMAKE_CXXFLAGS_RELEASE += -O3 -march=pentium4 -mfpmath=sse -msse -msse2 -ffast-math -fomit-frame-pointer +# QMAKE_CXXFLAGS_RELEASE += -O3 -march=athlon-mp -mfpmath=sse -fomit-frame-pointer + +# To do a static build with gcc on Linux +# +LIBS += -Wl,-Bstatic +DEFINES += BUILD_STATIC + +#PRECOMPILED_HEADER = /work/sonic-visualiser/pch.h + + +# These are testable on platforms with pkg-config. If you don't have +# pkg-config, edit the "else" block below (see comments). +# +PKGCONFIG_PACKAGES = vamp vamp-sdk oggz fishsound mad fftw3f sndfile samplerate lrdf raptor jack liblo + +# No pkg-config test for the bzip2 library. This library is required. +# If you don't have it, install it. +# +DEFINES += HAVE_BZ2 +INCLUDEPATH += ../../packages/bzip2-1.0.4 +LIBS += -L../../packages/bzip2-1.0.4 -lbz2 + +# No pkg-config test for PortAudio. If you don't have it, comment these out. +# We support PortAudio v18 and v19; the default is v19. If you want to use +# v18, see below. +# +DEFINES += HAVE_PORTAUDIO +INCLUDEPATH += ../../packages/portaudio/include +LIBS += -L../../packages/portaudio -lportaudio +# +# If you want to use PortAudio v18, uncomment this line (as well as +# HAVE_PORTAUDIO above): +# +#DEFINES += HAVE_PORTAUDIO_v18 + + +#!system(pkg-config --atleast-pkgconfig-version=0) { + + # If you don't have pkg-config, comment out (or install) any of the + # following that you lack. If you have pkg-config, you should be + # able to ignore all this provided the right symbols are defined + # in PKGCONFIG_PACKAGES above. + # +# DEFINES += HAVE_JACK # Optional -- an audio playback option +# DEFINES += HAVE_OGGZ # Optional -- to import .ogg files +# DEFINES += HAVE_FISHSOUND # Optional -- to import .ogg files + DEFINES += HAVE_MAD # Optional -- to import .mp3 files + # +# LIBS += -ljack +# LIBS += -loggz -lfishsound + INCLUDEPATH += ../../packages/libmad-0.15.1b + LIBS += -L../../packages/libmad-0.15.1b -lmad + + # These ones are mandatory. + # If you don't have them, you'll have to find them. + # + DEFINES += HAVE_VAMP HAVE_VAMP_SDK # Required -- for analysis plugins + DEFINES += HAVE_FFTW3F # Required -- for all sorts of things + DEFINES += HAVE_SNDFILE # Required -- to import and export .wav files + DEFINES += HAVE_SAMPLERATE # Required -- for resampling + # +# INCLUDEPATH += ../../vamp-plugin-sdk ../../packages/fftw-3.1.2-dll ../../packages/libsndfile-1_0_17 ../../packages/libsamplerate-0.1.2/src +# LIBS += -L../../vamp-plugin-sdk/vamp-sdk -L../../packages/fftw-3.1.2-dll -L../../packages/libsndfile-1.0.17 -L../../packages/libsamplerate-0.1.2 + INCLUDEPATH += ../../vamp-plugin-sdk ../../packages/fftw-3.1.2-dll ../../packages/libsndfile-1.0.17/src ../../packages/libsamplerate-0.1.2/src + LIBS += -L../../vamp-plugin-sdk/vamp-sdk -L../../packages/fftw-3.1.2-dll -L../../packages/libsndfile-1.0.17 -L../../packages/libsamplerate-0.1.2 + # + LIBS += -lvamp-sdk -Wl,-Bdynamic -lfftw3f-3 -Wl,-Bstatic -lsndfile -lsamplerate +# LIBS += -lvamp-sdk -Wl,-Bdynamic -Wl,-Bstatic -lsndfile -lsamplerate +# LIBS += -lvamp-sdk -lsndfile -lsamplerate +#} + +### +### END CONFIGURABLE STUFF +### + + +#system(pkg-config --atleast-pkgconfig-version=0) { +linux-g++ { + + # If you have pkg-config, this block should locate all packages + # for you provided they have .pc files and are listed in + # PKGCONFIG_PACKAGES. + # + for(PKG, PKGCONFIG_PACKAGES) { + contains(SV_UNIT_PACKAGES, $$PKG) { + system(pkg-config --exists $$PKG) { + VERSION = $$system(pkg-config --modversion $$PKG) + PACKAGE_SYMBOL = $$system(echo $$PKG | tr '[a-z-]' '[A-Z_]') + VERSION_SYMBOL = $$PACKAGE_SYMBOL'_VERSION' + DEFINES += HAVE_$$PACKAGE_SYMBOL + QMAKE_CXXFLAGS += -D"'"$$VERSION_SYMBOL='"'$$VERSION'"'"'" + QMAKE_CXXFLAGS += $$system(pkg-config --cflags $$PKG) + LIBS += $$system(pkg-config --libs $$PKG) + message("Using pkg-config package $$PKG with version $$VERSION") + } else { + message("WARNING: Failed to find pkg-config package $$PKG") + } + } + } +} + +contains(SV_UNIT_PACKAGES, portaudio) { + contains(DEFINES, HAVE_PORTAUDIO) { + message("Including PortAudio support for audio playback") + } else { + message("WARNING: PortAudio audio playback support will not be included") + } +} + +contains(SV_UNIT_PACKAGES, jack) { + contains(DEFINES, HAVE_JACK) { + message("Including JACK support for audio playback") + } else { + !win32:message("WARNING: JACK audio playback support will not be included") + !contains(DEFINES, HAVE_PORTAUDIO) { + message("WARNING: No audio playback support is configured!") + } + } +} + +contains(SV_UNIT_PACKAGES, oggz) { + contains(DEFINES, HAVE_OGGZ) { + contains(DEFINES, HAVE_FISHSOUND) { + message("Including .ogg file import") + } else { + message("WARNING: .ogg file import will not be included") + } + } else { + message("WARNING: .ogg file import will not be included") + } +} + +contains(SV_UNIT_PACKAGES, mad) { + contains(DEFINES, HAVE_MAD) { + message("Including .mp3 file import") + } else { + message("WARNING: .mp3 file import will not be included") + } +} + +contains(SV_UNIT_PACKAGES, vamp):!contains(DEFINES, HAVE_VAMP):error("Vamp plugin API required") +contains(SV_UNIT_PACKAGES, vamp-sdk):!contains(DEFINES, HAVE_VAMP_SDK):error("Vamp plugin SDK required") +contains(SV_UNIT_PACKAGES, bz2):!contains(DEFINES, HAVE_BZ2):error("bzip2 library required") +#contains(SV_UNIT_PACKAGES, fftw3f):!contains(DEFINES, HAVE_FFTW3F):error("FFTW3f library required") +contains(SV_UNIT_PACKAGES, sndfile):!contains(DEFINES, HAVE_SNDFILE):error("sndfile library required") +contains(SV_UNIT_PACKAGES, samplerate):!contains(DEFINES, HAVE_SAMPLERATE):error("libsamplerate required") + +#VERSION_CFLAGS += -D"'"SVNREV='"'$$system(svnversion -n .)'"'"'" + +QMAKE_CXXFLAGS_DEBUG += -DBUILD_DEBUG $$VERSION_CFLAGS +QMAKE_CXXFLAGS_RELEASE += -DBUILD_RELEASE $$VERSION_CFLAGS + +linux-g++ { + contains(DEFINES, BUILD_STATIC) { + LIBS += -lFLAC -ldl + } +} + +# Restore dynamic linkage, in case we went static earlier +linux-g++:LIBS += -Wl,-Bdynamic + Copied: sonic-visualiser/trunk/misc/update-i18n.sh (from rev 1688, sonic-visualiser/trunk/update-i18n.sh) =================================================================== --- sonic-visualiser/trunk/misc/update-i18n.sh (rev 0) +++ sonic-visualiser/trunk/misc/update-i18n.sh 2010-05-05 12:32:20 UTC (rev 1689) @@ -0,0 +1,16 @@ +#!/bin/sh + +LUPDATE="lupdate-qt4" +LRELEASE="lrelease-qt4" + +LANGUAGES="ru en_GB en_US" + +for LANG in $LANGUAGES; do + $LUPDATE */*.h */*/*.h */*.cpp */*/*.cpp \ + -ts sv/i18n/sonic-visualiser_$LANG.ts +done + +for LANG in $LANGUAGES; do + $LRELEASE sv/i18n/sonic-visualiser_$LANG.ts +done + Deleted: sonic-visualiser/trunk/sv.pch =================================================================== --- sonic-visualiser/trunk/sv.pch 2010-04-07 11:38:56 UTC (rev 1688) +++ sonic-visualiser/trunk/sv.pch 2010-05-05 12:32:20 UTC (rev 1689) @@ -1,90 +0,0 @@ -#ifndef _SV_PCH_H_ -#include <iostream> -#include <vector> -#include <map> -#include <set> -#include <algorithm> -#include <QAbstractItemModel> -#include <QAction> -#include <QApplication> -#include <QBitmap> -#include <QCheckBox> -#include <QColor> -#include <QColormap> -#include <QComboBox> -#include <QCursor> -#include <QDateTime> -#include <QDesktopWidget> -#include <QDial> -#include <QDialog> -#include <QDir> -#include <QDoubleSpinBox> -#include <QFile> -#include <QFileDialog> -#include <QFileInfo> -#include <QFont> -#include <QFrame> -#include <QGridLayout> -#include <QGroupBox> -#include <QHBoxLayout> -#include <QIcon> -#include <QImage> -#include <QInputDialog> -#include <QIODevice> -#include <QLabel> -#include <QLayout> -#include <QLineEdit> -#include <QList> -#include <QLocale> -#include <QMainWindow> -#include <QMenu> -#include <QMenuBar> -#include <QMessageBox> -#include <QMetaType> -#include <QMouseEvent> -#include <QMutex> -#include <QMutexLocker> -#include <QObject> -#include <QPaintDevice> -#include <QPainter> -#include <QPainterPath> -#include <QPaintEvent> -#include <QPalette> -#include <QPixmap> -#include <QPoint> -#include <QPointer> -#include <QProcess> -#include <QProgressBar> -#include <QProgressDialog> -#include <QPushButton> -#include <QRadioButton> -#include <QRect> -#include <QRegExp> -#include <QScrollArea> -#include <QSessionManager> -#include <QSettings> -#include <QShortcut> -#include <QSpinBox> -#include <QSplitter> -#include <QStackedWidget> -#include <QStatusBar> -#include <QString> -#include <QStringList> -#include <QTabBar> -#include <QTableWidget> -#include <QTabWidget> -#include <QtCore/qglobal.h> -#include <QTextStream> -#include <QThread> -#include <QTime> -#include <QTimer> -#include <QToolBar> -#include <QTranslator> -#include <QTreeView> -#include <QUrl> -#include <QVariant> -#include <QVBoxLayout> -#include <QWaitCondition> -#include <QWheelEvent> -#include <QWidget> -#endif Deleted: sonic-visualiser/trunk/sv.prf.osx =================================================================== --- sonic-visualiser/trunk/sv.prf.osx 2010-04-07 11:38:56 UTC (rev 1688) +++ sonic-visualiser/trunk/sv.prf.osx 2010-05-05 12:32:20 UTC (rev 1689) @@ -1,154 +0,0 @@ - -### -### BEGIN CONFIGURABLE STUFF -### - -# If you're building for PPC, change the x86 to ppc here: -# -CONFIG += release precompile_header x86 - - -# Whizzy optimization flags here. -# -# (Don't use -ffast-math -- it does make things faster, but it -# prevents isnan and isinf from working, and we need those.) -# -QMAKE_CXXFLAGS_RELEASE += -DNDEBUG -DNO_TIMING -O3 - - -# Mandatory libraries. If you don't have all of these, go away and -# install the ones you're missing. - -DEFINES += HAVE_BZ2 # Compression library (for session files) -DEFINES += HAVE_FFTW3F # Fourier transforms -DEFINES += HAVE_VAMP # Vamp plugin API -DEFINES += HAVE_VAMP_HOSTSDK # Vamp plugin host SDK -DEFINES += HAVE_SAMPLERATE # Resampling library -DEFINES += HAVE_RUBBERBAND # Time stretcher - -INCLUDEPATH += ../include -LIBPATH += ../lib - -LIBS += -lvamp-hostsdk -lrubberband -lfftw3 -lfftw3f -lsamplerate -lbz2 - - -# Optional libraries follow. - -# Libsndfile. Import for basic audio file format (.wav etc). You -# really need this unless you're using QuickTime. Even if you are, -# you might like to have this as well. -# -DEFINES += HAVE_SNDFILE # Audio file import -LIBS += -lsndfile - -# QuickTime. This library is optional, for audio file import. Note -# that if you compile in support for either or both of libmad and -# libsndfile as well as for QuickTime, libmad and libsndfile will be -# used in preference to QuickTime where applicable. For licensing -# reasons you may not redistribute binaries of Sonic Visualiser built -# with QuickTime support, except for platforms which include QuickTime -# as a standard part of the platform (i.e. OS/X). -# -DEFINES += HAVE_QUICKTIME -LIBS += -framework QuickTime - -# PortAudio for audio playback. If you don't have it, comment these -# out -- but you will need either PortAudio or JACK if you want any -# sound. We support PortAudio v18 and v19; the default is v19. If -# you want to use v18, uncomment the third line here as well. -# -DEFINES += HAVE_PORTAUDIO -LIBS += -lportaudio -#DEFINES += HAVE_PORTAUDIO_V18 - -# JACK for audio playback. If you don't have it, comment this out. -# -DEFINES += HAVE_JACK -LIBS += -ljack - -# Oggz and Fishsound for Ogg file import. If you don't have them, -# comment these out. -# -DEFINES += HAVE_OGGZ -DEFINES += HAVE_FISHSOUND -LIBS += -loggz -lfishsound - -# MAD and id3tag for MP3 file import and tag support. If you don't -# have these, comment these out (you can also comment out id3tag but -# leave MAD in if you want). -# -DEFINES += HAVE_MAD -DEFINES += HAVE_ID3TAG -LIBS += -lmad -lid3tag - - -### -### END CONFIGURABLE STUFF -### - -contains(SV_UNIT_PACKAGES, portaudio) { - contains(DEFINES, HAVE_PORTAUDIO) { - message("Including PortAudio support for audio playback") - } else { - message("WARNING: PortAudio audio playback support will not be included") - } -} - -contains(SV_UNIT_PACKAGES, jack) { - contains(DEFINES, HAVE_JACK) { - message("Including JACK support for audio playback") - } else { - !win32:message("WARNING: JACK audio playback support will not be included") - !contains(DEFINES, HAVE_PORTAUDIO) { - message("WARNING: No audio playback support is configured!") - } - } -} - -contains(SV_UNIT_PACKAGES, oggz) { - contains(DEFINES, HAVE_OGGZ) { - contains(DEFINES, HAVE_FISHSOUND) { - message("Including .ogg file import") - } else { - message("WARNING: .ogg file import will not be included") - } - } else { - message("WARNING: .ogg file import will not be included") - } -} - -contains(SV_UNIT_PACKAGES, mad) { - contains(DEFINES, HAVE_MAD) { - message("Including .mp3 file import") - } else { - message("WARNING: .mp3 file import will not be included") - } -} - -contains(SV_UNIT_PACKAGES, id3tag) { - contains(DEFINES, HAVE_ID3TAG) { - message("Including .mp3 file tag support") - } else { - message("WARNING: .mp3 file tag support will not be included") - } -} - -contains(SV_UNIT_PACKAGES, fftw3f) { - contains(DEFINES, HAVE_FFTW3F) { - message("Using FFTW3f") - } else { - message("WARNING: FFTW3f not available, using slower FFT implementation") - } -} - -contains(SV_UNIT_PACKAGES, vamp):!contains(DEFINES, HAVE_VAMP):error("Vamp plugin API required") -contains(SV_UNIT_PACKAGES, vamp-hostsdk):!contains(DEFINES, HAVE_VAMP_HOSTSDK):error("Vamp plugin host SDK required") -contains(SV_UNIT_PACKAGES, bz2):!contains(DEFINES, HAVE_BZ2):error("bzip2 library required") -contains(SV_UNIT_PACKAGES, sndfile):!contains(DEFINES, HAVE_SNDFILE):error("sndfile library required") -contains(SV_UNIT_PACKAGES, samplerate):!contains(DEFINES, HAVE_SAMPLERATE):error("libsamplerate required") - -VERSION_CFLAGS += -D"'"SVNREV='"'$$system(svnversion -n .)'"'"'" - -QMAKE_CXXFLAGS_DEBUG += -DBUILD_DEBUG $$VERSION_CFLAGS -QMAKE_CXX... [truncated message content] |