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:
jthedering committed 2017-06-17 13:04:35 +00:00
1 parent 989812ba36
commit a24eaa0cd9
58 files changed
+3334 -151

No files matched your search

+27 -14
View File
@@ -109,7 +109,7 @@ double AnalysisThread::getProcessingTime() const
return processingTime;
}
int AnalysisThread::getProcessedFrames() const
unsigned AnalysisThread::getProcessedFrames() const
{
return processedFrames;
}
@@ -153,6 +153,7 @@ void AnalysisThread::run()
unsigned sampleRate = device->getSampleRate();
qint64 startTime = timer.nsecsElapsed();
FilterEngine engine;
engine.setDeviceInfo(device->isInput(), true, device->getDeviceName(), device->getConnectionName(), device->getDeviceGuid(), device->getDeviceString());
engine.initialize(sampleRate, channelCount, channelCount, channelCount, channelMask, frameCount, configPath.toStdWString());
@@ -193,8 +194,9 @@ void AnalysisThread::run()
int latency = 0;
int startFrame = -1;
double processingTime = 0.0;
int processedFrames = 0;
while (true)
unsigned processedFrames = 0;
// stop searching for startFrame after 10 seconds of audio data
while (processedFrames < 10 * sampleRate)
{
qint64 startTime = timer.nsecsElapsed();
engine.process(buf2, buf, frameCount);
@@ -240,20 +242,31 @@ void AnalysisThread::run()
if (startFrame == -1)
latency += frameCount;
}
latency += startFrame;
fftwf_execute(planForward);
double peakGain = -DBL_MAX;
for (int i = 0; i < frameCount / 2; i++)
double peakGain;
if (startFrame != -1)
{
float sqrGain = freqData[i][0] * freqData[i][0] + freqData[i][1] * freqData[i][1];
if (sqrGain > peakGain)
peakGain = sqrGain;
latency += startFrame;
fftwf_execute(planForward);
peakGain = -DBL_MAX;
for (int i = 0; i < frameCount / 2; i++)
{
float sqrGain = freqData[i][0] * freqData[i][0] + freqData[i][1] * freqData[i][1];
if (sqrGain > peakGain)
peakGain = sqrGain;
}
peakGain = sqrt(peakGain);
peakGain = log10(peakGain) * 20.0;
}
else
{
latency = 0;
peakGain = -numeric_limits<double>::infinity();
memset(freqData, 0, frameCount * sizeof(fftwf_complex));
}
peakGain = sqrt(peakGain);
peakGain = log10(peakGain) * 20.0;
mutex.lock();
if (this->freqDataLength != frameCount)