Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUGFIX] Fix resampler bugs #419

Merged
merged 8 commits into from
Jan 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions NeuralAmpModeler/NeuralAmpModeler.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -90,7 +91,7 @@ class ResamplingNAM : public nam::DSP
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) {
Expand Down Expand Up @@ -140,7 +141,7 @@ class ResamplingNAM : public nam::DSP
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!");
Expand Down Expand Up @@ -188,7 +189,7 @@ class ResamplingNAM : public nam::DSP
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;
Expand Down
5 changes: 5 additions & 0 deletions NeuralAmpModeler/projects/NeuralAmpModeler-aax.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
Expand Down
24 changes: 24 additions & 0 deletions NeuralAmpModeler/projects/NeuralAmpModeler-aax.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -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">
Expand Down Expand Up @@ -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">
Expand Down
5 changes: 5 additions & 0 deletions NeuralAmpModeler/projects/NeuralAmpModeler-app.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
Expand Down
24 changes: 24 additions & 0 deletions NeuralAmpModeler/projects/NeuralAmpModeler-app.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -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">
Expand Down Expand Up @@ -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">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

Expand Down Expand Up @@ -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 */
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -748,6 +758,7 @@
4F67D51620A121F60061FB8E /* Other Sources */,
4F3E0F9B20A0C64100A9C2BE /* Frameworks */,
91D3DA171B023C1E008FFFBB /* Products */,
AA7C85EC2B43941500B5FB3A /* Recovered References */,
);
sourceTree = "<group>";
};
Expand All @@ -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 */
Expand All @@ -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 */,
Expand Down
Loading
Loading