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!"
+