Added: VST Plugin support. Add and configure plugins via Configuration Editor. The plugin's architecture has to match the OS architecture, so most people will need 64-bit plugins. The subdirectory plugins is offered to put plugins into, but they can be opened from any directory with sufficient permissions.
Fixed: When trying to add a high-pass filter in the Configuration Editor, it was instead configured to be a low-pass filter.
This commit is contained in:
1 parent
989812ba36
commit
a24eaa0cd9
58 files changed
+3334
-151
No files matched your search
+70
-69
@@ -162,78 +162,79 @@ int main(int argc, char** argv)
|
||||
|
||||
PrecisionTimer timer;
|
||||
timer.start();
|
||||
|
||||
FilterEngine engine;
|
||||
wstring deviceName = StringHelper::toWString(devicenameArg.getValue(), CP_ACP);
|
||||
wstring connectionName = StringHelper::toWString(connectionnameArg.getValue(), CP_ACP);
|
||||
wstring deviceGuid = StringHelper::toWString(guidArg.getValue(), CP_ACP);
|
||||
engine.setDeviceInfo(false, true, deviceName, connectionName, deviceGuid, deviceName + L" " + connectionName + L" " + deviceGuid);
|
||||
engine.initialize((float)sampleRate, channelCount, channelCount, channelCount, channelMask, batchsize);
|
||||
|
||||
double initTime = timer.stop();
|
||||
if (!verbose)
|
||||
printf("\nLoading configuration took %g ms\n", initTime * 1000.0);
|
||||
|
||||
printf("\nProcessing %d frames from %d channel(s)\n", frameCount, channelCount);
|
||||
|
||||
timer.start();
|
||||
|
||||
for (unsigned i = 0; i < frameCount; i += batchsize)
|
||||
{
|
||||
engine.process(buf2 + i * channelCount, buf + i * channelCount, min(batchsize, frameCount - i));
|
||||
FilterEngine engine;
|
||||
wstring deviceName = StringHelper::toWString(devicenameArg.getValue(), CP_ACP);
|
||||
wstring connectionName = StringHelper::toWString(connectionnameArg.getValue(), CP_ACP);
|
||||
wstring deviceGuid = StringHelper::toWString(guidArg.getValue(), CP_ACP);
|
||||
engine.setDeviceInfo(false, true, deviceName, connectionName, deviceGuid, deviceName + L" " + connectionName + L" " + deviceGuid);
|
||||
engine.initialize((float)sampleRate, channelCount, channelCount, channelCount, channelMask, batchsize);
|
||||
|
||||
double initTime = timer.stop();
|
||||
if(!verbose)
|
||||
printf("\nLoading configuration took %g ms\n", initTime * 1000.0);
|
||||
|
||||
printf("\nProcessing %d frames from %d channel(s)\n", frameCount, channelCount);
|
||||
|
||||
timer.start();
|
||||
|
||||
for(unsigned i = 0; i < frameCount; i += batchsize)
|
||||
{
|
||||
engine.process(buf2 + i * channelCount, buf + i * channelCount, min(batchsize, frameCount - i));
|
||||
}
|
||||
|
||||
double time = timer.stop();
|
||||
|
||||
printf("%d samples processed in %f seconds\n", frameCount * channelCount, time);
|
||||
printf("This is equivalent to %.2f%% CPU load (one core) when processing in real time\n", 100.0f * time / length);
|
||||
|
||||
unsigned clipCount = 0;
|
||||
float max = 0;
|
||||
for(unsigned i = 0; i < frameCount * channelCount; i++)
|
||||
{
|
||||
float f = fabs(buf2[i]);
|
||||
if(f > max)
|
||||
max = f;
|
||||
if(f > 1.0f)
|
||||
clipCount++;
|
||||
}
|
||||
|
||||
printf("Max output level: %f (%f dB)", max, log10(max) * 20.0f);
|
||||
if(clipCount > 0)
|
||||
printf(" (%d samples clipped!)", clipCount);
|
||||
printf("\n");
|
||||
|
||||
string output = outputArg.getValue();
|
||||
if(output == "")
|
||||
{
|
||||
char temp[255];
|
||||
GetTempPathA(sizeof(temp) / sizeof(wchar_t), temp);
|
||||
|
||||
output = temp;
|
||||
output += "testout.wav";
|
||||
}
|
||||
|
||||
printf("\nWriting output to %s\n", output.c_str());
|
||||
|
||||
SF_INFO info = {frameCount, (int)sampleRate, (int)channelCount, SF_FORMAT_WAV | SF_FORMAT_PCM_16, 0};
|
||||
SNDFILE* outFile = sf_open(output.c_str(), SFM_WRITE, &info);
|
||||
if(outFile == NULL)
|
||||
{
|
||||
fprintf(stderr, "%s", sf_strerror(outFile));
|
||||
return 1;
|
||||
}
|
||||
|
||||
sf_count_t numWritten = 0;
|
||||
while(numWritten < frameCount)
|
||||
numWritten += sf_writef_float(outFile, buf2 + numWritten * channelCount, frameCount - numWritten);
|
||||
|
||||
sf_close(outFile);
|
||||
outFile = NULL;
|
||||
|
||||
delete[]buf;
|
||||
delete[]buf2;
|
||||
}
|
||||
|
||||
double time = timer.stop();
|
||||
|
||||
printf("%d samples processed in %f seconds\n", frameCount * channelCount, time);
|
||||
printf("This is equivalent to %.2f%% CPU load (one core) when processing in real time\n", 100.0f * time / length);
|
||||
|
||||
unsigned clipCount = 0;
|
||||
float max = 0;
|
||||
for (unsigned i = 0; i < frameCount * channelCount; i++)
|
||||
{
|
||||
float f = fabs(buf2[i]);
|
||||
if (f > max)
|
||||
max = f;
|
||||
if (f > 1.0f)
|
||||
clipCount++;
|
||||
}
|
||||
|
||||
printf("Max output level: %f (%f dB)", max, log10(max) * 20.0f);
|
||||
if (clipCount > 0)
|
||||
printf(" (%d samples clipped!)", clipCount);
|
||||
printf("\n");
|
||||
|
||||
string output = outputArg.getValue();
|
||||
if (output == "")
|
||||
{
|
||||
char temp[255];
|
||||
GetTempPathA(sizeof(temp) / sizeof(wchar_t), temp);
|
||||
|
||||
output = temp;
|
||||
output += "testout.wav";
|
||||
}
|
||||
|
||||
printf("\nWriting output to %s\n", output.c_str());
|
||||
|
||||
SF_INFO info = {frameCount, (int)sampleRate, (int)channelCount, SF_FORMAT_WAV | SF_FORMAT_PCM_16, 0};
|
||||
SNDFILE* outFile = sf_open(output.c_str(), SFM_WRITE, &info);
|
||||
if (outFile == NULL)
|
||||
{
|
||||
fprintf(stderr, "%s", sf_strerror(outFile));
|
||||
return 1;
|
||||
}
|
||||
|
||||
sf_count_t numWritten = 0;
|
||||
while (numWritten < frameCount)
|
||||
numWritten += sf_writef_float(outFile, buf2 + numWritten * channelCount, frameCount - numWritten);
|
||||
|
||||
sf_close(outFile);
|
||||
outFile = NULL;
|
||||
|
||||
delete[]buf;
|
||||
delete[]buf2;
|
||||
|
||||
if (!noPauseArg.getValue())
|
||||
system("pause");
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>muparserxd.lib;version.lib;Shlwapi.lib;authz.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>muparserxd.lib;version.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@@ -110,7 +110,7 @@
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>muparserxd.lib;version.lib;Shlwapi.lib;authz.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>muparserxd.lib;version.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@@ -128,7 +128,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>muparserx.lib;version.lib;Shlwapi.lib;authz.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>muparserx.lib;version.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@@ -146,7 +146,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>muparserx.lib;version.lib;Shlwapi.lib;authz.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>muparserx.lib;version.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
@@ -174,12 +174,17 @@
|
||||
<ClCompile Include="..\filters\PreampFilter.cpp" />
|
||||
<ClCompile Include="..\filters\PreampFilterFactory.cpp" />
|
||||
<ClCompile Include="..\filters\StageFilterFactory.cpp" />
|
||||
<ClCompile Include="..\filters\VSTPluginFilter.cpp" />
|
||||
<ClCompile Include="..\filters\VSTPluginFilterFactory.cpp" />
|
||||
<ClCompile Include="..\helpers\AbstractLibrary.cpp" />
|
||||
<ClCompile Include="..\helpers\ChannelHelper.cpp" />
|
||||
<ClCompile Include="..\helpers\GainIterator.cpp" />
|
||||
<ClCompile Include="..\helpers\LogHelper.cpp" />
|
||||
<ClCompile Include="..\helpers\MemoryHelper.cpp" />
|
||||
<ClCompile Include="..\helpers\RegistryHelper.cpp" />
|
||||
<ClCompile Include="..\helpers\StringHelper.cpp" />
|
||||
<ClCompile Include="..\helpers\VSTPluginInstance.cpp" />
|
||||
<ClCompile Include="..\helpers\VSTPluginLibrary.cpp" />
|
||||
<ClCompile Include="..\IFilter.cpp" />
|
||||
<ClCompile Include="..\libHybridConv-0.1.1\libHybridConv_eapo.cpp" />
|
||||
<ClCompile Include="..\parser\RegexFunctions.cpp" />
|
||||
@@ -218,6 +223,9 @@
|
||||
<ClInclude Include="..\filters\PreampFilter.h" />
|
||||
<ClInclude Include="..\filters\PreampFilterFactory.h" />
|
||||
<ClInclude Include="..\filters\StageFilterFactory.h" />
|
||||
<ClInclude Include="..\filters\VSTPluginFilter.h" />
|
||||
<ClInclude Include="..\filters\VSTPluginFilterFactory.h" />
|
||||
<ClInclude Include="..\helpers\AbstractLibrary.h" />
|
||||
<ClInclude Include="..\helpers\ChannelHelper.h" />
|
||||
<ClInclude Include="..\helpers\GainIterator.h" />
|
||||
<ClInclude Include="..\helpers\LogHelper.h" />
|
||||
@@ -227,6 +235,8 @@
|
||||
<ClInclude Include="..\helpers\ScopeGuard.h" />
|
||||
<ClInclude Include="..\helpers\StringHelper.h" />
|
||||
<ClInclude Include="..\helpers\UncaughtExceptions.h" />
|
||||
<ClInclude Include="..\helpers\VSTPluginInstance.h" />
|
||||
<ClInclude Include="..\helpers\VSTPluginLibrary.h" />
|
||||
<ClInclude Include="..\IFilter.h" />
|
||||
<ClInclude Include="..\IFilterFactory.h" />
|
||||
<ClInclude Include="..\libHybridConv-0.1.1\libHybridConv_eapo.h" />
|
||||
@@ -235,6 +245,9 @@
|
||||
<ClInclude Include="..\parser\StringOperators.h" />
|
||||
<ClInclude Include="..\stdafx.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\EqualizerAPO.licenseheader" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
||||
@@ -102,6 +102,21 @@
|
||||
<Filter>filters</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\stdafx.cpp" />
|
||||
<ClCompile Include="..\helpers\AbstractLibrary.cpp">
|
||||
<Filter>helpers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\filters\VSTPluginFilter.cpp">
|
||||
<Filter>filters</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\filters\VSTPluginFilterFactory.cpp">
|
||||
<Filter>filters</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\helpers\VSTPluginLibrary.cpp">
|
||||
<Filter>helpers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\helpers\VSTPluginInstance.cpp">
|
||||
<Filter>helpers</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\FilterEngine.h" />
|
||||
@@ -214,6 +229,21 @@
|
||||
<ClInclude Include="..\helpers\UncaughtExceptions.h">
|
||||
<Filter>helpers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\helpers\AbstractLibrary.h">
|
||||
<Filter>helpers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\filters\VSTPluginFilter.h">
|
||||
<Filter>filters</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\filters\VSTPluginFilterFactory.h">
|
||||
<Filter>filters</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\helpers\VSTPluginLibrary.h">
|
||||
<Filter>helpers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\helpers\VSTPluginInstance.h">
|
||||
<Filter>helpers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="parser">
|
||||
@@ -229,4 +259,7 @@
|
||||
<UniqueIdentifier>{35b3b6f1-e4df-4214-bd4c-fa058942e547}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\EqualizerAPO.licenseheader" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Reference in new issue
Block a user