Chris@528: Chris@528: Version 2.9, 2019-10-23 (maintenance release) Chris@528: Chris@528: * Fix non-thread-safe behaviour in PluginAdapter. Plugins built Chris@528: using the adapter classes in version 2.8 or earlier cannot safely Chris@528: be used simultaneously across threads with other instances of Chris@528: themselves or of other plugins in the same library (i.e. shared Chris@528: object). Hosts have been required to provide synchronisation for Chris@528: such cases. Version 2.9 introduces synchronisation in the plugin, Chris@528: making this usage safe. Unfortunately this does not make host code Chris@528: safe when using older plugin builds, as the problem and its fix Chris@528: are in the plugin side of the SDK. Caution is still required, but Chris@528: this fix does allow updated plugin builds to avoid problems with Chris@528: some existing hosts Chris@528: * Change required C++ language standard from C++98 to C++11. This Chris@528: is because of the use of std::mutex in the above fix Chris@495: Chris@519: Version 2.8, 2019-02-07 (maintenance and minor feature release) Chris@515: Chris@515: * When running in a 32-bit process within 64-bit Windows (WoW64), Chris@515: use the VAMP_PATH_32 environment variable instead of VAMP_PATH Chris@515: (hosts running in this context already use "Program Files (x86)" Chris@515: instead of Program Files) Chris@515: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike Chris@515: the other changes here which are invisible to plugin code, this Chris@515: change can lead to different results in the lowest significant Chris@515: figures from existing plugins if relinked against the newer code Chris@515: * Fix path environment variable character encoding handling on Chris@515: Windows Chris@515: * Fix theoretical possibility of integer overflow in RealTime Chris@515: constructor Chris@515: * Fix use of undefined behaviour in PluginRateExtractor Chris@517: Chris@495: Version 2.7.1, 2017-03-06 (maintenance release) Chris@495: Chris@495: * Fix inclusion mechanism for FFTs which could cause a host Chris@495: application to crash in certain circumstances due to Chris@495: conflicting versions of C-linkage symbols Chris@490: Chris@490: Version 2.7, 2017-02-24 (maintenance and minor feature release) Chris@490: Chris@490: * Add ability to PluginLoader to list plugins only in (or not in) Chris@490: certain library files Chris@490: * Fix fixed-sample-rate output timestamps in printout from the Chris@490: simple host, and add regression test script using test plugin Chris@490: * Switch the convenience FFT interface for plugin usage from the Chris@490: very slow reference implementation previously provided, to the Chris@490: somewhat faster KissFFT Chris@490: * Add a top-secret compiler flag to switch internal FFTs to single- Chris@490: precision only Chris@490: * Fix some small but long-standing memory leaks and minor bugs Chris@397: Chris@397: Version 2.6, 2015-06-16 (maintenance and minor feature release) Chris@397: Chris@397: * Add a simple C-linkage API for plugin library discovery and Chris@397: loading -- the missing part when trying to use Vamp plugins from C Chris@397: or a language with only C-linkage foreign-function interface Chris@397: * Fix bug in PluginBufferingAdapter reset() function, which failed Chris@397: to reset timestamp rewrites (symptom: timestamps appeared to Chris@397: continue to ascend from end point on next run after a reset) Chris@397: * Fix sometime 1-sample rounding error in PluginInputDomainAdapter Chris@397: * Update build files for more recent OS versions Chris@397: * Add -L option to simple host, as synonym for --list-full Chris@397: * Add a combined Visual C++ solution that includes the plugin SDK, Chris@397: host SDK, example plugins, and simple host projects Chris@397: Chris@355: Version 2.5, 2013-05-08 (maintenance release): Chris@350: Chris@350: * Fix incorrect handling of FixedSampleRate outputs in the Chris@350: PluginBufferingAdapter. Un-timestamped features on these outputs Chris@350: were incorrectly being timestamped from the process timestamp, Chris@350: where they should have been timed relative to the previous Chris@350: feature on the output according to the output's sample rate. Chris@350: * Fix return of uninitialised memory through getCurrentProgram Chris@350: when plugin specifies no programs Chris@355: * Ensure output sample rate is initialised (to 0) for variable-rate Chris@355: outputs where the plugin forgets to set a rate Chris@332: Chris@343: Version 2.4, 2012-07-12 (maintenance and minor feature release): Chris@332: Chris@337: * Provide a simple FFT implementation as a convenience for plugins Chris@337: * Add symbols to make the library versions discoverable by autoconf Chris@337: using C linkage Chris@332: * Fix failure to open plugins from Unicode builds on Windows (thanks Chris@332: RJ Ryan) Chris@337: * Fix thread-safety issue in PluginInputDomainAdapter Chris@337: * Add build for OS/X 10.7+/Xcode 4; remove build for OpenSolaris Chris@317: Chris@324: Version 2.3, 2011-09-28 (minor feature release): Chris@317: Chris@317: * Add window type property to PluginInputDomainAdapter Chris@322: * Permit vamp-simple-host to use streaming input with indeterminate Chris@322: length (thanks Dan Stowell) Chris@322: * Print label as well as values from vamp-simple-host (thanks Dan) Chris@315: Chris@315: Version 2.2.1, 2011-04-05 (maintenance release): Chris@315: Chris@315: * Minor build fixes for OS/X cannam@310: cannam@310: Version 2.2, 2010-08-26 (maintenance release): cannam@310: cannam@310: * Fixes to OS/X build procedures so as to build three-way cannam@310: universal binaries (PPC, i386, x86_64) by default. Forced upon cannam@310: us by OS/X 10.6 defaulting to 64-bit rather than 32-bit cannam@249: cannam@290: Version 2.1, 2009-09-22 (maintenance and minor feature release): cannam@290: cannam@290: * Add ProcessTimestampMethod to PluginInputDomainAdapter, offering cannam@290: the ability to decide how data buffering and timestamping works for cannam@290: frequency-domain plugins (whose process timestamps have to be at cannam@290: the centre of each processing block rather than the start) cannam@290: * Make PluginBufferingAdapter take into account any timestamp shift cannam@290: introduced by a PluginInputDomainAdapter that it wraps cannam@290: * Fix crash in PluginAdapter when plugin library getDescriptor fails cannam@290: on plugin construction cannam@290: * Add plugin skeleton files as starting point for new developers cannam@290: cannam@290: Version 2.0, 2008-12-08 (major release): cannam@249: cannam@249: * Feature structure now has an optional duration (plugin API change) cannam@249: * Libraries reorganised into separate include and src directories for cannam@249: plugin and host SDKs; hosts should no longer include from vamp-sdk/ cannam@249: but always from vamp-hostsdk/ instead (host source compatibility change) cannam@249: * OutputDescriptor now declares whether its features will have duration cannam@249: * Vamp RDF ontology now included for providing online (out-of-plugin) cannam@249: descriptions of plugins; program to generate skeleton RDF for a plugin cannam@249: set is included, and RDF for example plugins provided cannam@249: * New PluginSummarisingAdapter providing averages, min/max, count etc cannam@249: of returned features on request cannam@249: * New example plugins: Fixed Tempo Estimator and Power Spectrum cannam@249: * Command-line host now has a complete listing option, to print out cannam@249: all data reported by plugins cannam@249: * More complete Visual Studio project support cannam@164: cannam@164: Version 1.3, 2008-07-09 (maintenance release): cannam@164: cannam@164: * PluginBufferingAdapter has several important fixes to bugs that cannam@164: could cause incorrect timings or output descriptors to be returned cannam@164: * Conversion between real-time and frames has been improved to avoid cannam@164: rounding error in round-trip calculations cannam@164: * Plugin lookup no longer relies on non-portable DT_REG cannam@164: * The SDK now compiles with gcc 4.3 cannam@164: cannam@164: Version 1.2, 2008-02-28 (feature release): cannam@164: cannam@164: * New PluginBufferingAdapter, which hosts may use to avoid having to cannam@164: negotiate the plugin's preferred input step and block sizes cannam@164: cannam@164: Version 1.1, 2007-08-24 (feature release): cannam@164: cannam@164: * New Vamp::HostExt namespace cannam@164: * PluginLoader class, which handles enumeration, loading and category cannam@164: management for plugins on the local system cannam@164: * PluginInputDomainAdapter, which provides the capability for a host cannam@164: to support frequency-domain plugins without needing to worry about cannam@164: domain conversion cannam@164: * PluginChannelAdapter, which transparently deals with plugins that cannam@164: expect different numbers of audio channels from the number available cannam@164: * Minor beauty-and-truth updates and documentation fixes cannam@164: cannam@164: Version 1.0, 2007-03-21: cannam@164: cannam@164: * First official release cannam@164: