stock text functions for KnobGadgets (the percentening)
parent
e5c664a5ad
commit
cf75f22403
5
notes
5
notes
|
@ -32,6 +32,11 @@ parameters {
|
|||
|
||||
TODO {
|
||||
immediate frontburner {
|
||||
fix warnings in mixboard
|
||||
decide whether to standardize knob setup orderings
|
||||
bump gain knob max to +12dB
|
||||
preset function for gain and balance? autoGain (templated because bind)
|
||||
|
||||
revert action
|
||||
|
||||
distortion effect
|
||||
|
|
|
@ -111,7 +111,7 @@ void Delay::onGadgetCreated() {
|
|||
(new KnobGadget(l))->bind(delayTime)->setLabel(qs("Time"))->setRange(0.0, 5.0, 0.001)->setDefault(0.5);
|
||||
(new ToggleGadget(l))->bind(timeInBeats)->setColor({191, 127, 255})->setToolTip(qs("BPM-relative"));
|
||||
//l->addSpacer();
|
||||
(new KnobGadget(l))->bind(amount)->setLabel(qs("Level"))->setDefault(0.5);
|
||||
(new KnobGadget(l))->bind(amount)->setLabel(qs("Level"))->setTextFunc(KnobGadget::textPercent)->setDefault(0.5);
|
||||
//l->addSpacer();
|
||||
(new KnobGadget(l))->bind(feedback)->setLabel(qs("Feedback"))->setDefault(0.0);
|
||||
(new KnobGadget(l))->bind(feedback)->setLabel(qs("Feedback"))->setTextFunc(KnobGadget::textPercent)->setDefault(0.0);
|
||||
}
|
||||
|
|
|
@ -135,6 +135,6 @@ void SVF::onGadgetCreated() {
|
|||
};
|
||||
|
||||
(new KnobGadget(l))->bind(frequency)->setLabel(qs("Freq"))->setRange(0.0, 16000.0, 25.0, KnobGadget::NoStep)->setDefault(6400.0);
|
||||
(new KnobGadget(l))->bind(resonance)->setLabel(qs("Res"))->setRange(0.0, 1.0, 0.01)->setDefault(0.0);
|
||||
(new KnobGadget(l))->bind(resonance)->setLabel(qs("Res"))->setTextFunc(KnobGadget::textPercent)->setRange(0.0, 1.0, 0.01)->setDefault(0.0);
|
||||
(new KnobGadget(l))->bind(mode)->setLabel(qs("Mode"))->setTextFunc(modetxt)->setRange(0, Notch, 1, KnobGadget::BigStep)->setDefault(0);
|
||||
}
|
||||
|
|
|
@ -74,6 +74,6 @@ void GainBalance::onGadgetCreated() {
|
|||
obj->showPluginName = false;
|
||||
auto l = new LayoutGadget(obj);
|
||||
|
||||
(new KnobGadget(l))->bind(gain)->setRange(-60, 6, .1)->setLabel("Gain")->setTextFunc([](double d) { return QString("%1dB").arg(d); });
|
||||
(new KnobGadget(l))->bind(balance)->setRange(-1.0, 1.0)->setLabel("Balance");
|
||||
(new KnobGadget(l))->bind(gain)->setLabel("Gain")->setRange(-60, 6, .1)->setTextFunc(KnobGadget::textGain);
|
||||
(new KnobGadget(l))->bind(balance)->setLabel("Balance")->setRange(-1.0, 1.0)->setTextFunc(KnobGadget::textBalance);
|
||||
}
|
||||
|
|
|
@ -159,7 +159,7 @@ void MixBoard::onGadgetCreated() {
|
|||
/*auto mute = */(new ToggleGadget(tl))->bind(sections[i].mute)->setColor({255, 0, 0})->setToolTip("Mute", {-1, 0});
|
||||
/*auto solo = */(new ToggleGadget(tl))->bind(sections[i].solo)->setColor({191, 191, 0})->setToolTip("Solo", {-1, 0});
|
||||
|
||||
/*auto gain = */(new KnobGadget(ln))->bind(sections[i].gain)->setRange(-60, 6, .1)->setLabel("Gain")->setTextFunc([](double d) { return QString("%1dB").arg(d); });
|
||||
/*auto gain = */(new KnobGadget(ln))->bind(sections[i].gain)->setRange(-60, 6, .1)->setLabel("Gain")->setTextFunc(KnobGadget::textGain);
|
||||
|
||||
auto end = (new LayoutGadget(ln, true))->setMetrics(-1, spc);
|
||||
auto bIns = (new ButtonGadget(end))->setSize(16, 16)->setText("+");
|
||||
|
|
|
@ -97,6 +97,6 @@ void Transpose::onGadgetCreated() {
|
|||
obj->showPluginName = false;
|
||||
auto l = (new LayoutGadget(obj))->setMetrics(8, 10);
|
||||
|
||||
(new KnobGadget(l))->bind(amount)->setLabel("Transpose")->setRange(-12, 12, 1, KnobGadget::MedStep);
|
||||
(new KnobGadget(l))->bind(octave)->setLabel("Octave")->setRange(-5, 5, 1, KnobGadget::BigStep);
|
||||
(new KnobGadget(l))->bind(amount)->setLabel("Transpose")->setTextFunc(KnobGadget::textOffset)->setRange(-12, 12, 1, KnobGadget::MedStep);
|
||||
(new KnobGadget(l))->bind(octave)->setLabel("Octave")->setTextFunc(KnobGadget::textOffset)->setRange(-5, 5, 1, KnobGadget::BigStep);
|
||||
}
|
||||
|
|
|
@ -209,9 +209,6 @@ void I2x03::onGadgetCreated() {
|
|||
if (auto f = waveNames.find(static_cast<int8_t>(inp)); f != waveNames.end()) return f->second;
|
||||
return qs("?");
|
||||
};
|
||||
auto percenttxt = [](double d) {
|
||||
return qs("%1%").arg(d*100, 0);
|
||||
};
|
||||
|
||||
auto ol = new LayoutGadget(obj, true);
|
||||
auto l1 = new LayoutGadget(ol);
|
||||
|
@ -226,12 +223,12 @@ void I2x03::onGadgetCreated() {
|
|||
// blip group
|
||||
(new KnobGadget(l2))->bind(blipTime)->setLabel(qs("Blip"))->setRange(0.0, 0.1, 0.001);
|
||||
(new KnobGadget(l2))->bind(blipWave)->setLabel(qs("Wave"))->setTextFunc(wavetxt)->setRange(-1, 4, 1, KnobGadget::BigStep)->setDefault(-1);
|
||||
(new KnobGadget(l2))->bind(blipNote)->setLabel(qs("Note"))->setRange(-12, 12, 1);
|
||||
(new KnobGadget(l2))->bind(blipNote)->setLabel(qs("Note"))->setTextFunc(KnobGadget::textOffset)->setRange(-12, 12, 1);
|
||||
|
||||
l2->addSpacer();
|
||||
|
||||
// pwm group
|
||||
(new KnobGadget(l2))->bind(pwmDepth)->setLabel(qs("PWM"))->setTextFunc(percenttxt)->setRange(0.0, 1.0, 0.01)->setDefault(0.75);
|
||||
(new KnobGadget(l2))->bind(pwmDepth)->setLabel(qs("PWM"))->setTextFunc(KnobGadget::textPercent)->setRange(0.0, 1.0, 0.01)->setDefault(0.75);
|
||||
(new KnobGadget(l2))->bind(pwmTime)->setLabel(qs("Time"))->setRange(0.01, 5.0, 0.01)->setDefault(3.0);
|
||||
(new KnobGadget(l2))->bind(pwmPhase)->setLabel(qs("Phase"))->setRange(0.0, 1.0, 0.01);
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ void Thicc::onGadgetCreated() {
|
|||
(new KnobGadget(l))->bind(mod)->setLabel(qs("W. Mod"))->setRange(-1.0, 1.0, 0.01);
|
||||
l->addSpacer();
|
||||
(new KnobGadget(l))->bind(voices)->setLabel(qs("Voices"))->setRange(1, 16, 1, KnobGadget::BigStep)->setDefault(1);
|
||||
(new KnobGadget(l))->bind(detune)->setLabel(qs("Detune"))->setRange(0.0, 1.0, 0.001);
|
||||
(new KnobGadget(l))->bind(detune)->setLabel(qs("Detune"))->setTextFunc(KnobGadget::textPercent)->setRange(0.0, 1.0, 0.001);
|
||||
l->addSpacer();
|
||||
KnobGadget::autoCreate(l, adsr);
|
||||
}
|
||||
|
|
|
@ -134,6 +134,7 @@ void Xriek::onGadgetCreated() {
|
|||
k->step = .01;
|
||||
k->bind(drive);
|
||||
k->setLabel("Drive");
|
||||
k->setTextFunc(KnobGadget::textPercent);
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -143,6 +144,7 @@ void Xriek::onGadgetCreated() {
|
|||
k->step = .01;
|
||||
k->bind(saturation);
|
||||
k->setLabel("Saturate");
|
||||
k->setTextFunc(KnobGadget::textPercent);
|
||||
}
|
||||
|
||||
l->addSpacer();
|
||||
|
|
|
@ -214,7 +214,7 @@ void BeatPad::initUI(NodeUIScene* scene) {
|
|||
sampleSelector->setSize(320, 96);
|
||||
|
||||
auto r1 = (new LayoutGadget(ol))->setMetrics(0, -1, 0.0);
|
||||
auto gain = (new KnobGadget(r1))->setRange(-60, 12, .1)->setLabel("Gain")->setTextFunc([](double d) { return QString("%1dB").arg(d); });
|
||||
auto gain = (new KnobGadget(r1))->setRange(-60, 12, .1)->setLabel("Gain")->setTextFunc(KnobGadget::textGain);
|
||||
|
||||
// create functions now that all UI elements exist to be referenced
|
||||
state->selectNote = [=](int16_t n) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "knobgadget.h"
|
||||
using namespace Xybrid::UI;
|
||||
|
||||
#include "util/strings.h"
|
||||
#include "ui/gadgets/layoutgadget.h"
|
||||
#include "nodelib/basics.h"
|
||||
|
||||
|
@ -147,6 +148,12 @@ void KnobGadget::contextMenuEvent(QGraphicsSceneContextMenuEvent* e) {
|
|||
e->accept();
|
||||
}
|
||||
|
||||
QString KnobGadget::textPercent(double d) { return qs("%1%").arg(d*100); }
|
||||
QString KnobGadget::textOffset(double d) { return (d > 0 ? qs("+%1") : qs("%1")).arg(d); }
|
||||
|
||||
QString KnobGadget::textGain(double d) { return (d > 0 ? qs("+%1dB") : qs("%1dB")).arg(d); }
|
||||
QString KnobGadget::textBalance(double d) { return (d > 0 ? qs("+%1%") : qs("%1%")).arg(d*100); }
|
||||
|
||||
void KnobGadget::autoCreate(LayoutGadget* l, NodeLib::ADSR& adsr) {
|
||||
KnobGadget* k;
|
||||
|
||||
|
@ -171,6 +178,7 @@ void KnobGadget::autoCreate(LayoutGadget* l, NodeLib::ADSR& adsr) {
|
|||
k->step = .01;
|
||||
k->bind(adsr.s);
|
||||
k->setLabel("Sustain");
|
||||
k->setTextFunc(KnobGadget::textPercent);
|
||||
|
||||
k = new KnobGadget(l);
|
||||
k->min = 0.0;
|
||||
|
|
|
@ -82,6 +82,12 @@ namespace Xybrid::UI {
|
|||
return this;
|
||||
}
|
||||
|
||||
static QString textPercent(double);
|
||||
static QString textOffset(double);
|
||||
|
||||
static QString textGain(double);
|
||||
static QString textBalance(double);
|
||||
|
||||
static void autoCreate(LayoutGadget*, NodeLib::ADSR&);
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue