diff --git a/.gitignore b/.gitignore
index 0c201cb46..a000b8a32 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,6 @@ doc/Doxyfile
doc/doxygen-build.stamp
lib/test_sharedbook
test/test
+CMakeFiles/
+build-*/
+
diff --git a/Contrib/NuGet/vorbis-msvc-x64-build.nuget.bat b/Contrib/NuGet/vorbis-msvc-x64-build.nuget.bat
new file mode 100644
index 000000000..f421c8ff8
--- /dev/null
+++ b/Contrib/NuGet/vorbis-msvc-x64-build.nuget.bat
@@ -0,0 +1,99 @@
+REM @echo off
+
+Echo LIB Windows Build NuGet
+
+REM # XEON x64 Build Vars #
+set _SCRIPT_DRIVE=%~d0
+set _SCRIPT_FOLDER=%~dp0
+set INITDIR=%CD%
+set SRC=%INITDIR%\..\..\
+set BUILDTREE=%SRC%\build-win\
+SET tbs_arch=x64
+SET vcvar_arg=x86_amd64
+SET cmake_platform="Visual Studio 15 2017 Win64"
+
+REM # VC Vars #
+SET VCVAR="%programfiles(x86)%\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat"
+if exist %VCVAR% call %VCVAR% %vcvar_arg%
+SET VCVAR="%programfiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat"
+if exist %VCVAR% call %VCVAR% %vcvar_arg%
+
+REM # Clean Build Tree #
+rd /s /q %BUILDTREE%
+mkdir %BUILDTREE%
+mkdir %BUILDTREE%\deps
+cd %BUILDTREE%
+
+:nuget_Dep
+REM # packages from nuget #
+cd %BUILDTREE%\deps
+SET OGGVER=1.3.2.8787
+nuget install ogg-msvc-%tbs_arch% -Version %OGGVER%
+
+:copy_files
+set BINDIR=%SRC%\build-nuget\
+rd /s /q %BINDIR%
+mkdir %BINDIR%
+
+:static_LIB
+REM # LIB STATIC #
+ECHO %cmake_platform% STATIC
+
+rd /s /q %BUILDTREE%\vorbis
+mkdir %BUILDTREE%\vorbis
+cd %BUILDTREE%\vorbis
+cmake -G %cmake_platform% ^
+-DBUILD_SHARED_LIBS:BOOL=OFF ^
+-DCMAKE_CXX_FLAGS_RELEASE="/MD" ^
+-DCMAKE_CXX_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_C_FLAGS_RELEASE="/MD" ^
+-DCMAKE_C_FLAGS_DEBUG="/MDd" ^
+-DOGG_LIBRARIES=%BUILDTREE%\deps\ogg-msvc-%tbs_arch%.%OGGVER%\build\native\lib_release\ogg.lib ^
+-DOGG_INCLUDE_DIRS=%BUILDTREE%\deps\ogg-msvc-%tbs_arch%.%OGGVER%\build\native\include ^
+-DCMAKE_INSTALL_PREFIX=%BINDIR% ^
+-DCMAKE_BUILD_TYPE="Release" %SRC%
+cmake --build . --config Release --target install
+
+move %BINDIR%lib %BINDIR%lib_release
+move %BINDIR%bin %BINDIR%bin_release
+
+REM # Clean Build Tree #
+rd /s /q %BUILDTREE%\vorbis
+
+REM # DEBUG #
+rd /s /q %BUILDTREE%\vorbis
+mkdir %BUILDTREE%\vorbis
+cd %BUILDTREE%\vorbis
+cmake -G %cmake_platform% ^
+-DBUILD_SHARED_LIBS:BOOL=OFF ^
+-DCMAKE_CXX_FLAGS_RELEASE="/MD" ^
+-DCMAKE_CXX_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_C_FLAGS_RELEASE="/MD" ^
+-DCMAKE_C_FLAGS_DEBUG="/MDd" ^
+-DOGG_LIBRARIES=%BUILDTREE%\deps\ogg-msvc-%tbs_arch%.%OGGVER%\build\native\lib_debug\ogg.lib ^
+-DOGG_INCLUDE_DIRS=%BUILDTREE%\deps\ogg-msvc-%tbs_arch%.%OGGVER%\build\native\include ^
+-DCMAKE_INSTALL_PREFIX=%BINDIR% ^
+-DCMAKE_BUILD_TYPE="DEBUG" %SRC%
+cmake --build . --config DEBUG --target install
+
+move %BINDIR%lib %BINDIR%lib_debug
+move %BINDIR%bin %BINDIR%bin_debug
+
+REM # TODO: ENABLE SHARED Build
+GOTO:nuget_req
+mkdir %BINDIR%\static\
+move /Y %BINDIR%\lib %BINDIR%\static\
+
+:shared_LIB
+REM # LIB SHARED #
+ECHO %cmake_platform% SHARED
+
+
+:nuget_req
+REM # make nuget packages from binaries #
+copy %INITDIR%\vorbis-msvc-%tbs_arch%.targets %BINDIR%\vorbis-msvc-%tbs_arch%.targets
+cd %BUILDTREE%
+nuget pack %INITDIR%\vorbis-msvc-%tbs_arch%.nuspec
+cd %INITDIR%
+REM --- exit ----
+GOTO:eof
diff --git a/Contrib/NuGet/vorbis-msvc-x64.nuspec b/Contrib/NuGet/vorbis-msvc-x64.nuspec
new file mode 100644
index 000000000..18b652d46
--- /dev/null
+++ b/Contrib/NuGet/vorbis-msvc-x64.nuspec
@@ -0,0 +1,15 @@
+
+
+
+ vorbis-msvc-x64
+ 1.3.5.8787
+ administrator
+ false
+ Visual Studio 2017 Release vorbis as NuGet package.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Contrib/NuGet/vorbis-msvc-x64.targets b/Contrib/NuGet/vorbis-msvc-x64.targets
new file mode 100644
index 000000000..4d2287bc4
--- /dev/null
+++ b/Contrib/NuGet/vorbis-msvc-x64.targets
@@ -0,0 +1,29 @@
+
+
+
+
+ HAS_vorbis;%(PreprocessorDefinitions)
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib_release/vorbis.lib;$(MSBuildThisFileDirectory)../..//build/native/lib_release/vorbisfile.lib;$(MSBuildThisFileDirectory)../..//build/native/lib_release/vorbisenc.lib;%(AdditionalDependencies)
+
+
+
+
+ HAS_vorbis;%(PreprocessorDefinitions)
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib_debug/vorbis.lib;$(MSBuildThisFileDirectory)../..//build/native/lib_debug/vorbisfile.lib;$(MSBuildThisFileDirectory)../..//build/native/lib_debug/vorbisenc.lib;%(AdditionalDependencies)
+
+
+
+
+
diff --git a/Contrib/NuGet/vorbis-msvc-x86-build.nuget.bat b/Contrib/NuGet/vorbis-msvc-x86-build.nuget.bat
new file mode 100644
index 000000000..d0d1093a3
--- /dev/null
+++ b/Contrib/NuGet/vorbis-msvc-x86-build.nuget.bat
@@ -0,0 +1,99 @@
+REM @echo off
+
+Echo LIB Windows Build NuGet
+
+REM # XEON win32 Build Vars #
+set _SCRIPT_DRIVE=%~d0
+set _SCRIPT_FOLDER=%~dp0
+set INITDIR=%CD%
+set SRC=%INITDIR%\..\..\
+set BUILDTREE=%SRC%\build-win\
+SET tbs_arch=x86
+SET vcvar_arg=x86
+SET cmake_platform="Visual Studio 15 2017"
+
+REM # VC Vars #
+SET VCVAR="%programfiles(x86)%\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat"
+if exist %VCVAR% call %VCVAR% %vcvar_arg%
+SET VCVAR="%programfiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat"
+if exist %VCVAR% call %VCVAR% %vcvar_arg%
+
+REM # Clean Build Tree #
+rd /s /q %BUILDTREE%
+mkdir %BUILDTREE%
+mkdir %BUILDTREE%\deps
+cd %BUILDTREE%
+
+:nuget_Dep
+REM # packages from nuget #
+cd %BUILDTREE%\deps
+SET OGGVER=1.3.2.8787
+nuget install ogg-msvc-%tbs_arch% -Version %OGGVER%
+
+:copy_files
+set BINDIR=%SRC%\build-nuget\
+rd /s /q %BINDIR%
+mkdir %BINDIR%
+
+:static_LIB
+REM # LIB STATIC #
+ECHO %cmake_platform% STATIC
+
+rd /s /q %BUILDTREE%\vorbis
+mkdir %BUILDTREE%\vorbis
+cd %BUILDTREE%\vorbis
+cmake -G %cmake_platform% ^
+-DBUILD_SHARED_LIBS:BOOL=OFF ^
+-DCMAKE_CXX_FLAGS_RELEASE="/MD" ^
+-DCMAKE_CXX_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_C_FLAGS_RELEASE="/MD" ^
+-DCMAKE_C_FLAGS_DEBUG="/MDd" ^
+-DOGG_LIBRARIES=%BUILDTREE%\deps\ogg-msvc-%tbs_arch%.%OGGVER%\build\native\lib_release\ogg.lib ^
+-DOGG_INCLUDE_DIRS=%BUILDTREE%\deps\ogg-msvc-%tbs_arch%.%OGGVER%\build\native\include ^
+-DCMAKE_INSTALL_PREFIX=%BINDIR% ^
+-DCMAKE_BUILD_TYPE="Release" %SRC%
+cmake --build . --config Release --target install
+
+move %BINDIR%lib %BINDIR%lib_release
+move %BINDIR%bin %BINDIR%bin_release
+
+REM # Clean Build Tree #
+rd /s /q %BUILDTREE%\vorbis
+
+REM # DEBUG #
+rd /s /q %BUILDTREE%\vorbis
+mkdir %BUILDTREE%\vorbis
+cd %BUILDTREE%\vorbis
+cmake -G %cmake_platform% ^
+-DBUILD_SHARED_LIBS:BOOL=OFF ^
+-DCMAKE_CXX_FLAGS_RELEASE="/MD" ^
+-DCMAKE_CXX_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_C_FLAGS_RELEASE="/MD" ^
+-DCMAKE_C_FLAGS_DEBUG="/MDd" ^
+-DOGG_LIBRARIES=%BUILDTREE%\deps\ogg-msvc-%tbs_arch%.%OGGVER%\build\native\lib_debug\ogg.lib ^
+-DOGG_INCLUDE_DIRS=%BUILDTREE%\deps\ogg-msvc-%tbs_arch%.%OGGVER%\build\native\include ^
+-DCMAKE_INSTALL_PREFIX=%BINDIR% ^
+-DCMAKE_BUILD_TYPE="DEBUG" %SRC%
+cmake --build . --config DEBUG --target install
+
+move %BINDIR%lib %BINDIR%lib_debug
+move %BINDIR%bin %BINDIR%bin_debug
+
+REM # TODO: ENABLE SHARED Build
+GOTO:nuget_req
+mkdir %BINDIR%\static\
+move /Y %BINDIR%\lib %BINDIR%\static\
+
+:shared_LIB
+REM # LIB SHARED #
+ECHO %cmake_platform% SHARED
+
+
+:nuget_req
+REM # make nuget packages from binaries #
+copy %INITDIR%\vorbis-msvc-%tbs_arch%.targets %BINDIR%\vorbis-msvc-%tbs_arch%.targets
+cd %BUILDTREE%
+nuget pack %INITDIR%\vorbis-msvc-%tbs_arch%.nuspec
+cd %INITDIR%
+REM --- exit ----
+GOTO:eof
diff --git a/Contrib/NuGet/vorbis-msvc-x86.nuspec b/Contrib/NuGet/vorbis-msvc-x86.nuspec
new file mode 100644
index 000000000..168c38a5b
--- /dev/null
+++ b/Contrib/NuGet/vorbis-msvc-x86.nuspec
@@ -0,0 +1,15 @@
+
+
+
+ vorbis-msvc-x86
+ 1.3.5.8787
+ administrator
+ false
+ Visual Studio 2017 Release vorbis as NuGet package.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Contrib/NuGet/vorbis-msvc-x86.targets b/Contrib/NuGet/vorbis-msvc-x86.targets
new file mode 100644
index 000000000..9c7e6fa28
--- /dev/null
+++ b/Contrib/NuGet/vorbis-msvc-x86.targets
@@ -0,0 +1,29 @@
+
+
+
+
+ HAS_vorbis;%(PreprocessorDefinitions)
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib_release/vorbis.lib;$(MSBuildThisFileDirectory)../..//build/native/lib_release/vorbisfile.lib;$(MSBuildThisFileDirectory)../..//build/native/lib_release/vorbisenc.lib;%(AdditionalDependencies)
+
+
+
+
+ HAS_vorbis;%(PreprocessorDefinitions)
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib_debug/vorbis.lib;$(MSBuildThisFileDirectory)../..//build/native/lib_debug/vorbisfile.lib;$(MSBuildThisFileDirectory)../..//build/native/lib_debug/vorbisenc.lib;%(AdditionalDependencies)
+
+
+
+
+