Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove VAMP plugin support. #926

Merged
merged 47 commits into from
Dec 30, 2018
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
2147838
Delete most VAMP code and move Queen Mary DSP library to lib/qm-dsp.
rryan Jan 29, 2016
28f2661
Remove VAMP from NSIS.
rryan Jan 29, 2016
1b74041
Remove VAMP from Travis and README.
rryan Jan 29, 2016
d1b46aa
Introduce interface for key and beat detection plugins.
rryan Jan 31, 2016
0e5ee97
Use AnalyzerPlugin interface in AnalyzerKey/AnalyzerBeats and prefere…
rryan Jan 31, 2016
b3a271a
Add helper for performing mono downmixing, conversion and overlapped
rryan Jan 31, 2016
1ddf808
Add AnalyzerQueenMaryKey.
rryan Jan 31, 2016
1f5a60b
Add AnalyzerQueenMaryBeats and AnalyzerSoundTouchBeats.
rryan Jan 31, 2016
73bd4a5
Merge branch 'master' into remove-vamp
rryan Apr 17, 2016
4675155
Remove VAMP from .travis.yml.
rryan Apr 17, 2016
8be4027
Merge branch 'master' into remove-vamp
rryan Apr 17, 2016
8bcbf81
Remove manual setting/getting of beat detector preferences.
rryan Apr 17, 2016
515428f
Remove manual setting/getting of key detector preferences.
rryan Apr 17, 2016
af26041
Don't hard-code plugin ids.
rryan Apr 17, 2016
56a3363
Use common default values.
rryan Apr 17, 2016
d4e03d1
Oops.
rryan Apr 17, 2016
f841629
Merge branch 'master' into remove-vamp
rryan May 6, 2016
4f9e690
Use consistent quotes.
rryan May 6, 2016
9ef88ab
Merge branch 'master' into remove-vamp
rryan May 23, 2016
19591f7
Rename default accessor to setNameToDefault.
rryan May 23, 2016
49c84be
Note, don't warn.
rryan May 23, 2016
db8cc6a
Drop some comments and remove template in DownmixAndOverlapHelper.
rryan May 23, 2016
7e4d9f9
Merge branch 'master' into remove-vamp
rryan Oct 16, 2018
1fcbf31
Fix the build.
rryan Oct 16, 2018
c7a1c76
Reword block to window throughout.
rryan Oct 16, 2018
74c06ac
Don't build modules we don't need from qm-dsp.
rryan Oct 16, 2018
0af7131
Remove vamppluginadapter.h/cpp.
rryan Oct 16, 2018
cfb18c0
Merge remote-tracking branch 'mixxxdj/master' into remove-vamp
rryan Oct 16, 2018
ceb1aa4
Remove plugins directory from Wix script.
rryan Oct 17, 2018
cfa1f63
Remove const qualifiers on AnalyzerPlugin members to avoid deleting t…
rryan Oct 17, 2018
d0e2d2d
Merge remote-tracking branch 'mixxxdj/master' into remove-vamp
rryan Oct 26, 2018
c05360f
Don't sign non-existent vamp plugins.
rryan Oct 26, 2018
974bb2a
Merge remote-tracking branch 'mixxxdj/master' into remove-vamp
rryan Dec 26, 2018
1a727d2
Disable key analysis options when key analysis is disabled.
rryan Dec 26, 2018
d470da1
Disable fast analysis when non-constant beatgrids are enabled.
rryan Dec 26, 2018
352d8c3
Re-implement fast analysis for AnalyzerBeats and AnalyzerKey.
rryan Dec 26, 2018
260071e
Fix default the beat detector to be the QMUL beat tracker.
rryan Dec 27, 2018
19a8ca6
Merge remote-tracking branch 'mixxxdj/master' into remove-vamp
rryan Dec 30, 2018
d4efc86
Move analyzer constants out of analyzerthread.cpp to analyzer/constan…
rryan Dec 30, 2018
ce067ea
Add a constant for the number of seconds to analyze in fast analysis …
rryan Dec 30, 2018
2eb5dd5
Move fast analysis samples calculation to init() and use analyzer/con…
rryan Dec 30, 2018
254a563
Use constants and do not use non-static member initializers.
rryan Dec 30, 2018
b1e5f12
Use size_t for kWindowSize to be consistent with kStepSize.
rryan Dec 30, 2018
116145a
Remove VAMP from SConstruct.
rryan Dec 30, 2018
2d17ed4
Remove VAMP from appveyor.yml.
rryan Dec 30, 2018
f7afd37
Remove logging and unused constant.
rryan Dec 30, 2018
630613f
Remove unused fftw dependency.
rryan Dec 30, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,10 @@ addons:
- libtag1-dev
- libupower-glib-dev
- libusb-1.0-0-dev
- libvamp-hostsdk3
- libwavpack-dev
- portaudio19-dev
- protobuf-compiler
- scons
- vamp-plugin-sdk
before_install:
# Virtual X, needed for analyzer waveform tests
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0 ; fi
Expand Down
1 change: 0 additions & 1 deletion README
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ Mixxx has the following dependencies:
- libusb-1.0
- libmp4v2 (optional, m4a support)
- libfaad (optional, m4a support)
- vamp-plugin-sdk (optional, internal version included)
- libchromaprint
- librubberband

