Forgot some tweaks on host cv module, now latency tested too

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2022-02-08 03:29:51 +00:00
parent deeecfd3ab
commit 5e2473b6e9
No known key found for this signature in database
GPG key ID: CDBAA37ABC74FBA0
2 changed files with 37 additions and 20 deletions

View file

@ -76,8 +76,6 @@ struct HostAudio : TerminalModule {
void processTerminalInput(const ProcessArgs&) override
{
const float* const* const dataIns = pcontext->dataIns;
const int blockFrames = pcontext->engine->getBlockFrames();
const int64_t blockFrame = pcontext->engine->getBlockFrame();
@ -98,7 +96,7 @@ struct HostAudio : TerminalModule {
for (int i=0; i<numOutputs; ++i)
outputs[i].setVoltage(0.0f);
}
else if (dataIns != nullptr)
else if (const float* const* const dataIns = pcontext->dataIns)
{
for (int i=0; i<numOutputs; ++i)
outputs[i].setVoltage(dataIns[i][k] * 10.0f);

View file

@ -64,45 +64,64 @@ struct HostCV : TerminalModule {
if (pcontext->variant != kCardinalVariantMain)
return;
const float* const* const dataIns = pcontext->dataIns;
float** const dataOuts = pcontext->dataOuts;
const int64_t blockFrame = pcontext->engine->getBlockFrame();
// only checked on input
if (lastBlockFrame != blockFrame)
{
dataFrame = 0;
lastBlockFrame = blockFrame;
}
// only incremented on output
const int k = dataFrame;
DISTRHO_SAFE_ASSERT_RETURN(k < pcontext->engine->getBlockFrames(),);
if (isBypassed())
{
for (int i=0; i<10; ++i)
outputs[i].setVoltage(0.0f);
}
else if (const float* const* const dataIns = pcontext->dataIns)
{
float outputOffset;
outputOffset = params[BIPOLAR_OUTPUTS_1_5].getValue() > 0.1f ? 5.0f : 0.0f;
for (int i=0; i<5; ++i)
outputs[i].setVoltage(dataIns[i+CARDINAL_AUDIO_IO_OFFSET][k] - outputOffset);
outputOffset = params[BIPOLAR_OUTPUTS_6_10].getValue() > 0.1f ? 5.0f : 0.0f;
for (int i=5; i<10; ++i)
outputs[i].setVoltage(dataIns[i+CARDINAL_AUDIO_IO_OFFSET][k] - outputOffset);
}
}
void processTerminalOutput(const ProcessArgs&) override
{
if (pcontext->variant != kCardinalVariantMain)
return;
// only incremented on output
const int k = dataFrame++;
DISTRHO_SAFE_ASSERT_RETURN(k < pcontext->engine->getBlockFrames(),);
if (isBypassed())
return;
float inputOffset, outputOffset;
float** const dataOuts = pcontext->dataOuts;
float inputOffset;
inputOffset = params[BIPOLAR_INPUTS_1_5].getValue() > 0.1f ? 5.0f : 0.0f;
outputOffset = params[BIPOLAR_OUTPUTS_1_5].getValue() > 0.1f ? 5.0f : 0.0f;
for (int i=0; i<5; ++i)
{
outputs[i].setVoltage(dataIns[i+CARDINAL_AUDIO_IO_OFFSET][k] - outputOffset);
dataOuts[i+CARDINAL_AUDIO_IO_OFFSET][k] = inputs[i].getVoltage() + inputOffset;
}
dataOuts[i+CARDINAL_AUDIO_IO_OFFSET][k] += inputs[i].getVoltage() + inputOffset;
inputOffset = params[BIPOLAR_INPUTS_6_10].getValue() > 0.1f ? 5.0f : 0.0f;
outputOffset = params[BIPOLAR_OUTPUTS_6_10].getValue() > 0.1f ? 5.0f : 0.0f;
for (int i=5; i<10; ++i)
{
outputs[i].setVoltage(dataIns[i+CARDINAL_AUDIO_IO_OFFSET][k] - outputOffset);
dataOuts[i+CARDINAL_AUDIO_IO_OFFSET][k] = inputs[i].getVoltage() + inputOffset;
}
dataOuts[i+CARDINAL_AUDIO_IO_OFFSET][k] += inputs[i].getVoltage() + inputOffset;
}
void processTerminalOutput(const ProcessArgs&) override
{}
};
struct HostCVWidget : ModuleWidgetWith8HP {