Mercurial > hg > vampy
changeset 109:471142e74a1a
Merge
author | Chris Cannam |
---|---|
date | Tue, 12 Feb 2019 11:27:14 +0000 |
parents | efff8e5d90a3 (current diff) c4e00c81a0c7 (diff) |
children | b90cd806515d |
files | |
diffstat | 8 files changed, 149 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Tue Feb 12 11:27:14 2019 +0000 @@ -0,0 +1,8 @@ +syntax: glob +*~ +*.pyc +*.so +*.orig + + +
--- a/.hgtags Tue Feb 12 11:27:02 2019 +0000 +++ b/.hgtags Tue Feb 12 11:27:14 2019 +0000 @@ -1,1 +1,4 @@ 62dcaa5fe6f8cc7ba199dad6dde95f6e5ef1063e vampy-2.0 +3b6b3f0cffcbd0c3626ca0dbf025f5551ca5e681 vampy-2.1 +3b6b3f0cffcbd0c3626ca0dbf025f5551ca5e681 vampy-2.1 +76badb3a0bb3f8090bb8ba75e1473dae4bcee548 vampy-2.1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Dockerfile.in Tue Feb 12 11:27:14 2019 +0000 @@ -0,0 +1,20 @@ +FROM ubuntu:16.04 +MAINTAINER Chris Cannam <cannam@all-day-breakfast.com> +RUN apt-get update && \ + apt-get install -y \ + build-essential \ + libsndfile-dev \ + git \ + mercurial \ + curl wget \ + python libpython2.7-dev python-numpy +RUN apt-cache search python +RUN apt-get clean && rm -rf /var/lib/apt/lists/* +RUN hg clone -r[[REVISION]] https://code.soundsoftware.ac.uk/hg/vampy +RUN hg clone https://code.soundsoftware.ac.uk/hg/vamp-plugin-sdk +WORKDIR vamp-plugin-sdk +RUN ./configure +RUN make -j3 +WORKDIR ../vampy +RUN make -f Makefile.linux +
--- a/Makefile.linux Tue Feb 12 11:27:02 2019 +0000 +++ b/Makefile.linux Tue Feb 12 11:27:14 2019 +0000 @@ -3,9 +3,10 @@ -D_DEBUG -O2 -Wall -Werror -fno-strict-aliasing -fPIC \ -I/usr/include/python2.7 \ -I/usr/lib/python2.7/dist-packages/numpy/core/include \ - -I/usr/lib/python2.7/site-packages/numpy/core/include + -I/usr/lib/python2.7/site-packages/numpy/core/include \ + -I../vamp-plugin-sdk -LDFLAGS += -shared -Wl,-Bstatic -lvamp-sdk -Wl,-Bdynamic -lpython2.7 -lpthread -Wl,--version-script=vamp-plugin.map +LDFLAGS += -shared -Wl,-Bstatic -L../vamp-plugin-sdk -lvamp-sdk -Wl,-Bdynamic -lpython2.7 -lpthread -Wl,--version-script=vamp-plugin.map default: vampy.so all: vampy.so vampymod.so
--- a/README Tue Feb 12 11:27:02 2019 +0000 +++ b/README Tue Feb 12 11:27:14 2019 +0000 @@ -10,9 +10,9 @@ with a C/C++ Application Programming Interface (API). Typical applications of Vamp plugins include visualisation, using - a host such as Sonic Visualiser (http://www.sonicvisualiser.org/), + a host such as Sonic Visualiser (https://www.sonicvisualiser.org/), or batch feature extraction from audio, using Sonic Annotator - (http://www.omras2.org/SonicAnnotator). + (https://vamp-plugins.org/sonic-annotator). Vamp plugins are typically written in C++. Although currently available plugin hosts are valuable tools in audio research, @@ -78,8 +78,8 @@ Note that Vampy does not support Python 3 at all at this point. Note also that on a Mac in normal circumstances Vampy - expects to use the system installation of Python, so plugin - modules you write should be tested using this. + expects to use the system installation of Python, so plugins + that you write should be tested using the system Python. * Vampy supports Numpy 1.1 or greater.
--- a/VamPy.sln Tue Feb 12 11:27:02 2019 +0000 +++ b/VamPy.sln Tue Feb 12 11:27:14 2019 +0000 @@ -8,13 +8,19 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0412DCE9-EE58-4A99-9154-14935B0BCFAA}.Debug|Win32.ActiveCfg = Debug|Win32 {0412DCE9-EE58-4A99-9154-14935B0BCFAA}.Debug|Win32.Build.0 = Debug|Win32 + {0412DCE9-EE58-4A99-9154-14935B0BCFAA}.Debug|x64.ActiveCfg = Debug|x64 + {0412DCE9-EE58-4A99-9154-14935B0BCFAA}.Debug|x64.Build.0 = Debug|x64 {0412DCE9-EE58-4A99-9154-14935B0BCFAA}.Release|Win32.ActiveCfg = Release|Win32 {0412DCE9-EE58-4A99-9154-14935B0BCFAA}.Release|Win32.Build.0 = Release|Win32 + {0412DCE9-EE58-4A99-9154-14935B0BCFAA}.Release|x64.ActiveCfg = Release|x64 + {0412DCE9-EE58-4A99-9154-14935B0BCFAA}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE
--- a/VamPy.vcxproj Tue Feb 12 11:27:02 2019 +0000 +++ b/VamPy.vcxproj Tue Feb 12 11:27:14 2019 +0000 @@ -5,10 +5,18 @@ <Configuration>Debug</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> <ProjectConfiguration Include="Release|Win32"> <Configuration>Release</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>{0412DCE9-EE58-4A99-9154-14935B0BCFAA}</ProjectGuid> @@ -19,19 +27,33 @@ <ConfigurationType>DynamicLibrary</ConfigurationType> <PlatformToolset>v120</PlatformToolset> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <ConfigurationType>DynamicLibrary</ConfigurationType> <PlatformToolset>v120</PlatformToolset> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> @@ -41,11 +63,17 @@ <IntDir>Debug\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <OutDir>Release\</OutDir> <IntDir>Release\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> <Optimization>Disabled</Optimization> @@ -67,18 +95,38 @@ <TargetMachine>MachineX86</TargetMachine> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\vamp-plugin-sdk;C:\Python27\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;VAMPY_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>VampPluginSDK.lib;python27.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\vamp-plugin-sdk\build\Debug;C:\Python27\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <AdditionalIncludeDirectories>..\vamp-plugin-sdk;C:\Python27\include;C:\Python27\Lib\site-packages\numpy\core\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;VAMPY_EXPORTS;HAVE_NUMPY;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <PrecompiledHeader /> <WarningLevel>Level3</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions> - <AdditionalDependencies>VampPluginSDK.lib;python27.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>python27.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>..\vamp-plugin-sdk\build\Release;C:\Python27\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <GenerateDebugInformation>true</GenerateDebugInformation> <SubSystem>Windows</SubSystem> @@ -87,6 +135,26 @@ <TargetMachine>MachineX86</TargetMachine> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <AdditionalIncludeDirectories>..\vamp-plugin-sdk;C:\Python27-64\include;C:\Python27-64\Lib\site-packages\numpy\core\include;C:\Python27-64\Lib\site-packages\numpy-1.16.1-py2.7-win-amd64.egg\numpy\core\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;VAMPY_EXPORTS;HAVE_NUMPY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>python27.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>C:\Python27-64\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + </Link> + </ItemDefinitionGroup> <ItemGroup> <ClInclude Include="Mutex.h" /> <ClInclude Include="PyExtensionManager.h" /> @@ -101,6 +169,9 @@ <ClInclude Include="PyTypeInterface.h" /> </ItemGroup> <ItemGroup> + <ClCompile Include="..\vamp-plugin-sdk\src\vamp-sdk\FFT.cpp" /> + <ClCompile Include="..\vamp-plugin-sdk\src\vamp-sdk\PluginAdapter.cpp" /> + <ClCompile Include="..\vamp-plugin-sdk\src\vamp-sdk\RealTime.cpp" /> <ClCompile Include="Mutex.cpp" /> <ClCompile Include="PyExtensionManager.cpp" /> <ClCompile Include="PyExtensionModule.cpp" />
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dockerbuild.sh Tue Feb 12 11:27:14 2019 +0000 @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Docker required! + +set -eu + +current=$(hg id | awk '{ print $1; }') + +case "$current" in + *+) echo "WARNING: Current working copy has been modified - build will check out the last commit, which must perforce be different";; + *);; +esac + +current=${current%%+} + +rm -f vampy.so + +cat Dockerfile.in | perl -p -e 's/\[\[REVISION\]\]/'"$current"'/' > Dockerfile + +dockertag="cannam/vampy-$current" + +sudo docker build -t "$dockertag" -f Dockerfile . + +container=$(sudo docker create "$dockertag") +sudo docker cp "$container":vampy/vampy.so . +sudo docker rm "$container" + +ldd vampy.so +VAMP_PATH=".:./Example VamPy plugins" ../vamp-plugin-sdk/host/vamp-simple-host -l + +echo "Done!" +