Expand Down
11 changes: 1 addition & 10 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ available_features = [features.Mad,
features.WavPack,
features.ModPlug,
features.TestSuite,
features.Vamp,
features.AutoDjCrates,
features.ColorDiagnostics,
features.AddressSanitizer,
Expand Down Expand Up @@ -91,18 +90,10 @@ soundsource_plugins = SConscript(
File('plugins/SConscript'), variant_dir=Dir(build.build_dir + "/plugins"),
duplicate=0, exports=['build'])

#Build Vamp minimal plugins
#VariantDir("vamp-plugins", "src", duplicate=0)
mixxxminimal_depends = [ depends.SoundTouch ]
mixxxminimal_plugins = SConscript(
File('vamp-plugins/SConscript'),
variant_dir=Dir(build.build_dir + "/vamp-plugins"),
duplicate=0, exports=['build', 'mixxxminimal_depends'])

# Setup and build the "mixxx" executable target. Also sets up our install
# targets for each platform.
SConscript(File('src/SConscript'), variant_dir=Dir(build.build_dir), duplicate=0,
exports=['build', 'sources', 'soundsource_plugins', 'mixxxminimal_plugins'])
exports=['build', 'sources', 'soundsource_plugins'])

#On OS X, if the bundle has been built, copy it up:
#Command("Mixxx.app", os.path.join(build.build_dir, "Mixxx.app"), Copy("$TARGET", "$SOURCE"))
1 change: 0 additions & 1 deletion build/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ Build-Depends: debhelper (>= 4.0.0),
libtag1-dev,
libshout-dev,
libqtwebkit-dev,
vamp-plugin-sdk,
libprotobuf-dev,
protobuf-compiler,
libusb-1.0-0-dev,
Expand Down
64 changes: 62 additions & 2 deletions build/depends.py
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,58 @@ def configure(self, build, conf, env=None):
"Could not find librubberband or its development headers.")


class QueenMaryDsp(Dependence):
def sources(self, build):
return ["#lib/qm-dsp/base/KaiserWindow.cpp",
"#lib/qm-dsp/base/Pitch.cpp",
"#lib/qm-dsp/base/SincWindow.cpp",
"#lib/qm-dsp/dsp/chromagram/CQprecalc.cpp",
"#lib/qm-dsp/dsp/chromagram/Chromagram.cpp",
"#lib/qm-dsp/dsp/chromagram/ConstantQ.cpp",
"#lib/qm-dsp/dsp/keydetection/GetKeyMode.cpp",
"#lib/qm-dsp/dsp/mfcc/MFCC.cpp",
"#lib/qm-dsp/dsp/onsets/DetectionFunction.cpp",
"#lib/qm-dsp/dsp/onsets/PeakPicking.cpp",
"#lib/qm-dsp/dsp/phasevocoder/PhaseVocoder.cpp",
"#lib/qm-dsp/dsp/rateconversion/Decimator.cpp",
"#lib/qm-dsp/dsp/rateconversion/DecimatorB.cpp",
"#lib/qm-dsp/dsp/rateconversion/Resampler.cpp",
"#lib/qm-dsp/dsp/rhythm/BeatSpectrum.cpp",
#"#lib/qm-dsp/dsp/segmentation/ClusterMeltSegmenter.cpp",
#"#lib/qm-dsp/dsp/segmentation/Segmenter.cpp",
#"#lib/qm-dsp/dsp/segmentation/cluster_melt.c",
#"#lib/qm-dsp/dsp/segmentation/cluster_segmenter.c",
"#lib/qm-dsp/dsp/signalconditioning/DFProcess.cpp",
"#lib/qm-dsp/dsp/signalconditioning/FiltFilt.cpp",
"#lib/qm-dsp/dsp/signalconditioning/Filter.cpp",
"#lib/qm-dsp/dsp/signalconditioning/Framer.cpp",
"#lib/qm-dsp/dsp/tempotracking/DownBeat.cpp",
"#lib/qm-dsp/dsp/tempotracking/TempoTrack.cpp",
"#lib/qm-dsp/dsp/tempotracking/TempoTrackV2.cpp",
"#lib/qm-dsp/dsp/tonal/ChangeDetectionFunction.cpp",
"#lib/qm-dsp/dsp/tonal/TCSgram.cpp",
"#lib/qm-dsp/dsp/tonal/TonalEstimator.cpp",
"#lib/qm-dsp/dsp/transforms/FFT.cpp",
"#lib/qm-dsp/dsp/wavelet/Wavelet.cpp",
"#lib/qm-dsp/ext/kissfft/kiss_fft.c",
"#lib/qm-dsp/ext/kissfft/kiss_fftr.c",
#"#lib/qm-dsp/hmm/hmm.c",
"#lib/qm-dsp/maths/Correlation.cpp",
"#lib/qm-dsp/maths/CosineDistance.cpp",
"#lib/qm-dsp/maths/KLDivergence.cpp",
"#lib/qm-dsp/maths/MathUtilities.cpp",
"#lib/qm-dsp/maths/pca/pca.c",
"#lib/qm-dsp/thread/Thread.cpp"
]

