HostAudio: add level knob; Hide Core audio modules
This commit is contained in:
parent
b668d78c83
commit
98a3ca0f2f
2 changed files with 34 additions and 17 deletions
|
@ -37,8 +37,8 @@ struct HostAudio : Module {
|
|||
HostAudio()
|
||||
: pcontext(static_cast<CardinalPluginContext*>(APP)),
|
||||
numParams(numIO == 2 ? 1 : 0),
|
||||
numInputs(pcontext->variant == kCardinalVariantSynth ? 0 : std::max(pcontext->variant != kCardinalVariantMain ? 2 : 8, numIO)),
|
||||
numOutputs(std::max(pcontext->variant != kCardinalVariantMain ? 2 : 8, numIO))
|
||||
numInputs(pcontext->variant == kCardinalVariantSynth ? 0 : pcontext->variant == kCardinalVariantMain ? numIO : 2),
|
||||
numOutputs(pcontext->variant == kCardinalVariantMain ? numIO : 2)
|
||||
{
|
||||
if (pcontext == nullptr)
|
||||
throw rack::Exception("Plugin context is null");
|
||||
|
@ -49,10 +49,9 @@ struct HostAudio : Module {
|
|||
configParam(0, 0.f, 2.f, 1.f, "Level", " dB", -10, 40);
|
||||
|
||||
const float sampleTime = pcontext->engine->getSampleTime();
|
||||
for (int i = 0; i < numIO; i++) {
|
||||
for (int i=0; i<numIO; ++i)
|
||||
dcFilters[i].setCutoffFreq(10.f * sampleTime);
|
||||
}
|
||||
}
|
||||
|
||||
void onReset() override
|
||||
{
|
||||
|
@ -61,7 +60,7 @@ struct HostAudio : Module {
|
|||
|
||||
void onSampleRateChange(const SampleRateChangeEvent& e) override
|
||||
{
|
||||
for (int i = 0; i < numIO; i++)
|
||||
for (int i=0; i<numIO; ++i)
|
||||
dcFilters[i].setCutoffFreq(10.f * e.sampleTime);
|
||||
}
|
||||
|
||||
|
@ -84,11 +83,14 @@ struct HostAudio : Module {
|
|||
const float gain = numParams != 0 ? std::pow(params[0].getValue(), 2.f) : 1.0f;
|
||||
|
||||
// from host into cardinal, shows as output plug
|
||||
for (int i=0; i<numInputs; ++i)
|
||||
if (dataIns != nullptr)
|
||||
{
|
||||
for (int i=0; i<numOutputs; ++i)
|
||||
outputs[i].setVoltage(dataIns[i][k] * 10.0f);
|
||||
}
|
||||
|
||||
// from cardinal into host, shows as input plug
|
||||
for (int i=0; i<numOutputs; ++i)
|
||||
for (int i=0; i<numInputs; ++i)
|
||||
{
|
||||
float v = inputs[i].getVoltageSum() * 0.1f;
|
||||
|
||||
|
@ -147,14 +149,19 @@ struct HostAudioWidget : ModuleWidget {
|
|||
|
||||
for (uint i=0; i<numIO; ++i)
|
||||
addOutput(createOutput<PJ301MPort>(Vec(startX_Out, startY + padding * i), m, i));
|
||||
|
||||
if (numIO == 2)
|
||||
{
|
||||
addParam(createParamCentered<RoundLargeBlackKnob>(Vec(middleX, 290.0f), m, 0));
|
||||
}
|
||||
}
|
||||
|
||||
void drawTextLine(NVGcontext* const vg, const uint offset, const char* const text)
|
||||
void drawTextLine(NVGcontext* const vg, const float offsetX, const uint posY, const char* const text)
|
||||
{
|
||||
const float y = startY + offset * padding;
|
||||
const float y = startY + posY * padding;
|
||||
nvgBeginPath(vg);
|
||||
nvgFillColor(vg, color::WHITE);
|
||||
nvgText(vg, middleX, y + 16, text, nullptr);
|
||||
nvgText(vg, middleX + offsetX, y + 16, text, nullptr);
|
||||
}
|
||||
|
||||
void draw(const DrawArgs& args) override
|
||||
|
@ -174,10 +181,18 @@ struct HostAudioWidget : ModuleWidget {
|
|||
nvgFillColor(args.vg, nvgRGB(0xd0, 0xd0, 0xd0));
|
||||
nvgFill(args.vg);
|
||||
|
||||
if (numIO == 2)
|
||||
{
|
||||
drawTextLine(args.vg, 3.0f, 0, "Left/Mono");
|
||||
drawTextLine(args.vg, 0.0f, 1, "Right");
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i=0; i<numIO; ++i)
|
||||
{
|
||||
char text[] = {'A','u','d','i','o',' ',static_cast<char>('0'+i+1),'\0'};
|
||||
drawTextLine(args.vg, i, text);
|
||||
drawTextLine(args.vg, 0.0f, i, text);
|
||||
}
|
||||
}
|
||||
|
||||
ModuleWidget::draw(args);
|
||||
|
|
|
@ -19,7 +19,8 @@
|
|||
"manualUrl": "https://vcvrack.com/manual/Core#Audio",
|
||||
"tags": [
|
||||
"External"
|
||||
]
|
||||
],
|
||||
"hidden": true
|
||||
},
|
||||
{
|
||||
"slug": "AudioInterface",
|
||||
|
@ -28,7 +29,8 @@
|
|||
"manualUrl": "https://vcvrack.com/manual/Core#Audio",
|
||||
"tags": [
|
||||
"External"
|
||||
]
|
||||
],
|
||||
"hidden": true
|
||||
},
|
||||
{
|
||||
"slug": "AudioInterface16",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue