commit 0b9ebc59e4f9708e35d2681dcd2a44d5ccf02db3
parent a18269fa7897d157b7c7e3053d4cff632ff76e72
Author: Steven Atkinson <[email protected]>
Date: Mon, 1 Jan 2024 18:26:10 -0800
[BUGFIX] Fix resampler bugs (#419)
* Start fixing resampling. Needs another look-through.
* Update iPlug2
* Update AudioDSPTools
* Switch to AudioDSPTools ResamplingContainer
* Revert iPlug2 to main branch version
* Add files to VS projects
* Revert iPlug2 to version on main
* Track main iPlug2/iPlug2 fork
Diffstat:
10 files changed, 207 insertions(+), 13 deletions(-)
diff --git a/NeuralAmpModeler/NeuralAmpModeler.h b/NeuralAmpModeler/NeuralAmpModeler.h
@@ -6,10 +6,11 @@
#include "AudioDSPTools/dsp/RecursiveLinearFilter.h"
#include "AudioDSPTools/dsp/dsp.h"
#include "AudioDSPTools/dsp/wav.h"
+#include "AudioDSPTools/dsp/ResamplingContainer/ResamplingContainer.h"
#include "IPlug_include_in_plug_hdr.h"
#include "ISender.h"
-#include "RealtimeResampler.h"
+
const int kNumPresets = 1;
// The plugin is mono inside
@@ -90,7 +91,7 @@ public:
ResamplingNAM(std::unique_ptr<nam::DSP> encapsulated, const double expected_sample_rate)
: nam::DSP(expected_sample_rate)
, mEncapsulated(std::move(encapsulated))
- , mResampler(GetNAMSampleRate(mEncapsulated), iplug::ESRCMode::kLancsoz)
+ , mResampler(GetNAMSampleRate(mEncapsulated))
{
// Assign the encapsulated object's processing function to this object's member so that the resampler can use it:
auto ProcessBlockFunc = [&](NAM_SAMPLE** input, NAM_SAMPLE** output, int numFrames) {
@@ -140,7 +141,7 @@ public:
mFinalized = false;
};
- void finalize_(const int num_frames)
+ void finalize_(const int num_frames) override
{
if (mFinalized)
throw std::runtime_error("Call to ResamplingNAM.finalize_() when the object is already in a finalized state!");
@@ -188,7 +189,7 @@ private:
bool mFinalized = true;
// The resampling wrapper
- iplug::RealtimeResampler<NAM_SAMPLE, 1, 12> mResampler;
+ dsp::ResamplingContainer<NAM_SAMPLE, 1, 12> mResampler;
// Used to check that we don't get too large a block to process.
int mMaxExternalBlockSize = 0;
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-aax.vcxproj b/NeuralAmpModeler/projects/NeuralAmpModeler-aax.vcxproj
@@ -515,6 +515,11 @@
<ClInclude Include="..\AudioDSPTools\dsp\NoiseGate.h" />
<ClInclude Include="..\AudioDSPTools\dsp\RecursiveLinearFilter.h" />
<ClInclude Include="..\AudioDSPTools\dsp\Resample.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\LanczosResampler.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\heapbuf.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\ptrlist.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\wdltypes.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\ResamplingContainer.h" />
<ClInclude Include="..\AudioDSPTools\dsp\version.h" />
<ClInclude Include="..\AudioDSPTools\dsp\wav.h" />
<ClInclude Include="..\Colors.h" />
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-aax.vcxproj.filters b/NeuralAmpModeler/projects/NeuralAmpModeler-aax.vcxproj.filters
@@ -296,6 +296,21 @@
<ClInclude Include="..\..\iPlug2\IPlug\Extras\LanczosResampler.h">
<Filter>IPlug\Extras</Filter>
</ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\ResamplingContainer.h">
+ <Filter>dsp\ResamplingContainer</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\LanczosResampler.h">
+ <Filter>dsp\ResamplingContainer\Dependencies</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\heapbuf.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\ptrlist.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\wdltypes.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="resources">
@@ -331,6 +346,15 @@
<Filter Include="IPlug\Extras">
<UniqueIdentifier>{db86886b-3f03-4c59-acdb-b4a137147b3c}</UniqueIdentifier>
</Filter>
+ <Filter Include="dsp\ResamplingContainer">
+ <UniqueIdentifier>{16dd1eb5-2d88-4f96-b703-3cefcfda4ad2}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="dsp\ResamplingContainer\Dependencies">
+ <UniqueIdentifier>{34fba925-37ff-48d3-899f-ac65a8006eb5}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="dsp\ResamplingContainer\Dependencies\WDL">
+ <UniqueIdentifier>{6d4ce6d3-2b3a-40d7-b093-9428bc7ffd6d}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\resources\main.rc">
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-app.vcxproj b/NeuralAmpModeler/projects/NeuralAmpModeler-app.vcxproj
@@ -324,6 +324,11 @@
<ClInclude Include="..\AudioDSPTools\dsp\NoiseGate.h" />
<ClInclude Include="..\AudioDSPTools\dsp\RecursiveLinearFilter.h" />
<ClInclude Include="..\AudioDSPTools\dsp\Resample.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\LanczosResampler.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\heapbuf.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\ptrlist.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\wdltypes.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\ResamplingContainer.h" />
<ClInclude Include="..\AudioDSPTools\dsp\version.h" />
<ClInclude Include="..\AudioDSPTools\dsp\wav.h" />
<ClInclude Include="..\Colors.h" />
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-app.vcxproj.filters b/NeuralAmpModeler/projects/NeuralAmpModeler-app.vcxproj.filters
@@ -344,6 +344,21 @@
<ClInclude Include="..\..\iPlug2\IPlug\Extras\LanczosResampler.h">
<Filter>IPlug\Extras</Filter>
</ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\ResamplingContainer.h">
+ <Filter>dsp\ResamplingContainer</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\LanczosResampler.h">
+ <Filter>dsp\ResamplingContainer\Dependencies</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\heapbuf.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\ptrlist.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\wdltypes.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="resources">
@@ -385,6 +400,15 @@
<Filter Include="IPlug\Extras">
<UniqueIdentifier>{91ab74a9-d5f2-42db-9c8f-3bef7ee22bd3}</UniqueIdentifier>
</Filter>
+ <Filter Include="dsp\ResamplingContainer">
+ <UniqueIdentifier>{f6876073-a059-4852-bb59-10721432789b}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="dsp\ResamplingContainer\Dependencies">
+ <UniqueIdentifier>{f6334b2f-876a-49d4-bf81-92346df50ea7}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="dsp\ResamplingContainer\Dependencies\WDL">
+ <UniqueIdentifier>{f22f96a8-fd44-4509-987d-7683e32f3592}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\resources\main.rc">
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-iOS.xcodeproj/project.pbxproj b/NeuralAmpModeler/projects/NeuralAmpModeler-iOS.xcodeproj/project.pbxproj
@@ -84,6 +84,11 @@
4FE0DEE829A183B700DDBCC8 /* NeuralAmpModelerAU.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4FC6982F293BA47F0076EC33 /* NeuralAmpModelerAU.framework */; };
4FE0DEF029A2E0F100DDBCC8 /* IPlugAUViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FFF105A20A0E57100D3092F /* IPlugAUViewController.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
91236D811B08F59300734C5E /* NeuralAmpModelerAppExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 91236D771B08F59300734C5E /* NeuralAmpModelerAppExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ AA7C860B2B43A42F00B5FB3A /* ResamplingContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C86042B43A42E00B5FB3A /* ResamplingContainer.h */; };
+ AA7C860C2B43A42F00B5FB3A /* LanczosResampler.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C86062B43A42E00B5FB3A /* LanczosResampler.h */; };
+ AA7C860D2B43A42F00B5FB3A /* wdltypes.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C86082B43A42E00B5FB3A /* wdltypes.h */; };
+ AA7C860E2B43A42F00B5FB3A /* ptrlist.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C86092B43A42E00B5FB3A /* ptrlist.h */; };
+ AA7C860F2B43A42F00B5FB3A /* heapbuf.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C860A2B43A42E00B5FB3A /* heapbuf.h */; };
AA8CA7772A452EF500F5BEF0 /* resample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA8CA7752A452EF500F5BEF0 /* resample.cpp */; };
/* End PBXBuildFile section */
@@ -336,8 +341,12 @@
4FFF108820A1036200D3092F /* NeuralAmpModeler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NeuralAmpModeler.h; path = ../NeuralAmpModeler.h; sourceTree = "<group>"; };
91236D0D1B08F42B00734C5E /* NeuralAmpModeler.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NeuralAmpModeler.app; sourceTree = BUILT_PRODUCTS_DIR; };
91236D771B08F59300734C5E /* NeuralAmpModelerAppExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NeuralAmpModelerAppExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
+ AA7C86042B43A42E00B5FB3A /* ResamplingContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResamplingContainer.h; sourceTree = "<group>"; };
+ AA7C86062B43A42E00B5FB3A /* LanczosResampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LanczosResampler.h; sourceTree = "<group>"; };
+ AA7C86082B43A42E00B5FB3A /* wdltypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wdltypes.h; sourceTree = "<group>"; };
+ AA7C86092B43A42E00B5FB3A /* ptrlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ptrlist.h; sourceTree = "<group>"; };
+ AA7C860A2B43A42E00B5FB3A /* heapbuf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = heapbuf.h; sourceTree = "<group>"; };
AA8CA7752A452EF500F5BEF0 /* resample.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = resample.cpp; sourceTree = "<group>"; };
- AA8CA7762A452EF500F5BEF0 /* resample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resample.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -620,17 +629,18 @@
4FBDC93229FFF143004FF203 /* dsp */ = {
isa = PBXGroup;
children = (
- 4FBDC93329FFF143004FF203 /* Resample.h */,
- 4FBDC93429FFF143004FF203 /* RecursiveLinearFilter.cpp */,
- 4FBDC93529FFF143004FF203 /* wav.h */,
- 4FBDC93629FFF143004FF203 /* NoiseGate.h */,
+ AA7C86032B43A42E00B5FB3A /* ResamplingContainer */,
4FBDC93729FFF143004FF203 /* dsp.cpp */,
- 4FBDC93829FFF143004FF203 /* NoiseGate.cpp */,
+ 4FBDC93C29FFF143004FF203 /* dsp.h */,
4FBDC93929FFF143004FF203 /* ImpulseResponse.cpp */,
- 4FBDC93A29FFF143004FF203 /* RecursiveLinearFilter.h */,
4FBDC93B29FFF143004FF203 /* ImpulseResponse.h */,
- 4FBDC93C29FFF143004FF203 /* dsp.h */,
+ 4FBDC93829FFF143004FF203 /* NoiseGate.cpp */,
+ 4FBDC93629FFF143004FF203 /* NoiseGate.h */,
+ 4FBDC93429FFF143004FF203 /* RecursiveLinearFilter.cpp */,
+ 4FBDC93A29FFF143004FF203 /* RecursiveLinearFilter.h */,
+ 4FBDC93329FFF143004FF203 /* Resample.h */,
4FBDC93D29FFF143004FF203 /* wav.cpp */,
+ 4FBDC93529FFF143004FF203 /* wav.h */,
);
name = dsp;
path = ../AudioDSPTools/dsp;
@@ -748,6 +758,7 @@
4F67D51620A121F60061FB8E /* Other Sources */,
4F3E0F9B20A0C64100A9C2BE /* Frameworks */,
91D3DA171B023C1E008FFFBB /* Products */,
+ AA7C85EC2B43941500B5FB3A /* Recovered References */,
);
sourceTree = "<group>";
};
@@ -761,6 +772,42 @@
name = Products;
sourceTree = "<group>";
};
+ AA7C85EC2B43941500B5FB3A /* Recovered References */ = {
+ isa = PBXGroup;
+ children = (
+ AA8CA7752A452EF500F5BEF0 /* resample.cpp */,
+ );
+ name = "Recovered References";
+ sourceTree = "<group>";
+ };
+ AA7C86032B43A42E00B5FB3A /* ResamplingContainer */ = {
+ isa = PBXGroup;
+ children = (
+ AA7C86042B43A42E00B5FB3A /* ResamplingContainer.h */,
+ AA7C86052B43A42E00B5FB3A /* Dependencies */,
+ );
+ path = ResamplingContainer;
+ sourceTree = "<group>";
+ };
+ AA7C86052B43A42E00B5FB3A /* Dependencies */ = {
+ isa = PBXGroup;
+ children = (
+ AA7C86062B43A42E00B5FB3A /* LanczosResampler.h */,
+ AA7C86072B43A42E00B5FB3A /* WDL */,
+ );
+ path = Dependencies;
+ sourceTree = "<group>";
+ };
+ AA7C86072B43A42E00B5FB3A /* WDL */ = {
+ isa = PBXGroup;
+ children = (
+ AA7C86082B43A42E00B5FB3A /* wdltypes.h */,
+ AA7C86092B43A42E00B5FB3A /* ptrlist.h */,
+ AA7C860A2B43A42E00B5FB3A /* heapbuf.h */,
+ );
+ path = WDL;
+ sourceTree = "<group>";
+ };
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
@@ -769,13 +816,18 @@
buildActionMask = 2147483647;
files = (
4FC6983C293BA5090076EC33 /* IPlugAUViewController.h in Headers */,
+ AA7C860F2B43A42F00B5FB3A /* heapbuf.h in Headers */,
+ AA7C860E2B43A42F00B5FB3A /* ptrlist.h in Headers */,
4FBDC94D29FFF143004FF203 /* Resample.h in Headers */,
4FC6983A293BA4F10076EC33 /* NeuralAmpModelerAU.h in Headers */,
4FBDC95629FFF143004FF203 /* dsp.h in Headers */,
4FBDC95E29FFF143004FF203 /* wavenet.h in Headers */,
4FC6983B293BA5020076EC33 /* IPlugAUAudioUnit.h in Headers */,
+ AA7C860B2B43A42F00B5FB3A /* ResamplingContainer.h in Headers */,
4FBDC95B29FFF143004FF203 /* convnet.h in Headers */,
4FBDC95929FFF143004FF203 /* version.h in Headers */,
+ AA7C860C2B43A42F00B5FB3A /* LanczosResampler.h in Headers */,
+ AA7C860D2B43A42F00B5FB3A /* wdltypes.h in Headers */,
4FBDC96229FFF143004FF203 /* activations.h in Headers */,
4FBDC95429FFF143004FF203 /* RecursiveLinearFilter.h in Headers */,
4FBDC95C29FFF143004FF203 /* lstm.h in Headers */,
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-macOS.xcodeproj/project.pbxproj b/NeuralAmpModeler/projects/NeuralAmpModeler-macOS.xcodeproj/project.pbxproj
@@ -442,6 +442,16 @@
4FFBB93520863B0E00DDD0E7 /* vstnoteexpressiontypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F81588E205D50EB00393585 /* vstnoteexpressiontypes.cpp */; };
AA355E2D295B688F0061AA3D /* Colors.h in Headers */ = {isa = PBXBuildFile; fileRef = AA355E2C295B688F0061AA3D /* Colors.h */; };
AA355E2E295B688F0061AA3D /* Colors.h in Headers */ = {isa = PBXBuildFile; fileRef = AA355E2C295B688F0061AA3D /* Colors.h */; };
+ AA7C85F92B439AC000B5FB3A /* ResamplingContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F22B439AC000B5FB3A /* ResamplingContainer.h */; };
+ AA7C85FA2B439AC000B5FB3A /* ResamplingContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F22B439AC000B5FB3A /* ResamplingContainer.h */; };
+ AA7C85FB2B439AC000B5FB3A /* _LanczosResampler.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F42B439AC000B5FB3A /* _LanczosResampler.h */; };
+ AA7C85FC2B439AC000B5FB3A /* _LanczosResampler.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F42B439AC000B5FB3A /* _LanczosResampler.h */; };
+ AA7C85FD2B439AC000B5FB3A /* wdltypes.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F62B439AC000B5FB3A /* wdltypes.h */; };
+ AA7C85FE2B439AC000B5FB3A /* wdltypes.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F62B439AC000B5FB3A /* wdltypes.h */; };
+ AA7C85FF2B439AC000B5FB3A /* ptrlist.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F72B439AC000B5FB3A /* ptrlist.h */; };
+ AA7C86002B439AC000B5FB3A /* ptrlist.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F72B439AC000B5FB3A /* ptrlist.h */; };
+ AA7C86012B439AC000B5FB3A /* heapbuf.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F82B439AC000B5FB3A /* heapbuf.h */; };
+ AA7C86022B439AC000B5FB3A /* heapbuf.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C85F82B439AC000B5FB3A /* heapbuf.h */; };
B885CBC52304AE7300D73128 /* IPlugProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F8F61A8202807B9003F2573 /* IPlugProcessor.cpp */; };
B8E22A0C220268C4007CBF4C /* IPlugVST3_ProcessorBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B8E22A0A220268C4007CBF4C /* IPlugVST3_ProcessorBase.cpp */; };
B8E22A0D220268C4007CBF4C /* IPlugVST3_ProcessorBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B8E22A0A220268C4007CBF4C /* IPlugVST3_ProcessorBase.cpp */; };
@@ -1002,6 +1012,11 @@
4FFF72B8214BB71400839091 /* main.rc */ = {isa = PBXFileReference; lastKnownFileType = text; name = main.rc; path = ../resources/main.rc; sourceTree = "<group>"; };
52FBBED30D0CF143001C8B8A /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../config.h; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
AA355E2C295B688F0061AA3D /* Colors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Colors.h; path = ../Colors.h; sourceTree = "<group>"; };
+ AA7C85F22B439AC000B5FB3A /* ResamplingContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResamplingContainer.h; sourceTree = "<group>"; };
+ AA7C85F42B439AC000B5FB3A /* _LanczosResampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _LanczosResampler.h; sourceTree = "<group>"; };
+ AA7C85F62B439AC000B5FB3A /* wdltypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wdltypes.h; sourceTree = "<group>"; };
+ AA7C85F72B439AC000B5FB3A /* ptrlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ptrlist.h; sourceTree = "<group>"; };
+ AA7C85F82B439AC000B5FB3A /* heapbuf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = heapbuf.h; sourceTree = "<group>"; };
B8E22A0A220268C4007CBF4C /* IPlugVST3_ProcessorBase.cpp */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugVST3_ProcessorBase.cpp; path = ../../iPlug2/IPlug/VST3/IPlugVST3_ProcessorBase.cpp; sourceTree = "<group>"; tabWidth = 2; };
B8E22A0B220268C4007CBF4C /* IPlugVST3_ProcessorBase.h */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = IPlugVST3_ProcessorBase.h; path = ../../iPlug2/IPlug/VST3/IPlugVST3_ProcessorBase.h; sourceTree = "<group>"; tabWidth = 2; };
B8EA6B932203868500D23A86 /* IPlugVST3_Common.h */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = IPlugVST3_Common.h; path = ../../iPlug2/IPlug/VST3/IPlugVST3_Common.h; sourceTree = "<group>"; tabWidth = 2; };
@@ -1237,6 +1252,7 @@
4F2FB1392A0047420027AB66 /* dsp */ = {
isa = PBXGroup;
children = (
+ AA7C85F12B439AC000B5FB3A /* ResamplingContainer */,
4F2FB13E2A0047420027AB66 /* dsp.cpp */,
4F2FB1432A0047420027AB66 /* dsp.h */,
4F2FB1402A0047420027AB66 /* ImpulseResponse.cpp */,
@@ -1938,6 +1954,34 @@
name = WDL;
sourceTree = "<group>";
};
+ AA7C85F12B439AC000B5FB3A /* ResamplingContainer */ = {
+ isa = PBXGroup;
+ children = (
+ AA7C85F22B439AC000B5FB3A /* ResamplingContainer.h */,
+ AA7C85F32B439AC000B5FB3A /* Dependencies */,
+ );
+ path = ResamplingContainer;
+ sourceTree = "<group>";
+ };
+ AA7C85F32B439AC000B5FB3A /* Dependencies */ = {
+ isa = PBXGroup;
+ children = (
+ AA7C85F42B439AC000B5FB3A /* _LanczosResampler.h */,
+ AA7C85F52B439AC000B5FB3A /* WDL */,
+ );
+ path = Dependencies;
+ sourceTree = "<group>";
+ };
+ AA7C85F52B439AC000B5FB3A /* WDL */ = {
+ isa = PBXGroup;
+ children = (
+ AA7C85F62B439AC000B5FB3A /* wdltypes.h */,
+ AA7C85F72B439AC000B5FB3A /* ptrlist.h */,
+ AA7C85F82B439AC000B5FB3A /* heapbuf.h */,
+ );
+ path = WDL;
+ sourceTree = "<group>";
+ };
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
@@ -1949,6 +1993,8 @@
4F2FB19B2A0047430027AB66 /* lstm.h in Headers */,
4F2FB1B02A0047430027AB66 /* dsp.h in Headers */,
4F2FB19A2A0047430027AB66 /* convnet.h in Headers */,
+ AA7C86022B439AC000B5FB3A /* heapbuf.h in Headers */,
+ AA7C85FE2B439AC000B5FB3A /* wdltypes.h in Headers */,
4F4856862773C3B5005BCF8E /* IPlugAUAudioUnit.h in Headers */,
4F2FB15F2A0047420027AB66 /* NoiseGate.h in Headers */,
4F2FB17D2A0047430027AB66 /* dsp.h in Headers */,
@@ -1957,10 +2003,13 @@
4F2FB1542A0047420027AB66 /* Resample.h in Headers */,
4F2FB15E2A0047420027AB66 /* wav.h in Headers */,
4F2FB1902A0047430027AB66 /* version.h in Headers */,
+ AA7C86002B439AC000B5FB3A /* ptrlist.h in Headers */,
4F4856852773C3B5005BCF8E /* IPlugAUViewController.h in Headers */,
+ AA7C85FC2B439AC000B5FB3A /* _LanczosResampler.h in Headers */,
4F2FB17C2A0047430027AB66 /* ImpulseResponse.h in Headers */,
4F2FB17B2A0047430027AB66 /* RecursiveLinearFilter.h in Headers */,
4F2FB1B12A0047430027AB66 /* activations.h in Headers */,
+ AA7C85FA2B439AC000B5FB3A /* ResamplingContainer.h in Headers */,
AA355E2E295B688F0061AA3D /* Colors.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -1974,12 +2023,15 @@
4FC3EFF42086CE5700BD11FA /* module.h in Headers */,
4F03A58C20A4621100EBDFFB /* IGraphicsNanoVG.h in Headers */,
4F03A5D320A4621100EBDFFB /* IGraphicsStructs.h in Headers */,
+ AA7C85FD2B439AC000B5FB3A /* wdltypes.h in Headers */,
4FC3EFF82086CE5700BD11FA /* optional.h in Headers */,
4FC3F0012086CE5700BD11FA /* uid.h in Headers */,
4F03A5B620A4621100EBDFFB /* IGraphics_select.h in Headers */,
4F03A5AB20A4621100EBDFFB /* IGraphics_include_in_plug_hdr.h in Headers */,
+ AA7C85FB2B439AC000B5FB3A /* _LanczosResampler.h in Headers */,
4FC3EFF22086CE5700BD11FA /* hostclasses.h in Headers */,
4F03A5D420A4621100EBDFFB /* IGraphicsUtilities.h in Headers */,
+ AA7C85FF2B439AC000B5FB3A /* ptrlist.h in Headers */,
4F03A5AA20A4621100EBDFFB /* IGraphicsLiveEdit.h in Headers */,
4F6369EA20A466470022C370 /* IControl.h in Headers */,
4F03A5D520A4621100EBDFFB /* IGraphicsConstants.h in Headers */,
@@ -1990,6 +2042,8 @@
4FC3EFFE2086CE5700BD11FA /* processdata.h in Headers */,
4FC3F0002086CE5700BD11FA /* stringconvert.h in Headers */,
4F8C10E720BA2796006320CD /* IGraphicsEditorDelegate.h in Headers */,
+ AA7C85F92B439AC000B5FB3A /* ResamplingContainer.h in Headers */,
+ AA7C86012B439AC000B5FB3A /* heapbuf.h in Headers */,
4FC3EFFA2086CE5700BD11FA /* parameterchanges.h in Headers */,
4F03A5B320A4621100EBDFFB /* IGraphics_include_in_plug_src.h in Headers */,
4FC3EFFC2086CE5700BD11FA /* plugprovider.h in Headers */,
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-macOS.xcodeproj/xcshareddata/xcschemes/macOS-AUv2.xcscheme b/NeuralAmpModeler/projects/NeuralAmpModeler-macOS.xcodeproj/xcshareddata/xcschemes/macOS-AUv2.xcscheme
@@ -31,7 +31,7 @@
</Testables>
</TestAction>
<LaunchAction
- buildConfiguration = "Debug"
+ buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-vst3.vcxproj b/NeuralAmpModeler/projects/NeuralAmpModeler-vst3.vcxproj
@@ -333,6 +333,11 @@
<ClInclude Include="..\AudioDSPTools\dsp\NoiseGate.h" />
<ClInclude Include="..\AudioDSPTools\dsp\RecursiveLinearFilter.h" />
<ClInclude Include="..\AudioDSPTools\dsp\Resample.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\LanczosResampler.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\heapbuf.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\ptrlist.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\wdltypes.h" />
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\ResamplingContainer.h" />
<ClInclude Include="..\AudioDSPTools\dsp\version.h" />
<ClInclude Include="..\AudioDSPTools\dsp\wav.h" />
<ClInclude Include="..\Colors.h" />
diff --git a/NeuralAmpModeler/projects/NeuralAmpModeler-vst3.vcxproj.filters b/NeuralAmpModeler/projects/NeuralAmpModeler-vst3.vcxproj.filters
@@ -443,6 +443,21 @@
<ClInclude Include="..\..\iPlug2\IPlug\Extras\LanczosResampler.h">
<Filter>IPlug\Extras</Filter>
</ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\ResamplingContainer.h">
+ <Filter>dsp\ResamplingContainer</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\LanczosResampler.h">
+ <Filter>dsp\ResamplingContainer\Dependencies</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\heapbuf.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\ptrlist.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
+ <ClInclude Include="..\AudioDSPTools\dsp\ResamplingContainer\Dependencies\WDL\wdltypes.h">
+ <Filter>dsp\ResamplingContainer\Dependencies\WDL</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="resources">
@@ -511,6 +526,15 @@
<Filter Include="IPlug\Extras">
<UniqueIdentifier>{4b6a01ff-796f-4098-a581-3b22035cc8be}</UniqueIdentifier>
</Filter>
+ <Filter Include="dsp\ResamplingContainer">
+ <UniqueIdentifier>{e899ee48-2aa4-4daa-8147-60bc5a3e395e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="dsp\ResamplingContainer\Dependencies">
+ <UniqueIdentifier>{5dd75b0e-6ab4-45ff-b6f6-f93972c1f58a}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="dsp\ResamplingContainer\Dependencies\WDL">
+ <UniqueIdentifier>{a467e512-e643-4711-ad15-f0cf98f8eef2}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\resources\main.rc">