def configure(self, build, conf):
build.env.Append(CPPPATH="#lib/qm-dsp")
build.env.Append(CPPPATH="#lib/qm-dsp/include")
build.env.Append(CPPDEFINES='kiss_fft_scalar=double')
if not build.platform_is_windows:
build.env.Append(CPPDEFINES='USE_PTHREADS')


class TagLib(Dependence):
def configure(self, build, conf):
libs = ['tag']
Expand Down Expand Up @@ -620,11 +672,13 @@ def sources(self, build):
"preferences/dialog/dlgprefsound.cpp",
"preferences/dialog/dlgprefsounditem.cpp",
"preferences/dialog/dlgprefwaveform.cpp",
'preferences/dialog/dlgprefbeats.cpp',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Singe quotes, here and in some other places below.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch -- done

'preferences/dialog/dlgprefkey.cpp',
"preferences/settingsmanager.cpp",
"preferences/replaygainsettings.cpp",
"preferences/upgrade.cpp",
"preferences/dlgpreferencepage.cpp",


"effects/effectmanifest.cpp",
"effects/effectmanifestparameter.cpp",
Expand Down Expand Up @@ -715,7 +769,13 @@ def sources(self, build):
"analyzer/analyzerqueue.cpp",
"analyzer/analyzerwaveform.cpp",
"analyzer/analyzergain.cpp",
'analyzer/analyzerbeats.cpp',
'analyzer/analyzerkey.cpp',
"analyzer/analyzerebur128.cpp",
"analyzer/plugins/analyzerplugin.cpp",
"analyzer/plugins/analyzersoundtouchbeats.cpp",
"analyzer/plugins/analyzerqueenmarybeats.cpp",
"analyzer/plugins/analyzerqueenmarykey.cpp",

"controllers/controller.cpp",
"controllers/controllerengine.cpp",
Expand Down Expand Up @@ -1312,7 +1372,7 @@ def depends(self, build):
return [SoundTouch, ReplayGain, Ebur128Mit, PortAudio, PortMIDI, Qt, TestHeaders,
FidLib, SndFile, FLAC, OggVorbis, OpenGL, TagLib, ProtoBuf,
Chromaprint, RubberBand, SecurityFramework, CoreServices,
QtScriptByteArray, Reverb, FpClassify]
QtScriptByteArray, Reverb, FpClassify, QueenMaryDsp]

def post_dependency_check_configure(self, build, conf):
"""Sets up additional things in the Environment that must happen
Expand Down
65 changes: 0 additions & 65 deletions build/features.py
Original file line number Diff line number Diff line change
Expand Up @@ -369,71 +369,6 @@ def sources(self, build):
return sources


class Vamp(Feature):
INTERNAL_LINK = False
INTERNAL_VAMP_PATH = '#lib/vamp-2.6'

def description(self):
return "Vamp Analyzer support"

def enabled(self, build):
build.flags['vamp'] = util.get_flags(build.env, 'vamp', 1)
if int(build.flags['vamp']):
return True
return False

def add_options(self, build, vars):
vars.Add('vamp', 'Set to 1 to enable vamp analysers', 1)

def configure(self, build, conf):
if not self.enabled(build):
return

build.env.Append(CPPDEFINES='__VAMP__')

# If there is no system vamp-hostdk installed, then we'll directly link
# the vamp-hostsdk.
if not conf.CheckLib(['vamp-hostsdk']):
# For header includes
build.env.Append(CPPPATH=[self.INTERNAL_VAMP_PATH])
self.INTERNAL_LINK = True

# Needed on Linux at least. Maybe needed elsewhere?
if build.platform_is_linux:
# Optionally link libdl Required for some distros.
conf.CheckLib(['dl', 'libdl'])

# FFTW3 support
have_fftw3_h = conf.CheckHeader('fftw3.h')
have_fftw3 = conf.CheckLib('fftw3', autoadd=False)
if have_fftw3_h and have_fftw3 and build.platform_is_linux:
build.env.Append(CPPDEFINES='HAVE_FFTW3')
build.env.ParseConfig(
'pkg-config fftw3 --silence-errors --cflags --libs')

def sources(self, build):
sources = ['analyzer/vamp/vampanalyzer.cpp',
'analyzer/vamp/vamppluginloader.cpp',
'analyzer/analyzerbeats.cpp',
'analyzer/analyzerkey.cpp',
'preferences/dialog/dlgprefbeats.cpp',
'preferences/dialog/dlgprefkey.cpp']

if self.INTERNAL_LINK:
hostsdk_src_path = '%s/src/vamp-hostsdk' % self.INTERNAL_VAMP_PATH
sources.extend(path % hostsdk_src_path for path in
['%s/Files.cpp',
'%s/PluginBufferingAdapter.cpp',
'%s/PluginChannelAdapter.cpp',
'%s/PluginHostAdapter.cpp',
'%s/PluginInputDomainAdapter.cpp',
'%s/PluginLoader.cpp',
'%s/PluginSummarisingAdapter.cpp',
'%s/PluginWrapper.cpp',
'%s/RealTime.cpp'])
return sources


class ModPlug(Feature):
def description(self):
return "Modplug module decoder plugin"
Expand Down
6 changes: 0 additions & 6 deletions build/nsis/Mixxx.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -227,10 +227,6 @@ Section "Mixxx (required)" SecMixxx
; Copies both DLLs and PDBs.
File /nonfatal /r "${BASE_BUILD_DIR}\dist${BITWIDTH}\plugins\soundsource\*"

SetOutPath $INSTDIR\plugins\vamp
; Copies both DLLs and PDBs.
File /nonfatal /r "${BASE_BUILD_DIR}\dist${BITWIDTH}\plugins\vamp\*"

SetOutPath $INSTDIR\keyboard
File "${BASE_BUILD_DIR}\dist${BITWIDTH}\keyboard\*.kbd.cfg"

Expand Down Expand Up @@ -333,8 +329,6 @@ Section "Uninstall"
RMDir "$INSTDIR\fonts"
Delete $INSTDIR\plugins\soundsource\*
RMDir "$INSTDIR\plugins\soundsource"
Delete $INSTDIR\plugins\vamp\*
RMDir "$INSTDIR\plugins\vamp"
Delete $INSTDIR\plugins\*
RMDir "$INSTDIR\plugins"
Delete $INSTDIR\translations\*
Expand Down
File renamed without changes.
35 changes: 35 additions & 0 deletions lib/qm-dsp/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@


QM-DSP library
==============

This is a C++ library of functions for DSP and Music Informatics
purposes developed at Queen Mary, University of London.
It is used by the QM Vamp Plugins (q.v.) amongst other things.

This code is Copyright (c) 2006-2015 Queen Mary, University of London,
with the following exceptions:

ext/kissfft -- Copyright (c) 2003-2010 Mark Borgerding

maths/pca.c -- Fionn Murtagh, from StatLib; with permission

maths/Polyfit.h -- Allen Miller, David J Taylor and others; also for
Delphi in the the JEDI Math Library, under the Mozilla Public License

thread/BlockAllocator.h -- derived from FSB Allocator by Juha Nieminen,
under BSD-style license

See individual files for further authorship details.


License
=======

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.


File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading