@@ -12,12 +12,12 @@ extern Plugin *plugin; | |||
struct BraidsWidget : ModuleWidget { | |||
BraidsWidget(); | |||
Menu *createContextMenu(); | |||
Menu *createContextMenu() override; | |||
}; | |||
struct ElementsWidget : ModuleWidget { | |||
ElementsWidget(); | |||
Menu *createContextMenu(); | |||
Menu *createContextMenu() override; | |||
}; | |||
struct TidesWidget : ModuleWidget { | |||
@@ -70,5 +70,5 @@ struct VeilsWidget : ModuleWidget { | |||
struct FramesWidget : ModuleWidget { | |||
FramesWidget(); | |||
Menu *createContextMenu(); | |||
Menu *createContextMenu() override; | |||
}; |
@@ -37,7 +37,7 @@ struct Blinds : Module { | |||
float gainLights[4] = {}; | |||
Blinds() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {} | |||
void step(); | |||
void step() override; | |||
}; | |||
@@ -41,10 +41,10 @@ struct Braids : Module { | |||
bool lastTrig = false; | |||
Braids(); | |||
void step(); | |||
void step() override; | |||
void setShape(int shape); | |||
json_t *toJson() { | |||
json_t *toJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t *settingsJ = json_array(); | |||
uint8_t *settingsArray = &settings.shape; | |||
@@ -56,7 +56,7 @@ struct Braids : Module { | |||
return rootJ; | |||
} | |||
void fromJson(json_t *rootJ) { | |||
void fromJson(json_t *rootJ) override { | |||
json_t *settingsJ = json_object_get(rootJ, "settings"); | |||
if (settingsJ) { | |||
uint8_t *settingsArray = &settings.shape; | |||
@@ -143,7 +143,7 @@ void Braids::step() { | |||
for (int i = 0; i < 24; i++) { | |||
in[i].samples[0] = render_buffer[i] / 32768.0; | |||
} | |||
src.setRatio(gSampleRate / 96000.0); | |||
src.setRatio(engineGetSampleRate() / 96000.0); | |||
int inLen = 24; | |||
int outLen = outputBuffer.capacity(); | |||
@@ -218,7 +218,7 @@ struct BraidsDisplay : TransparentWidget { | |||
font = Font::load(assetPlugin(plugin, "res/hdad-segment14-1.002/Segment14.ttf")); | |||
} | |||
void draw(NVGcontext *vg) { | |||
void draw(NVGcontext *vg) override { | |||
int shape = module->settings.shape; | |||
// Background | |||
@@ -293,11 +293,11 @@ struct BraidsSettingItem : MenuItem { | |||
uint8_t *setting = NULL; | |||
uint8_t offValue = 0; | |||
uint8_t onValue = 1; | |||
void onAction() { | |||
void onAction() override { | |||
// Toggle setting | |||
*setting = (*setting == onValue) ? offValue : onValue; | |||
} | |||
void step() { | |||
void step() override { | |||
rightText = (*setting == onValue) ? "âś”" : ""; | |||
} | |||
}; | |||
@@ -29,8 +29,7 @@ struct Branches : Module { | |||
float light[2] = {}; | |||
Branches() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {} | |||
void step(); | |||
float getOutput(int outputId); | |||
void step() override; | |||
}; | |||
@@ -48,7 +48,7 @@ struct Clouds : Module { | |||
Clouds(); | |||
~Clouds(); | |||
void step(); | |||
void step() override; | |||
}; | |||
@@ -88,7 +88,7 @@ void Clouds::step() { | |||
clouds::ShortFrame input[32] = {}; | |||
// Convert input buffer | |||
{ | |||
inputSrc.setRatio(32000.0 / gSampleRate); | |||
inputSrc.setRatio(32000.0 / engineGetSampleRate()); | |||
Frame<2> inputFrames[32]; | |||
int inLen = inputBuffer.size(); | |||
int outLen = 32; | |||
@@ -135,7 +135,7 @@ void Clouds::step() { | |||
outputFrames[i].samples[1] = output[i].r / 32768.0; | |||
} | |||
outputSrc.setRatio(gSampleRate / 32000.0); | |||
outputSrc.setRatio(engineGetSampleRate() / 32000.0); | |||
int inLen = 32; | |||
int outLen = outputBuffer.capacity(); | |||
outputSrc.process(outputFrames, &inLen, outputBuffer.endData(), &outLen); | |||
@@ -78,15 +78,15 @@ struct Elements : Module { | |||
Elements(); | |||
~Elements(); | |||
void step(); | |||
void step() override; | |||
json_t *toJson() { | |||
json_t *toJson() override { | |||
json_t *rootJ = json_object(); | |||
json_object_set_new(rootJ, "model", json_integer(getModel())); | |||
return rootJ; | |||
} | |||
void fromJson(json_t *rootJ) { | |||
void fromJson(json_t *rootJ) override { | |||
json_t *modelJ = json_object_get(rootJ, "model"); | |||
if (modelJ) { | |||
setModel(json_integer_value(modelJ)); | |||
@@ -135,7 +135,7 @@ void Elements::step() { | |||
// Convert input buffer | |||
{ | |||
inputSrc.setRatio(32000.0 / gSampleRate); | |||
inputSrc.setRatio(32000.0 / engineGetSampleRate()); | |||
Frame<2> inputFrames[16]; | |||
int inLen = inputBuffer.size(); | |||
int outLen = 16; | |||
@@ -186,7 +186,7 @@ void Elements::step() { | |||
outputFrames[i].samples[1] = aux[i]; | |||
} | |||
outputSrc.setRatio(gSampleRate / 32000.0); | |||
outputSrc.setRatio(engineGetSampleRate() / 32000.0); | |||
int inLen = 16; | |||
int outLen = outputBuffer.capacity(); | |||
outputSrc.process(outputFrames, &inLen, outputBuffer.endData(), &outLen); | |||
@@ -287,10 +287,10 @@ ElementsWidget::ElementsWidget() { | |||
struct ElementsModalItem : MenuItem { | |||
Elements *elements; | |||
int model; | |||
void onAction() { | |||
void onAction() override { | |||
elements->setModel(model); | |||
} | |||
void step() { | |||
void step() override { | |||
rightText = (elements->getModel() == model) ? "âś”" : ""; | |||
} | |||
}; | |||
@@ -50,9 +50,9 @@ struct Frames : Module { | |||
bool clearKeyframes = false; | |||
Frames(); | |||
void step(); | |||
void step() override; | |||
json_t *toJson() { | |||
json_t *toJson() override { | |||
json_t *rootJ = json_object(); | |||
json_object_set_new(rootJ, "polyLfo", json_boolean(poly_lfo_mode)); | |||
@@ -73,7 +73,7 @@ struct Frames : Module { | |||
return rootJ; | |||
} | |||
void fromJson(json_t *rootJ) { | |||
void fromJson(json_t *rootJ) override { | |||
json_t *polyLfoJ = json_object_get(rootJ, "polyLfo"); | |||
if (polyLfoJ) | |||
poly_lfo_mode = json_boolean_value(polyLfoJ); | |||
@@ -95,11 +95,11 @@ struct Frames : Module { | |||
// TODO Channel settings | |||
} | |||
void initialize() { | |||
void initialize() override { | |||
poly_lfo_mode = false; | |||
keyframer.Clear(); | |||
} | |||
void randomize() { | |||
void randomize() override { | |||
// TODO | |||
// Maybe something useful should go in here?? | |||
} | |||
@@ -249,7 +249,7 @@ struct FramesLight : Light { | |||
FramesLight() { | |||
box.size = Vec(67, 67); | |||
} | |||
void step() { | |||
void step() override { | |||
const NVGcolor red = COLOR_RED; | |||
const NVGcolor green = COLOR_GREEN; | |||
const NVGcolor blue = COLOR_BLUE; | |||
@@ -336,10 +336,10 @@ struct FramesCurveItem : MenuItem { | |||
Frames *frames; | |||
uint8_t channel; | |||
frames::EasingCurve curve; | |||
void onAction() { | |||
void onAction() override { | |||
frames->keyframer.mutable_settings(channel)->easing_curve = curve; | |||
} | |||
void step() { | |||
void step() override { | |||
rightText = (frames->keyframer.mutable_settings(channel)->easing_curve == curve) ? "âś”" : ""; | |||
} | |||
}; | |||
@@ -348,10 +348,10 @@ struct FramesResponseItem : MenuItem { | |||
Frames *frames; | |||
uint8_t channel; | |||
uint8_t response; | |||
void onAction() { | |||
void onAction() override { | |||
frames->keyframer.mutable_settings(channel)->response = response; | |||
} | |||
void step() { | |||
void step() override { | |||
rightText = (frames->keyframer.mutable_settings(channel)->response = response) ? "âś”" : ""; | |||
} | |||
}; | |||
@@ -359,7 +359,7 @@ struct FramesResponseItem : MenuItem { | |||
struct FramesChannelSettingsItem : MenuItem { | |||
Frames *frames; | |||
uint8_t channel; | |||
Menu *createChildMenu() { | |||
Menu *createChildMenu() override { | |||
Menu *menu = new Menu(); | |||
// TODO | |||
@@ -381,7 +381,7 @@ struct FramesChannelSettingsItem : MenuItem { | |||
struct FramesClearItem : MenuItem { | |||
Frames *frames; | |||
void onAction() { | |||
void onAction() override { | |||
frames->keyframer.Clear(); | |||
} | |||
}; | |||
@@ -389,10 +389,10 @@ struct FramesClearItem : MenuItem { | |||
struct FramesModeItem : MenuItem { | |||
Frames *frames; | |||
bool poly_lfo_mode; | |||
void onAction() { | |||
void onAction() override { | |||
frames->poly_lfo_mode = poly_lfo_mode; | |||
} | |||
void step() { | |||
void step() override { | |||
rightText = (frames->poly_lfo_mode == poly_lfo_mode) ? "âś”" : ""; | |||
} | |||
}; | |||
@@ -32,7 +32,7 @@ struct Kinks : Module { | |||
Kinks() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) { | |||
trigger.setThresholds(0.0, 0.7); | |||
} | |||
void step(); | |||
void step() override; | |||
}; | |||
@@ -26,7 +26,7 @@ struct Links : Module { | |||
float lights[3] = {}; | |||
Links() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {} | |||
void step(); | |||
void step() override; | |||
}; | |||
@@ -62,9 +62,9 @@ struct Rings : Module { | |||
int model = 0; | |||
Rings(); | |||
void step(); | |||
void step() override; | |||
json_t *toJson() { | |||
json_t *toJson() override { | |||
json_t *rootJ = json_object(); | |||
json_object_set_new(rootJ, "polyphony", json_integer(polyphonyMode)); | |||
@@ -73,7 +73,7 @@ struct Rings : Module { | |||
return rootJ; | |||
} | |||
void fromJson(json_t *rootJ) { | |||
void fromJson(json_t *rootJ) override { | |||
json_t *polyphonyJ = json_object_get(rootJ, "polyphony"); | |||
if (polyphonyJ) { | |||
polyphonyMode = json_integer_value(polyphonyJ); | |||
@@ -85,12 +85,12 @@ struct Rings : Module { | |||
} | |||
} | |||
void initialize() { | |||
void initialize() override { | |||
polyphonyMode = 0; | |||
model = 0; | |||
} | |||
void randomize() { | |||
void randomize() override { | |||
polyphonyMode = randomu32() % 3; | |||
model = randomu32() % 3; | |||
} | |||
@@ -140,7 +140,7 @@ void Rings::step() { | |||
float in[24] = {}; | |||
// Convert input buffer | |||
{ | |||
inputSrc.setRatio(48000.0 / gSampleRate); | |||
inputSrc.setRatio(48000.0 / engineGetSampleRate()); | |||
int inLen = inputBuffer.size(); | |||
int outLen = 24; | |||
inputSrc.process(inputBuffer.startData(), &inLen, (Frame<1>*) in, &outLen); | |||
@@ -204,7 +204,7 @@ void Rings::step() { | |||
outputFrames[i].samples[1] = aux[i]; | |||
} | |||
outputSrc.setRatio(gSampleRate / 48000.0); | |||
outputSrc.setRatio(engineGetSampleRate() / 48000.0); | |||
int inLen = 24; | |||
int outLen = outputBuffer.capacity(); | |||
outputSrc.process(outputFrames, &inLen, outputBuffer.endData(), &outLen); | |||
@@ -28,7 +28,7 @@ struct Shades : Module { | |||
float lights[3] = {}; | |||
Shades() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {} | |||
void step(); | |||
void step() override; | |||
}; | |||
@@ -32,7 +32,7 @@ struct Streams : Module { | |||
}; | |||
Streams() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {} | |||
void step(); | |||
void step() override; | |||
}; | |||
@@ -49,9 +49,9 @@ struct Tides : Module { | |||
SchmittTrigger rangeTrigger; | |||
Tides(); | |||
void step(); | |||
void step() override; | |||
json_t *toJson() { | |||
json_t *toJson() override { | |||
json_t *rootJ = json_object(); | |||
json_object_set_new(rootJ, "mode", json_integer((int) generator.mode())); | |||
@@ -60,7 +60,7 @@ struct Tides : Module { | |||
return rootJ; | |||
} | |||
void fromJson(json_t *rootJ) { | |||
void fromJson(json_t *rootJ) override { | |||
json_t *modeJ = json_object_get(rootJ, "mode"); | |||
if (modeJ) { | |||
generator.set_mode((tides::GeneratorMode) json_integer_value(modeJ)); | |||
@@ -72,12 +72,12 @@ struct Tides : Module { | |||
} | |||
} | |||
void initialize() { | |||
void initialize() override { | |||
generator.set_range(tides::GENERATOR_RANGE_MEDIUM); | |||
generator.set_mode(tides::GENERATOR_MODE_LOOPING); | |||
} | |||
void randomize() { | |||
void randomize() override { | |||
generator.set_range((tides::GeneratorRange) (randomu32() % 3)); | |||
generator.set_mode((tides::GeneratorMode) (randomu32() % 3)); | |||
} | |||
@@ -116,7 +116,7 @@ void Tides::step() { | |||
pitch += params[FM_PARAM].value * inputs[FM_INPUT].normalize(0.1) / 5.0; | |||
pitch += 60.0; | |||
// Scale to the global sample rate | |||
pitch += log2f(48000.0 / gSampleRate) * 12.0; | |||
pitch += log2f(48000.0 / engineGetSampleRate()) * 12.0; | |||
generator.set_pitch(clampf(pitch * 0x80, -0x8000, 0x7fff)); | |||
// Slope, smoothness, pitch | |||
@@ -36,7 +36,7 @@ struct Veils : Module { | |||
float lights[4] = {}; | |||
Veils() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {} | |||
void step(); | |||
void step() override; | |||
}; | |||
@@ -36,16 +36,16 @@ struct Warps : Module { | |||
SchmittTrigger stateTrigger; | |||
Warps(); | |||
void step(); | |||
void step() override; | |||
json_t *toJson() { | |||
json_t *toJson() override { | |||
json_t *rootJ = json_object(); | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
json_object_set_new(rootJ, "shape", json_integer(p->carrier_shape)); | |||
return rootJ; | |||
} | |||
void fromJson(json_t *rootJ) { | |||
void fromJson(json_t *rootJ) override { | |||
json_t *shapeJ = json_object_get(rootJ, "shape"); | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
if (shapeJ) { | |||
@@ -53,12 +53,12 @@ struct Warps : Module { | |||
} | |||
} | |||
void initialize() { | |||
void initialize() override { | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
p->carrier_shape = 0; | |||
} | |||
void randomize() { | |||
void randomize() override { | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
p->carrier_shape = randomu32() % 4; | |||
} | |||
@@ -94,7 +94,7 @@ void Warps::step() { | |||
p->frequency_shift_cv = clampf(inputs[ALGORITHM_INPUT].value / 5.0, -1.0, 1.0); | |||
p->phase_shift = p->modulation_algorithm; | |||
p->note = 60.0 * params[LEVEL1_PARAM].value + 12.0 * inputs[LEVEL1_INPUT].normalize(2.0) + 12.0; | |||
p->note += log2f(96000.0 / gSampleRate) * 12.0; | |||
p->note += log2f(96000.0 / engineGetSampleRate()) * 12.0; | |||
modulator.Process(inputFrames, outputFrames, 60); | |||
} | |||
@@ -120,7 +120,7 @@ struct WarpsAlgoLight : ValueLight { | |||
box.size = Vec(67, 67); | |||
} | |||
void step() { | |||
void step() override { | |||
// TODO Set these to Warps' actual colors | |||
static NVGcolor colors[9] = { | |||
nvgHSL(0.5, 0.3, 0.85), | |||