changeset 190:af6a5ba00a8f

Some fixes for MSVC
author Chris Cannam <c.cannam@qmul.ac.uk>
date Thu, 01 Feb 2018 16:36:55 +0000
parents 4e3bd932c195
children 131637e2cc1f
files .hgignore build/msvc/QMVampPlugins.vcxproj build/msvc/no-vprintf.c build/msvc/no-vprintf.lib plugins/BarBeatTrack.cpp plugins/DWT.h plugins/SegmenterPlugin.cpp plugins/SimilarityPlugin.cpp plugins/Transcription.cpp
diffstat 9 files changed, 34 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Tue Jan 30 20:24:17 2018 +0000
+++ b/.hgignore	Thu Feb 01 16:36:55 2018 +0000
@@ -1,8 +1,11 @@
 syntax: glob
 *~
 *.o
+*.obj
 *.so
 *.dll
 glob:.vext-*.bin
 build/msvc/Debug
 build/msvc/Release
+build/msvc/x64/Debug
+build/msvc/x64/Release
--- a/build/msvc/QMVampPlugins.vcxproj	Tue Jan 30 20:24:17 2018 +0000
+++ b/build/msvc/QMVampPlugins.vcxproj	Thu Feb 01 16:36:55 2018 +0000
@@ -21,6 +21,7 @@
   <PropertyGroup Label="Globals">
     <ProjectGuid>{1F995CF1-8B4B-445C-824D-09B3268DB29D}</ProjectGuid>
     <Keyword>Win32Proj</Keyword>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -39,7 +40,7 @@
     <PlatformToolset>v140</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <PlatformToolset>v140</PlatformToolset>
   </PropertyGroup>
@@ -69,17 +70,19 @@
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;QMVAMPPLUGINS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;QMVAMPPLUGINS_EXPORTS;_USE_MATH_DEFINES;NOMINMAX;kiss_fft_scalar=double;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(ProjectDir)\..\..\lib\qm-dsp\ext\clapack\include;$(ProjectDir)\..\..\lib\qm-dsp\ext\kissfft;$(ProjectDir)\..\..\lib\qm-dsp\ext\cblas\include;$(ProjectDir)\..\..\lib\qm-dsp;$(ProjectDir)\..\..\lib\vamp-plugin-sdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(ProjectDir)\..\..\lib\qm-dsp\ext\clapack\include;$(ProjectDir)\..\..\lib\qm-dsp\ext\kissfft;$(ProjectDir)\..\..\lib\qm-dsp\ext\cblas\include;$(ProjectDir)\..\..\lib\qm-dsp;$(ProjectDir)\..\..\lib\vamp-plugin-sdk;$(ProjectDir)\..\..\lib\qm-dsp\ext\kissfft\tools;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <TargetMachine>MachineX86</TargetMachine>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
+      <AdditionalDependencies>$(ProjectDir)..\mingw32\atlas.lib;$(ProjectDir)..\mingw32\cblas.lib;$(ProjectDir)..\mingw32\lapack.lib;$(ProjectDir)..\mingw32\f77blas.lib;$(ProjectDir)..\mingw32\g2cstubs.lib;$(ProjectDir)\no-vprintf.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -98,8 +101,17 @@
       <OptimizeReferences>true</OptimizeReferences>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <AdditionalIncludeDirectories>$(ProjectDir)\..\..\lib\qm-dsp\ext\clapack\include;$(ProjectDir)\..\..\lib\qm-dsp\ext\kissfft;$(ProjectDir)\..\..\lib\qm-dsp\ext\cblas\include;$(ProjectDir)\..\..\lib\qm-dsp;$(ProjectDir)\..\..\lib\vamp-plugin-sdk;$(ProjectDir)\..\..\lib\qm-dsp\ext\kissfft\tools;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;_USRDLL;QMVAMPPLUGINS_EXPORTS;_USE_MATH_DEFINES;NOMINMAX;kiss_fft_scalar=double;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\g2cstubs.c" />
     <ClCompile Include="..\..\libmain.cpp" />
     <ClCompile Include="..\..\lib\qm-dsp\base\KaiserWindow.cpp" />
     <ClCompile Include="..\..\lib\qm-dsp\base\Pitch.cpp" />
@@ -131,12 +143,8 @@
     <ClCompile Include="..\..\lib\qm-dsp\dsp\tonal\TCSgram.cpp" />
     <ClCompile Include="..\..\lib\qm-dsp\dsp\tonal\TonalEstimator.cpp" />
     <ClCompile Include="..\..\lib\qm-dsp\dsp\transforms\DCT.cpp" />
-    <ClCompile Include="..\..\lib\qm-dsp\dsp\transforms\FFT.cpp" />
+    <ClCompile Include="..\..\lib\qm-dsp\dsp\transforms\FFTqm.cpp" />
     <ClCompile Include="..\..\lib\qm-dsp\dsp\wavelet\Wavelet.cpp" />
-    <ClCompile Include="..\..\lib\qm-dsp\ext\cblas\src\cblas_ddot.c" />
-    <ClCompile Include="..\..\lib\qm-dsp\ext\cblas\src\cblas_dgemm.c" />
-    <ClCompile Include="..\..\lib\qm-dsp\ext\cblas\src\cblas_globals.c" />
-    <ClCompile Include="..\..\lib\qm-dsp\ext\cblas\src\cblas_xerbla.c" />
     <ClCompile Include="..\..\lib\qm-dsp\ext\cblas\src\ddot.c" />
     <ClCompile Include="..\..\lib\qm-dsp\ext\cblas\src\dgemm.c" />
     <ClCompile Include="..\..\lib\qm-dsp\ext\cblas\src\dgemv.c" />
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/msvc/no-vprintf.c	Thu Feb 01 16:36:55 2018 +0000
@@ -0,0 +1,2 @@
+#include <stdarg.h>
+extern int vprintf(const char *fmt, va_list arg) { }
Binary file build/msvc/no-vprintf.lib has changed
--- a/plugins/BarBeatTrack.cpp	Tue Jan 30 20:24:17 2018 +0000
+++ b/plugins/BarBeatTrack.cpp	Thu Feb 01 16:36:55 2018 +0000
@@ -25,10 +25,6 @@
 using std::cerr;
 using std::endl;
 
-#ifndef __GNUC__
-#include <alloca.h>
-#endif
-
 float BarBeatTracker::m_stepSecs = 0.01161; // 512 samples at 44100
 
 class BarBeatTrackerData
@@ -341,15 +337,13 @@
     // We only support a single input channel
 
     const int fl = m_d->dfConfig.frameLength;
-#ifndef __GNUC__
-    double *dfinput = (double *)alloca(fl * sizeof(double));
-#else
-    double dfinput[fl];
-#endif
-    for (int i = 0; i < fl; ++i) dfinput[i] = inputBuffers[0][i];
+	double *dfinput = new double[fl];
 
+	for (int i = 0; i < fl; ++i) dfinput[i] = inputBuffers[0][i];
     double output = m_d->df->processTimeDomain(dfinput);
 
+	delete[] dfinput;
+
     if (m_d->dfOutput.empty()) m_d->origin = timestamp;
 
 //    std::cerr << "df[" << m_d->dfOutput.size() << "] is " << output << std::endl;
--- a/plugins/DWT.h	Tue Jan 30 20:24:17 2018 +0000
+++ b/plugins/DWT.h	Thu Feb 01 16:36:55 2018 +0000
@@ -63,8 +63,8 @@
     float m_threshold;
     float m_absolute;
 
-    vector<float> m_lpd;
-    vector<float> m_hpd;
+    vector<double> m_lpd;
+    vector<double> m_hpd;
 	
     vector< vector<float> > m_samplePass;	
 };
--- a/plugins/SegmenterPlugin.cpp	Tue Jan 30 20:24:17 2018 +0000
+++ b/plugins/SegmenterPlugin.cpp	Thu Feb 01 16:36:55 2018 +0000
@@ -198,9 +198,9 @@
     }
 
     if (param == "featureType") {
-        if (featureType != feature_types(value)) // feature type changed, create a new segmenter
-        {
-            featureType = feature_types(value);
+		int nval = int(value + 0.5);
+        if (featureType != feature_types(nval)) { // feature type changed, create a new segmenter
+            featureType = feature_types(nval);
             makeSegmenter();
         }
         return;
--- a/plugins/SimilarityPlugin.cpp	Tue Jan 30 20:24:17 2018 +0000
+++ b/plugins/SimilarityPlugin.cpp	Thu Feb 01 16:36:55 2018 +0000
@@ -14,6 +14,7 @@
 
 #include <iostream>
 #include <cstdio>
+#include <algorithm>
 
 #include "SimilarityPlugin.h"
 #include "base/Pitch.h"
--- a/plugins/Transcription.cpp	Tue Jan 30 20:24:17 2018 +0000
+++ b/plugins/Transcription.cpp	Thu Feb 01 16:36:55 2018 +0000
@@ -18,6 +18,7 @@
 #include <vamp-sdk/PluginAdapter.h>
 #include <math.h>
 #include <stdlib.h>
+#include <algorithm>
 
 using std::string;
 using std::vector;