diff --git a/.hgignore b/.hgignore
index 54a0f8b..3c38b79 100644
--- a/.hgignore
+++ b/.hgignore
@@ -14,3 +14,7 @@ doc/html
*.rej
cov-int
*~
+re:^x64/Debug/
+re:^x64/Release/
+re:^Release/
+re:^Debug/
diff --git a/rubberband-library.vcxproj b/rubberband-library.vcxproj
new file mode 100644
index 0000000..823f714
--- /dev/null
+++ b/rubberband-library.vcxproj
@@ -0,0 +1,195 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}
+ rubberband-library
+ Win32Proj
+
+
+
+ StaticLibrary
+ v140
+
+
+ StaticLibrary
+ v140
+
+
+ StaticLibrary
+ v140
+
+
+ StaticLibrary
+ v140
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>14.0.25431.1
+
+
+ Debug\
+ Debug\
+ true
+
+
+ true
+
+
+ Release\
+ Release\
+
+
+
+ Disabled
+ .;.\src;%(AdditionalIncludeDirectories)
+ __MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebugDLL
+
+ Level2
+ EditAndContinue
+ false
+
+
+
+
+ Disabled
+ .;.\src;%(AdditionalIncludeDirectories)
+ __MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions)
+ EnableFastChecks
+ MultiThreadedDebugDLL
+
+
+ Level2
+ ProgramDatabase
+ false
+
+
+
+
+ Full
+ AnySuitable
+ true
+ Speed
+ true
+ .;.\src;%(AdditionalIncludeDirectories)
+ __MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ false
+ StreamingSIMDExtensions
+ Fast
+
+ Level2
+ ProgramDatabase
+
+
+
+
+ Full
+ AnySuitable
+ true
+ Speed
+ true
+ .;.\src;%(AdditionalIncludeDirectories)
+ __MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ false
+ StreamingSIMDExtensions
+ Fast
+
+
+ Level2
+ ProgramDatabase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rubberband-program.vcxproj b/rubberband-program.vcxproj
new file mode 100644
index 0000000..00cd8e6
--- /dev/null
+++ b/rubberband-program.vcxproj
@@ -0,0 +1,195 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}
+ rubberband-program
+ Win32Proj
+
+
+
+ Application
+ v140
+
+
+ Application
+ v140
+
+
+ Application
+ v140
+
+
+ Application
+ v140
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>14.0.25431.1
+
+
+ Debug\
+ Debug\
+ true
+ MinimumRecommendedRules.ruleset
+
+
+
+
+ true
+ MinimumRecommendedRules.ruleset
+
+
+
+
+ Release\
+ Release\
+
+ MinimumRecommendedRules.ruleset
+
+
+
+
+
+ MinimumRecommendedRules.ruleset
+
+
+
+
+
+ Disabled
+ .;.\rubberband;.\src;C:\Program Files (x86)\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)
+ __MSVC__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebugDLL
+
+ Level3
+ EditAndContinue
+
+
+ .\Debug\rubberband-library.lib;C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)
+ true
+ Console
+ MachineX86
+
+
+
+
+ Disabled
+ .;.\rubberband;.\src;C:\Program Files\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)
+ __MSVC__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ EnableFastChecks
+ MultiThreadedDebugDLL
+
+
+ Level3
+ ProgramDatabase
+
+
+ .\x64\Debug\rubberband-library.lib;C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)
+ true
+ Console
+
+
+
+
+ Full
+ AnySuitable
+ true
+ Speed
+ true
+ .;.\rubberband;.\src;C:\Program Files (x86)\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)
+ __MSVC__;WIN32;NDEBUG;_CONSOLE;WANT_TIMING;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ StreamingSIMDExtensions
+ Fast
+
+ Level2
+ ProgramDatabase
+
+
+ .\Release\rubberband-library.lib;C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)
+ false
+ Console
+ true
+ true
+ MachineX86
+
+
+
+
+ Full
+ AnySuitable
+ true
+ Speed
+ true
+ .;.\rubberband;.\src;C:\Program Files\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)
+ __MSVC__;WIN32;NDEBUG;_CONSOLE;WANT_TIMING;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ StreamingSIMDExtensions
+ Fast
+
+
+ Level2
+ ProgramDatabase
+
+
+ .\x64\Release\rubberband-library.lib;C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)
+ false
+ Console
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rubberband.sln b/rubberband.sln
new file mode 100644
index 0000000..3466f0d
--- /dev/null
+++ b/rubberband.sln
@@ -0,0 +1,41 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubberband-library", "rubberband-library.vcxproj", "{020CEB11-EF4E-400E-971D-A35DB69D7CF9}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubberband-program", "rubberband-program.vcxproj", "{06838307-FEAA-4DB0-8E08-AF19698E9C40}"
+ ProjectSection(ProjectDependencies) = postProject
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9} = {020CEB11-EF4E-400E-971D-A35DB69D7CF9}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x64.ActiveCfg = Debug|x64
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x64.Build.0 = Debug|x64
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x86.ActiveCfg = Debug|Win32
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x86.Build.0 = Debug|Win32
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x64.ActiveCfg = Release|x64
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x64.Build.0 = Release|x64
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x86.ActiveCfg = Release|Win32
+ {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x86.Build.0 = Release|Win32
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x64.ActiveCfg = Debug|x64
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x64.Build.0 = Debug|x64
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x86.ActiveCfg = Debug|Win32
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x86.Build.0 = Debug|Win32
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x64.ActiveCfg = Release|x64
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x64.Build.0 = Release|x64
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x86.ActiveCfg = Release|Win32
+ {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal