@@ -55,18 +55,18 @@ struct Blinds : Module { | |||
configParam(MOD4_PARAM, -1.0, 1.0, 0.0, "Modulation 4"); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
float out = 0.0; | |||
for (int i = 0; i < 4; i++) { | |||
float g = params[GAIN1_PARAM + i].getValue(); | |||
g += params[MOD1_PARAM + i].getValue() * inputs[CV1_INPUT + i].getVoltage() / 5.0; | |||
g = clamp(g, -2.0f, 2.0f); | |||
lights[CV1_POS_LIGHT + 2*i].setSmoothBrightness(fmaxf(0.0, g), args.sampleTime); | |||
lights[CV1_NEG_LIGHT + 2*i].setSmoothBrightness(fmaxf(0.0, -g), args.sampleTime); | |||
lights[CV1_POS_LIGHT + 2 * i].setSmoothBrightness(fmaxf(0.0, g), args.sampleTime); | |||
lights[CV1_NEG_LIGHT + 2 * i].setSmoothBrightness(fmaxf(0.0, -g), args.sampleTime); | |||
out += g * inputs[IN1_INPUT + i].getNormalVoltage(5.0); | |||
lights[OUT1_POS_LIGHT + 2*i].setSmoothBrightness(fmaxf(0.0, out / 5.0), args.sampleTime); | |||
lights[OUT1_NEG_LIGHT + 2*i].setSmoothBrightness(fmaxf(0.0, -out / 5.0), args.sampleTime); | |||
lights[OUT1_POS_LIGHT + 2 * i].setSmoothBrightness(fmaxf(0.0, out / 5.0), args.sampleTime); | |||
lights[OUT1_NEG_LIGHT + 2 * i].setSmoothBrightness(fmaxf(0.0, -out / 5.0), args.sampleTime); | |||
if (outputs[OUT1_OUTPUT + i].isConnected()) { | |||
outputs[OUT1_OUTPUT + i].setVoltage(out); | |||
out = 0.0; | |||
@@ -77,7 +77,7 @@ struct Blinds : Module { | |||
struct BlindsWidget : ModuleWidget { | |||
BlindsWidget(Blinds *module) { | |||
BlindsWidget(Blinds* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Blinds.svg"))); | |||
@@ -124,4 +124,4 @@ struct BlindsWidget : ModuleWidget { | |||
}; | |||
Model *modelBlinds = createModel<Blinds, BlindsWidget>("Blinds"); | |||
Model* modelBlinds = createModel<Blinds, BlindsWidget>("Blinds"); |
@@ -62,7 +62,7 @@ struct Braids : Module { | |||
settings.signature = 0; | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// Trigger | |||
bool trig = inputs[TRIG_INPUT].getVoltage() >= 1.0; | |||
if (!lastTrig && trig) { | |||
@@ -146,34 +146,34 @@ struct Braids : Module { | |||
} | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t *settingsJ = json_array(); | |||
uint8_t *settingsArray = &settings.shape; | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_t* settingsJ = json_array(); | |||
uint8_t* settingsArray = &settings.shape; | |||
for (int i = 0; i < 20; i++) { | |||
json_t *settingJ = json_integer(settingsArray[i]); | |||
json_t* settingJ = json_integer(settingsArray[i]); | |||
json_array_insert_new(settingsJ, i, settingJ); | |||
} | |||
json_object_set_new(rootJ, "settings", settingsJ); | |||
json_t *lowCpuJ = json_boolean(lowCpu); | |||
json_t* lowCpuJ = json_boolean(lowCpu); | |||
json_object_set_new(rootJ, "lowCpu", lowCpuJ); | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *settingsJ = json_object_get(rootJ, "settings"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* settingsJ = json_object_get(rootJ, "settings"); | |||
if (settingsJ) { | |||
uint8_t *settingsArray = &settings.shape; | |||
uint8_t* settingsArray = &settings.shape; | |||
for (int i = 0; i < 20; i++) { | |||
json_t *settingJ = json_array_get(settingsJ, i); | |||
json_t* settingJ = json_array_get(settingsJ, i); | |||
if (settingJ) | |||
settingsArray[i] = json_integer_value(settingJ); | |||
} | |||
} | |||
json_t *lowCpuJ = json_object_get(rootJ, "lowCpu"); | |||
json_t* lowCpuJ = json_object_get(rootJ, "lowCpu"); | |||
if (lowCpuJ) { | |||
lowCpu = json_boolean_value(lowCpuJ); | |||
} | |||
@@ -183,7 +183,7 @@ struct Braids : Module { | |||
static const char *algo_values[] = { | |||
static const char* algo_values[] = { | |||
"CSAW", | |||
"/\\-_", | |||
"//-_", | |||
@@ -235,14 +235,14 @@ static const char *algo_values[] = { | |||
}; | |||
struct BraidsDisplay : TransparentWidget { | |||
Braids *module; | |||
Braids* module; | |||
std::shared_ptr<Font> font; | |||
BraidsDisplay() { | |||
font = APP->window->loadFont(asset::plugin(pluginInstance, "res/hdad-segment14-1.002/Segment14.ttf")); | |||
} | |||
void draw(const DrawArgs &args) override { | |||
void draw(const DrawArgs& args) override { | |||
int shape = module ? module->settings.shape : 0; | |||
// Background | |||
@@ -271,10 +271,10 @@ struct BraidsDisplay : TransparentWidget { | |||
struct BraidsSettingItem : MenuItem { | |||
uint8_t *setting = NULL; | |||
uint8_t* setting = NULL; | |||
uint8_t offValue = 0; | |||
uint8_t onValue = 1; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
// Toggle setting | |||
*setting = (*setting == onValue) ? offValue : onValue; | |||
} | |||
@@ -285,8 +285,8 @@ struct BraidsSettingItem : MenuItem { | |||
}; | |||
struct BraidsLowCpuItem : MenuItem { | |||
Braids *braids; | |||
void onAction(const event::Action &e) override { | |||
Braids* braids; | |||
void onAction(const event::Action& e) override { | |||
braids->lowCpu = !braids->lowCpu; | |||
} | |||
void step() override { | |||
@@ -297,12 +297,12 @@ struct BraidsLowCpuItem : MenuItem { | |||
struct BraidsWidget : ModuleWidget { | |||
BraidsWidget(Braids *module) { | |||
BraidsWidget(Braids* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Braids.svg"))); | |||
{ | |||
BraidsDisplay *display = new BraidsDisplay(); | |||
BraidsDisplay* display = new BraidsDisplay(); | |||
display->box.pos = Vec(14, 53); | |||
display->box.size = Vec(148, 56); | |||
display->module = module; | |||
@@ -332,8 +332,8 @@ struct BraidsWidget : ModuleWidget { | |||
addOutput(createOutput<PJ301MPort>(Vec(205, 316), module, Braids::OUT_OUTPUT)); | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Braids *braids = dynamic_cast<Braids*>(module); | |||
void appendContextMenu(Menu* menu) override { | |||
Braids* braids = dynamic_cast<Braids*>(module); | |||
assert(braids); | |||
menu->addChild(new MenuSeparator); | |||
@@ -346,4 +346,4 @@ struct BraidsWidget : ModuleWidget { | |||
}; | |||
Model *modelBraids = createModel<Braids, BraidsWidget>("Braids"); | |||
Model* modelBraids = createModel<Braids, BraidsWidget>("Braids"); |
@@ -44,9 +44,9 @@ struct Branches : Module { | |||
configParam(MODE2_PARAM, 0.0, 1.0, 0.0, "Mode 2"); | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t *modesJ = json_array(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_t* modesJ = json_array(); | |||
for (int i = 0; i < 2; i++) { | |||
json_array_insert_new(modesJ, i, json_boolean(modes[i])); | |||
} | |||
@@ -54,18 +54,18 @@ struct Branches : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *modesJ = json_object_get(rootJ, "modes"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* modesJ = json_object_get(rootJ, "modes"); | |||
if (modesJ) { | |||
for (int i = 0; i < 2; i++) { | |||
json_t *modeJ = json_array_get(modesJ, i); | |||
json_t* modeJ = json_array_get(modesJ, i); | |||
if (modeJ) | |||
modes[i] = json_boolean_value(modeJ); | |||
} | |||
} | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
float gate = 0.0; | |||
for (int i = 0; i < 2; i++) { | |||
// mode button | |||
@@ -90,13 +90,13 @@ struct Branches : Module { | |||
} | |||
if (!outcomes[i]) | |||
lights[STATE1_POS_LIGHT + 2*i].value = 1.0; | |||
lights[STATE1_POS_LIGHT + 2 * i].value = 1.0; | |||
else | |||
lights[STATE1_NEG_LIGHT + 2*i].value = 1.0; | |||
lights[STATE1_NEG_LIGHT + 2 * i].value = 1.0; | |||
} | |||
lights[STATE1_POS_LIGHT + 2*i].value *= 1.0 - args.sampleTime * 15.0; | |||
lights[STATE1_NEG_LIGHT + 2*i].value *= 1.0 - args.sampleTime * 15.0; | |||
lights[STATE1_POS_LIGHT + 2 * i].value *= 1.0 - args.sampleTime * 15.0; | |||
lights[STATE1_NEG_LIGHT + 2 * i].value *= 1.0 - args.sampleTime * 15.0; | |||
lights[MODE1_LIGHT + i].value = modes[i] ? 1.0 : 0.0; | |||
outputs[OUT1A_OUTPUT + i].setVoltage(outcomes[i] ? 0.0 : gate); | |||
@@ -114,7 +114,7 @@ struct Branches : Module { | |||
struct BranchesWidget : ModuleWidget { | |||
BranchesWidget(Branches *module) { | |||
BranchesWidget(Branches* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Branches.svg"))); | |||
@@ -139,14 +139,14 @@ struct BranchesWidget : ModuleWidget { | |||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(40, 325), module, Branches::STATE2_POS_LIGHT)); | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Branches *branches = dynamic_cast<Branches*>(module); | |||
void appendContextMenu(Menu* menu) override { | |||
Branches* branches = dynamic_cast<Branches*>(module); | |||
assert(branches); | |||
struct BranchesModeItem : MenuItem { | |||
Branches *branches; | |||
Branches* branches; | |||
int channel; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
branches->modes[channel] ^= 1; | |||
} | |||
void step() override { | |||
@@ -164,4 +164,4 @@ struct BranchesWidget : ModuleWidget { | |||
}; | |||
Model *modelBranches = createModel<Branches, BranchesWidget>("Branches"); | |||
Model* modelBranches = createModel<Branches, BranchesWidget>("Branches"); |
@@ -51,9 +51,9 @@ struct Clouds : Module { | |||
dsp::DoubleRingBuffer<dsp::Frame<2>, 256> inputBuffer; | |||
dsp::DoubleRingBuffer<dsp::Frame<2>, 256> outputBuffer; | |||
uint8_t *block_mem; | |||
uint8_t *block_ccm; | |||
clouds::GranularProcessor *processor; | |||
uint8_t* block_mem; | |||
uint8_t* block_ccm; | |||
clouds::GranularProcessor* processor; | |||
bool triggered = false; | |||
@@ -98,7 +98,7 @@ struct Clouds : Module { | |||
delete[] block_ccm; | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// Get input | |||
dsp::Frame<2> inputFrame = {}; | |||
if (!inputBuffer.full()) { | |||
@@ -143,7 +143,7 @@ struct Clouds : Module { | |||
processor->set_quality(quality); | |||
processor->Prepare(); | |||
clouds::Parameters *p = processor->mutable_parameters(); | |||
clouds::Parameters* p = processor->mutable_parameters(); | |||
p->trigger = triggered; | |||
p->gate = triggered; | |||
p->freeze = freeze || (inputs[FREEZE_INPUT].getVoltage() >= 1.0); | |||
@@ -208,7 +208,7 @@ struct Clouds : Module { | |||
} | |||
// Lights | |||
clouds::Parameters *p = processor->mutable_parameters(); | |||
clouds::Parameters* p = processor->mutable_parameters(); | |||
dsp::VuMeter vuMeter; | |||
vuMeter.dBInterval = 6.0; | |||
dsp::Frame<2> lightFrame = p->freeze ? outputFrame : inputFrame; | |||
@@ -231,8 +231,8 @@ struct Clouds : Module { | |||
quality = 0; | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_object_set_new(rootJ, "playback", json_integer((int) playback)); | |||
json_object_set_new(rootJ, "quality", json_integer(quality)); | |||
@@ -241,18 +241,18 @@ struct Clouds : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *playbackJ = json_object_get(rootJ, "playback"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* playbackJ = json_object_get(rootJ, "playback"); | |||
if (playbackJ) { | |||
playback = (clouds::PlaybackMode) json_integer_value(playbackJ); | |||
} | |||
json_t *qualityJ = json_object_get(rootJ, "quality"); | |||
json_t* qualityJ = json_object_get(rootJ, "quality"); | |||
if (qualityJ) { | |||
quality = json_integer_value(qualityJ); | |||
} | |||
json_t *blendModeJ = json_object_get(rootJ, "blendMode"); | |||
json_t* blendModeJ = json_object_get(rootJ, "blendMode"); | |||
if (blendModeJ) { | |||
blendMode = json_integer_value(blendModeJ); | |||
} | |||
@@ -262,16 +262,16 @@ struct Clouds : Module { | |||
struct FreezeLight : YellowLight { | |||
FreezeLight() { | |||
box.size = Vec(28-6, 28-6); | |||
box.size = Vec(28 - 6, 28 - 6); | |||
bgColor = color::BLACK_TRANSPARENT; | |||
} | |||
}; | |||
struct CloudsBlendItem : MenuItem { | |||
Clouds *module; | |||
Clouds* module; | |||
int blendMode; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
module->blendMode = blendMode; | |||
} | |||
void step() override { | |||
@@ -282,9 +282,9 @@ struct CloudsBlendItem : MenuItem { | |||
struct CloudsPlaybackItem : MenuItem { | |||
Clouds *module; | |||
Clouds* module; | |||
clouds::PlaybackMode playback; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
module->playback = playback; | |||
} | |||
void step() override { | |||
@@ -295,9 +295,9 @@ struct CloudsPlaybackItem : MenuItem { | |||
struct CloudsQualityItem : MenuItem { | |||
Clouds *module; | |||
Clouds* module; | |||
int quality; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
module->quality = quality; | |||
} | |||
void step() override { | |||
@@ -308,12 +308,12 @@ struct CloudsQualityItem : MenuItem { | |||
struct CloudsWidget : ModuleWidget { | |||
ParamWidget *blendParam; | |||
ParamWidget *spreadParam; | |||
ParamWidget *feedbackParam; | |||
ParamWidget *reverbParam; | |||
ParamWidget* blendParam; | |||
ParamWidget* spreadParam; | |||
ParamWidget* feedbackParam; | |||
ParamWidget* reverbParam; | |||
CloudsWidget(Clouds *module) { | |||
CloudsWidget(Clouds* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Clouds.svg"))); | |||
@@ -356,7 +356,7 @@ struct CloudsWidget : ModuleWidget { | |||
addOutput(createOutput<PJ301MPort>(Vec(188, 317), module, Clouds::OUT_L_OUTPUT)); | |||
addOutput(createOutput<PJ301MPort>(Vec(230, 317), module, Clouds::OUT_R_OUTPUT)); | |||
addChild(createLight<FreezeLight>(Vec(12+3, 43+3), module, Clouds::FREEZE_LIGHT)); | |||
addChild(createLight<FreezeLight>(Vec(12 + 3, 43 + 3), module, Clouds::FREEZE_LIGHT)); | |||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(82.5, 53), module, Clouds::MIX_GREEN_LIGHT)); | |||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(114.5, 53), module, Clouds::PAN_GREEN_LIGHT)); | |||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(145.5, 53), module, Clouds::FEEDBACK_GREEN_LIGHT)); | |||
@@ -364,7 +364,7 @@ struct CloudsWidget : ModuleWidget { | |||
} | |||
void step() override { | |||
Clouds *module = dynamic_cast<Clouds*>(this->module); | |||
Clouds* module = dynamic_cast<Clouds*>(this->module); | |||
if (module) { | |||
blendParam->visible = (module->blendMode == 0); | |||
@@ -376,8 +376,8 @@ struct CloudsWidget : ModuleWidget { | |||
ModuleWidget::step(); | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Clouds *module = dynamic_cast<Clouds*>(this->module); | |||
void appendContextMenu(Menu* menu) override { | |||
Clouds* module = dynamic_cast<Clouds*>(this->module); | |||
assert(module); | |||
menu->addChild(new MenuSeparator); | |||
@@ -404,4 +404,4 @@ struct CloudsWidget : ModuleWidget { | |||
}; | |||
Model *modelClouds = createModel<Clouds, CloudsWidget>("Clouds"); | |||
Model* modelClouds = createModel<Clouds, CloudsWidget>("Clouds"); |
@@ -76,7 +76,7 @@ struct Elements : Module { | |||
dsp::DoubleRingBuffer<dsp::Frame<2>, 256> outputBuffer; | |||
uint16_t reverb_buffer[32768] = {}; | |||
elements::Part *part; | |||
elements::Part* part; | |||
Elements() { | |||
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | |||
@@ -122,7 +122,7 @@ struct Elements : Module { | |||
delete part; | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// Get input | |||
if (!inputBuffer.full()) { | |||
dsp::Frame<2> inputFrame; | |||
@@ -171,14 +171,14 @@ struct Elements : Module { | |||
p->resonator_brightness = BIND(BRIGHTNESS_PARAM, BRIGHTNESS_MOD_PARAM, BRIGHTNESS_MOD_INPUT); | |||
p->resonator_damping = BIND(DAMPING_PARAM, DAMPING_MOD_PARAM, DAMPING_MOD_INPUT); | |||
p->resonator_position = BIND(POSITION_PARAM, POSITION_MOD_PARAM, POSITION_MOD_INPUT); | |||
p->space = clamp(params[SPACE_PARAM].getValue() + params[SPACE_MOD_PARAM].getValue()*inputs[SPACE_MOD_INPUT].getVoltage()/5.0f, 0.0f, 2.0f); | |||
p->space = clamp(params[SPACE_PARAM].getValue() + params[SPACE_MOD_PARAM].getValue() * inputs[SPACE_MOD_INPUT].getVoltage() / 5.0f, 0.0f, 2.0f); | |||
// Get performance inputs | |||
elements::PerformanceState performance; | |||
performance.note = 12.0*inputs[NOTE_INPUT].getVoltage() + roundf(params[COARSE_PARAM].getValue()) + params[FINE_PARAM].getValue() + 69.0; | |||
performance.modulation = 3.3*dsp::quarticBipolar(params[FM_PARAM].getValue()) * 49.5 * inputs[FM_INPUT].getVoltage()/5.0; | |||
performance.note = 12.0 * inputs[NOTE_INPUT].getVoltage() + roundf(params[COARSE_PARAM].getValue()) + params[FINE_PARAM].getValue() + 69.0; | |||
performance.modulation = 3.3 * dsp::quarticBipolar(params[FM_PARAM].getValue()) * 49.5 * inputs[FM_INPUT].getVoltage() / 5.0; | |||
performance.gate = params[PLAY_PARAM].getValue() >= 1.0 || inputs[GATE_INPUT].getVoltage() >= 1.0; | |||
performance.strength = clamp(1.0 - inputs[STRENGTH_INPUT].getVoltage()/5.0f, 0.0f, 1.0f); | |||
performance.strength = clamp(1.0 - inputs[STRENGTH_INPUT].getVoltage() / 5.0f, 0.0f, 1.0f); | |||
// Generate audio | |||
part->Process(performance, blow, strike, main, aux, 16); | |||
@@ -212,14 +212,14 @@ struct Elements : Module { | |||
} | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_object_set_new(rootJ, "model", json_integer(getModel())); | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *modelJ = json_object_get(rootJ, "model"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* modelJ = json_object_get(rootJ, "model"); | |||
if (modelJ) { | |||
setModel(json_integer_value(modelJ)); | |||
} | |||
@@ -236,9 +236,9 @@ struct Elements : Module { | |||
struct ElementsModalItem : MenuItem { | |||
Elements *elements; | |||
Elements* elements; | |||
int model; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
elements->setModel(model); | |||
} | |||
void step() override { | |||
@@ -249,7 +249,7 @@ struct ElementsModalItem : MenuItem { | |||
struct ElementsWidget : ModuleWidget { | |||
ElementsWidget(Elements *module) { | |||
ElementsWidget(Elements* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Elements.svg"))); | |||
@@ -316,18 +316,18 @@ struct ElementsWidget : ModuleWidget { | |||
struct GateLight : YellowLight { | |||
GateLight() { | |||
box.size = Vec(28-6, 28-6); | |||
box.size = Vec(28 - 6, 28 - 6); | |||
bgColor = color::BLACK_TRANSPARENT; | |||
} | |||
}; | |||
addChild(createLight<GateLight>(Vec(36+3, 116+3), module, Elements::GATE_LIGHT)); | |||
addChild(createLight<GateLight>(Vec(36 + 3, 116 + 3), module, Elements::GATE_LIGHT)); | |||
addChild(createLight<MediumLight<GreenLight>>(Vec(184, 165), module, Elements::EXCITER_LIGHT)); | |||
addChild(createLight<MediumLight<RedLight>>(Vec(395, 165), module, Elements::RESONATOR_LIGHT)); | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Elements *elements = dynamic_cast<Elements*>(module); | |||
void appendContextMenu(Menu* menu) override { | |||
Elements* elements = dynamic_cast<Elements*>(module); | |||
assert(elements); | |||
menu->addChild(new MenuSeparator); | |||
@@ -339,4 +339,4 @@ struct ElementsWidget : ModuleWidget { | |||
}; | |||
Model *modelElements = createModel<Elements, ElementsWidget>("Elements"); | |||
Model* modelElements = createModel<Elements, ElementsWidget>("Elements"); |
@@ -69,7 +69,7 @@ struct Frames : Module { | |||
onReset(); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// Set gain and timestamp knobs | |||
uint16_t controls[4]; | |||
for (int i = 0; i < 4; i++) { | |||
@@ -105,7 +105,7 @@ struct Frames : Module { | |||
keyframer.set_immediate(i, controls[i]); | |||
} | |||
if (nearestIndex >= 0) { | |||
frames::Keyframe *nearestKeyframe = keyframer.mutable_keyframe(nearestIndex); | |||
frames::Keyframe* nearestKeyframe = keyframer.mutable_keyframe(nearestIndex); | |||
nearestKeyframe->values[i] = controls[i]; | |||
} | |||
} | |||
@@ -187,7 +187,7 @@ struct Frames : Module { | |||
} | |||
// Set frame light colors | |||
const uint8_t *colors; | |||
const uint8_t* colors; | |||
if (poly_lfo_mode) { | |||
colors = poly_lfo.color(); | |||
} | |||
@@ -201,14 +201,14 @@ struct Frames : Module { | |||
} | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_object_set_new(rootJ, "polyLfo", json_boolean(poly_lfo_mode)); | |||
json_t *keyframesJ = json_array(); | |||
json_t* keyframesJ = json_array(); | |||
for (int i = 0; i < keyframer.num_keyframes(); i++) { | |||
json_t *keyframeJ = json_array(); | |||
frames::Keyframe *keyframe = keyframer.mutable_keyframe(i); | |||
json_t* keyframeJ = json_array(); | |||
frames::Keyframe* keyframe = keyframer.mutable_keyframe(i); | |||
json_array_append_new(keyframeJ, json_integer(keyframe->timestamp)); | |||
for (int k = 0; k < 4; k++) { | |||
json_array_append_new(keyframeJ, json_integer(keyframe->values[k])); | |||
@@ -217,9 +217,9 @@ struct Frames : Module { | |||
} | |||
json_object_set_new(rootJ, "keyframes", keyframesJ); | |||
json_t *channelsJ = json_array(); | |||
json_t* channelsJ = json_array(); | |||
for (int i = 0; i < 4; i++) { | |||
json_t *channelJ = json_object(); | |||
json_t* channelJ = json_object(); | |||
json_object_set_new(channelJ, "curve", json_integer((int) keyframer.mutable_settings(i)->easing_curve)); | |||
json_object_set_new(channelJ, "response", json_integer(keyframer.mutable_settings(i)->response)); | |||
json_array_append_new(channelsJ, channelJ); | |||
@@ -229,14 +229,14 @@ struct Frames : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *polyLfoJ = json_object_get(rootJ, "polyLfo"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* polyLfoJ = json_object_get(rootJ, "polyLfo"); | |||
if (polyLfoJ) | |||
poly_lfo_mode = json_boolean_value(polyLfoJ); | |||
json_t *keyframesJ = json_object_get(rootJ, "keyframes"); | |||
json_t* keyframesJ = json_object_get(rootJ, "keyframes"); | |||
if (keyframesJ) { | |||
json_t *keyframeJ; | |||
json_t* keyframeJ; | |||
size_t i; | |||
json_array_foreach(keyframesJ, i, keyframeJ) { | |||
uint16_t timestamp = json_integer_value(json_array_get(keyframeJ, 0)); | |||
@@ -248,15 +248,15 @@ struct Frames : Module { | |||
} | |||
} | |||
json_t *channelsJ = json_object_get(rootJ, "channels"); | |||
json_t* channelsJ = json_object_get(rootJ, "channels"); | |||
if (channelsJ) { | |||
for (int i = 0; i < 4; i++) { | |||
json_t *channelJ = json_array_get(channelsJ, i); | |||
json_t* channelJ = json_array_get(channelsJ, i); | |||
if (channelJ) { | |||
json_t *curveJ = json_object_get(channelJ, "curve"); | |||
json_t* curveJ = json_object_get(channelJ, "curve"); | |||
if (curveJ) | |||
keyframer.mutable_settings(i)->easing_curve = (frames::EasingCurve) json_integer_value(curveJ); | |||
json_t *responseJ = json_object_get(channelJ, "response"); | |||
json_t* responseJ = json_object_get(channelJ, "response"); | |||
if (responseJ) | |||
keyframer.mutable_settings(i)->response = json_integer_value(responseJ); | |||
} | |||
@@ -288,14 +288,14 @@ struct CKSSRot : SVGSwitch { | |||
struct FramesWidget : ModuleWidget { | |||
FramesWidget(Frames *module) { | |||
FramesWidget(Frames* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Frames.svg"))); | |||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 30, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x-30, 365))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 30, 365))); | |||
addParam(createParam<Rogan1PSWhite>(Vec(14, 52), module, Frames::GAIN1_PARAM)); | |||
addParam(createParam<Rogan1PSWhite>(Vec(81, 52), module, Frames::GAIN2_PARAM)); | |||
@@ -335,15 +335,15 @@ struct FramesWidget : ModuleWidget { | |||
addChild(createLight<FrameLight>(Vec(100, 126), module, Frames::FRAME_LIGHT)); | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Frames *frames = dynamic_cast<Frames*>(module); | |||
void appendContextMenu(Menu* menu) override { | |||
Frames* frames = dynamic_cast<Frames*>(module); | |||
assert(frames); | |||
struct FramesCurveItem : MenuItem { | |||
Frames *frames; | |||
Frames* frames; | |||
uint8_t channel; | |||
frames::EasingCurve curve; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
frames->keyframer.mutable_settings(channel)->easing_curve = curve; | |||
} | |||
void step() override { | |||
@@ -353,10 +353,10 @@ struct FramesWidget : ModuleWidget { | |||
}; | |||
struct FramesResponseItem : MenuItem { | |||
Frames *frames; | |||
Frames* frames; | |||
uint8_t channel; | |||
uint8_t response; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
frames->keyframer.mutable_settings(channel)->response = response; | |||
} | |||
void step() override { | |||
@@ -366,10 +366,10 @@ struct FramesWidget : ModuleWidget { | |||
}; | |||
struct FramesChannelSettingsItem : MenuItem { | |||
Frames *frames; | |||
Frames* frames; | |||
uint8_t channel; | |||
Menu *createChildMenu() override { | |||
Menu *menu = new Menu(); | |||
Menu* createChildMenu() override { | |||
Menu* menu = new Menu(); | |||
menu->addChild(construct<MenuLabel>(&MenuLabel::text, string::f("Channel %d", channel + 1))); | |||
menu->addChild(new MenuSeparator); | |||
@@ -391,16 +391,16 @@ struct FramesWidget : ModuleWidget { | |||
}; | |||
struct FramesClearItem : MenuItem { | |||
Frames *frames; | |||
void onAction(const event::Action &e) override { | |||
Frames* frames; | |||
void onAction(const event::Action& e) override { | |||
frames->keyframer.Clear(); | |||
} | |||
}; | |||
struct FramesModeItem : MenuItem { | |||
Frames *frames; | |||
Frames* frames; | |||
bool poly_lfo_mode; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
frames->poly_lfo_mode = poly_lfo_mode; | |||
} | |||
void step() override { | |||
@@ -424,4 +424,4 @@ struct FramesWidget : ModuleWidget { | |||
}; | |||
Model *modelFrames = createModel<Frames, FramesWidget>("Frames"); | |||
Model* modelFrames = createModel<Frames, FramesWidget>("Frames"); |
@@ -37,7 +37,7 @@ struct Kinks : Module { | |||
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// Gaussian noise generator | |||
float noise = 2.0 * random::normal(); | |||
@@ -68,7 +68,7 @@ struct Kinks : Module { | |||
struct KinksWidget : ModuleWidget { | |||
KinksWidget(Kinks *module) { | |||
KinksWidget(Kinks* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Kinks.svg"))); | |||
@@ -97,4 +97,4 @@ struct KinksWidget : ModuleWidget { | |||
}; | |||
Model *modelKinks = createModel<Kinks, KinksWidget>("Kinks"); | |||
Model* modelKinks = createModel<Kinks, KinksWidget>("Kinks"); |
@@ -34,7 +34,7 @@ struct Links : Module { | |||
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
float inA = inputs[A1_INPUT].getVoltage(); | |||
float inB = inputs[B1_INPUT].getVoltage() + inputs[B2_INPUT].getVoltage(); | |||
float inC = inputs[C1_INPUT].getVoltage() + inputs[C2_INPUT].getVoltage() + inputs[C3_INPUT].getVoltage(); | |||
@@ -57,7 +57,7 @@ struct Links : Module { | |||
struct LinksWidget : ModuleWidget { | |||
LinksWidget(Links *module) { | |||
LinksWidget(Links* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Links.svg"))); | |||
@@ -86,4 +86,4 @@ struct LinksWidget : ModuleWidget { | |||
}; | |||
Model *modelLinks = createModel<Links, LinksWidget>("Links"); | |||
Model* modelLinks = createModel<Links, LinksWidget>("Links"); |
@@ -279,8 +279,8 @@ struct Marbles : Module { | |||
} | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_object_set_new(rootJ, "t_deja_vu", json_boolean(t_deja_vu)); | |||
json_object_set_new(rootJ, "x_deja_vu", json_boolean(x_deja_vu)); | |||
@@ -296,49 +296,49 @@ struct Marbles : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *t_deja_vuJ = json_object_get(rootJ, "t_deja_vu"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* t_deja_vuJ = json_object_get(rootJ, "t_deja_vu"); | |||
if (t_deja_vuJ) | |||
t_deja_vu = json_boolean_value(t_deja_vuJ); | |||
json_t *x_deja_vuJ = json_object_get(rootJ, "x_deja_vu"); | |||
json_t* x_deja_vuJ = json_object_get(rootJ, "x_deja_vu"); | |||
if (x_deja_vuJ) | |||
x_deja_vu = json_boolean_value(x_deja_vuJ); | |||
json_t *t_modeJ = json_object_get(rootJ, "t_mode"); | |||
json_t* t_modeJ = json_object_get(rootJ, "t_mode"); | |||
if (t_modeJ) | |||
t_mode = json_integer_value(t_modeJ); | |||
json_t *x_modeJ = json_object_get(rootJ, "x_mode"); | |||
json_t* x_modeJ = json_object_get(rootJ, "x_mode"); | |||
if (x_modeJ) | |||
x_mode = json_integer_value(x_modeJ); | |||
json_t *t_rangeJ = json_object_get(rootJ, "t_range"); | |||
json_t* t_rangeJ = json_object_get(rootJ, "t_range"); | |||
if (t_rangeJ) | |||
t_range = json_integer_value(t_rangeJ); | |||
json_t *x_rangeJ = json_object_get(rootJ, "x_range"); | |||
json_t* x_rangeJ = json_object_get(rootJ, "x_range"); | |||
if (x_rangeJ) | |||
x_range = json_integer_value(x_rangeJ); | |||
json_t *externalJ = json_object_get(rootJ, "external"); | |||
json_t* externalJ = json_object_get(rootJ, "external"); | |||
if (externalJ) | |||
external = json_boolean_value(externalJ); | |||
json_t *x_scaleJ = json_object_get(rootJ, "x_scale"); | |||
json_t* x_scaleJ = json_object_get(rootJ, "x_scale"); | |||
if (x_scaleJ) | |||
x_scale = json_integer_value(x_scaleJ); | |||
json_t *y_divider_indexJ = json_object_get(rootJ, "y_divider_index"); | |||
json_t* y_divider_indexJ = json_object_get(rootJ, "y_divider_index"); | |||
if (y_divider_indexJ) | |||
y_divider_index = json_integer_value(y_divider_indexJ); | |||
json_t *x_clock_source_internalJ = json_object_get(rootJ, "x_clock_source_internal"); | |||
json_t* x_clock_source_internalJ = json_object_get(rootJ, "x_clock_source_internal"); | |||
if (x_clock_source_internalJ) | |||
x_clock_source_internal = json_integer_value(x_clock_source_internalJ); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// Buttons | |||
if (tDejaVuTrigger.process(params[T_DEJA_VU_PARAM].getValue() <= 0.f)) { | |||
t_deja_vu = !t_deja_vu; | |||
@@ -396,21 +396,21 @@ struct Marbles : Module { | |||
lights[EXTERNAL_LIGHT].setBrightness(external); | |||
outputs[T1_OUTPUT].setVoltage(gates[blockIndex*2 + 0] ? 10.f : 0.f); | |||
lights[T1_LIGHT].setSmoothBrightness(gates[blockIndex*2 + 0], args.sampleTime); | |||
outputs[T1_OUTPUT].setVoltage(gates[blockIndex * 2 + 0] ? 10.f : 0.f); | |||
lights[T1_LIGHT].setSmoothBrightness(gates[blockIndex * 2 + 0], args.sampleTime); | |||
outputs[T2_OUTPUT].setVoltage((ramp_master[blockIndex] < 0.5f) ? 10.f : 0.f); | |||
lights[T2_LIGHT].setSmoothBrightness(ramp_master[blockIndex] < 0.5f, args.sampleTime); | |||
outputs[T3_OUTPUT].setVoltage(gates[blockIndex*2 + 1] ? 10.f : 0.f); | |||
lights[T3_LIGHT].setSmoothBrightness(gates[blockIndex*2 + 1], args.sampleTime); | |||
outputs[X1_OUTPUT].setVoltage(voltages[blockIndex*4 + 0]); | |||
lights[X1_LIGHT].setSmoothBrightness(voltages[blockIndex*4 + 0], args.sampleTime); | |||
outputs[X2_OUTPUT].setVoltage(voltages[blockIndex*4 + 1]); | |||
lights[X2_LIGHT].setSmoothBrightness(voltages[blockIndex*4 + 1], args.sampleTime); | |||
outputs[X3_OUTPUT].setVoltage(voltages[blockIndex*4 + 2]); | |||
lights[X3_LIGHT].setSmoothBrightness(voltages[blockIndex*4 + 2], args.sampleTime); | |||
outputs[Y_OUTPUT].setVoltage(voltages[blockIndex*4 + 3]); | |||
lights[Y_LIGHT].setSmoothBrightness(voltages[blockIndex*4 + 3], args.sampleTime); | |||
outputs[T3_OUTPUT].setVoltage(gates[blockIndex * 2 + 1] ? 10.f : 0.f); | |||
lights[T3_LIGHT].setSmoothBrightness(gates[blockIndex * 2 + 1], args.sampleTime); | |||
outputs[X1_OUTPUT].setVoltage(voltages[blockIndex * 4 + 0]); | |||
lights[X1_LIGHT].setSmoothBrightness(voltages[blockIndex * 4 + 0], args.sampleTime); | |||
outputs[X2_OUTPUT].setVoltage(voltages[blockIndex * 4 + 1]); | |||
lights[X2_LIGHT].setSmoothBrightness(voltages[blockIndex * 4 + 1], args.sampleTime); | |||
outputs[X3_OUTPUT].setVoltage(voltages[blockIndex * 4 + 2]); | |||
lights[X3_LIGHT].setSmoothBrightness(voltages[blockIndex * 4 + 2], args.sampleTime); | |||
outputs[Y_OUTPUT].setVoltage(voltages[blockIndex * 4 + 3]); | |||
lights[Y_LIGHT].setSmoothBrightness(voltages[blockIndex * 4 + 3], args.sampleTime); | |||
} | |||
void stepBlock() { | |||
@@ -526,7 +526,7 @@ struct CKD6Light : BASE { | |||
struct MarblesWidget : ModuleWidget { | |||
MarblesWidget(Marbles *module) { | |||
MarblesWidget(Marbles* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Marbles.svg"))); | |||
@@ -585,13 +585,13 @@ struct MarblesWidget : ModuleWidget { | |||
addChild(createLightCentered<MediumLight<GreenLight>>(mm2px(Vec(78.344, 104.794)), module, Marbles::X3_LIGHT)); | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Marbles *module = dynamic_cast<Marbles*>(this->module); | |||
void appendContextMenu(Menu* menu) override { | |||
Marbles* module = dynamic_cast<Marbles*>(this->module); | |||
struct ScaleItem : MenuItem { | |||
Marbles *module; | |||
Marbles* module; | |||
int scale; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
module->x_scale = scale; | |||
} | |||
}; | |||
@@ -607,16 +607,16 @@ struct MarblesWidget : ModuleWidget { | |||
"Raag Shri", | |||
}; | |||
for (int i = 0; i < (int) LENGTHOF(scaleLabels); i++) { | |||
ScaleItem *item = createMenuItem<ScaleItem>(scaleLabels[i], CHECKMARK(module->x_scale == i)); | |||
ScaleItem* item = createMenuItem<ScaleItem>(scaleLabels[i], CHECKMARK(module->x_scale == i)); | |||
item->module = module; | |||
item->scale = i; | |||
menu->addChild(item); | |||
} | |||
struct XClockSourceInternal : MenuItem { | |||
Marbles *module; | |||
Marbles* module; | |||
int source; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
module->x_clock_source_internal = source; | |||
} | |||
}; | |||
@@ -630,24 +630,24 @@ struct MarblesWidget : ModuleWidget { | |||
"T₃ → X₁, X₂, X₃", | |||
}; | |||
for (int i = 0; i < (int) LENGTHOF(sourceLabels); i++) { | |||
XClockSourceInternal *item = createMenuItem<XClockSourceInternal>(sourceLabels[i], CHECKMARK(module->x_clock_source_internal == i)); | |||
XClockSourceInternal* item = createMenuItem<XClockSourceInternal>(sourceLabels[i], CHECKMARK(module->x_clock_source_internal == i)); | |||
item->module = module; | |||
item->source = i; | |||
menu->addChild(item); | |||
} | |||
struct YDividerIndexItem : MenuItem { | |||
Marbles *module; | |||
Marbles* module; | |||
int index; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
module->y_divider_index = index; | |||
} | |||
}; | |||
struct YDividerItem : MenuItem { | |||
Marbles *module; | |||
Menu *createChildMenu() override { | |||
Menu *menu = new Menu(); | |||
Marbles* module; | |||
Menu* createChildMenu() override { | |||
Menu* menu = new Menu(); | |||
const std::string yDividerRatioLabels[] = { | |||
"1/64", | |||
"1/48", | |||
@@ -663,7 +663,7 @@ struct MarblesWidget : ModuleWidget { | |||
"1", | |||
}; | |||
for (int i = 0; i < (int) LENGTHOF(yDividerRatioLabels); i++) { | |||
YDividerIndexItem *item = createMenuItem<YDividerIndexItem>(yDividerRatioLabels[i], CHECKMARK(module->y_divider_index == i)); | |||
YDividerIndexItem* item = createMenuItem<YDividerIndexItem>(yDividerRatioLabels[i], CHECKMARK(module->y_divider_index == i)); | |||
item->module = module; | |||
item->index = i; | |||
menu->addChild(item); | |||
@@ -673,11 +673,11 @@ struct MarblesWidget : ModuleWidget { | |||
}; | |||
menu->addChild(new MenuSeparator); | |||
YDividerItem *yDividerItem = createMenuItem<YDividerItem>("Y divider ratio"); | |||
YDividerItem* yDividerItem = createMenuItem<YDividerItem>("Y divider ratio"); | |||
yDividerItem->module = module; | |||
menu->addChild(yDividerItem); | |||
} | |||
}; | |||
Model *modelMarbles = createModel<Marbles, MarblesWidget>("Marbles"); | |||
Model* modelMarbles = createModel<Marbles, MarblesWidget>("Marbles"); |
@@ -2,7 +2,7 @@ | |||
#pragma GCC diagnostic push | |||
#ifndef __clang__ | |||
#pragma GCC diagnostic ignored "-Wsuggest-override" | |||
#pragma GCC diagnostic ignored "-Wsuggest-override" | |||
#endif | |||
#include "plaits/dsp/voice.h" | |||
#pragma GCC diagnostic pop | |||
@@ -88,8 +88,8 @@ struct Plaits : Module { | |||
patch.engine = random::u32() % 16; | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_object_set_new(rootJ, "lowCpu", json_boolean(lowCpu)); | |||
json_object_set_new(rootJ, "model", json_integer(patch.engine)); | |||
@@ -97,27 +97,27 @@ struct Plaits : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *lowCpuJ = json_object_get(rootJ, "lowCpu"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* lowCpuJ = json_object_get(rootJ, "lowCpu"); | |||
if (lowCpuJ) | |||
lowCpu = json_boolean_value(lowCpuJ); | |||
json_t *modelJ = json_object_get(rootJ, "model"); | |||
json_t* modelJ = json_object_get(rootJ, "model"); | |||
if (modelJ) | |||
patch.engine = json_integer_value(modelJ); | |||
// Legacy <=1.0.2 | |||
json_t *lpgColorJ = json_object_get(rootJ, "lpgColor"); | |||
json_t* lpgColorJ = json_object_get(rootJ, "lpgColor"); | |||
if (lpgColorJ) | |||
params[LPG_COLOR_PARAM].setValue(json_number_value(lpgColorJ)); | |||
// Legacy <=1.0.2 | |||
json_t *decayJ = json_object_get(rootJ, "decay"); | |||
json_t* decayJ = json_object_get(rootJ, "decay"); | |||
if (decayJ) | |||
params[LPG_DECAY_PARAM].setValue(json_number_value(decayJ)); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
int channels = std::max(inputs[NOTE_INPUT].getChannels(), 1); | |||
if (outputBuffer.empty()) { | |||
@@ -270,7 +270,7 @@ static const std::string modelLabels[16] = { | |||
struct PlaitsWidget : ModuleWidget { | |||
bool lpgMode = false; | |||
PlaitsWidget(Plaits *module) { | |||
PlaitsWidget(Plaits* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Plaits.svg"))); | |||
@@ -318,43 +318,43 @@ struct PlaitsWidget : ModuleWidget { | |||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 61.11827)), module, Plaits::MODEL_LIGHT + 7 * 2)); | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Plaits *module = dynamic_cast<Plaits*>(this->module); | |||
void appendContextMenu(Menu* menu) override { | |||
Plaits* module = dynamic_cast<Plaits*>(this->module); | |||
struct PlaitsLowCpuItem : MenuItem { | |||
Plaits *module; | |||
void onAction(const event::Action &e) override { | |||
Plaits* module; | |||
void onAction(const event::Action& e) override { | |||
module->lowCpu ^= true; | |||
} | |||
}; | |||
struct PlaitsLpgModeItem : MenuItem { | |||
PlaitsWidget *moduleWidget; | |||
void onAction(const event::Action &e) override { | |||
PlaitsWidget* moduleWidget; | |||
void onAction(const event::Action& e) override { | |||
moduleWidget->setLpgMode(!moduleWidget->getLpgMode()); | |||
} | |||
}; | |||
struct PlaitsModelItem : MenuItem { | |||
Plaits *module; | |||
Plaits* module; | |||
int model; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
module->patch.engine = model; | |||
} | |||
}; | |||
menu->addChild(new MenuSeparator); | |||
PlaitsLowCpuItem *lowCpuItem = createMenuItem<PlaitsLowCpuItem>("Low CPU", CHECKMARK(module->lowCpu)); | |||
PlaitsLowCpuItem* lowCpuItem = createMenuItem<PlaitsLowCpuItem>("Low CPU", CHECKMARK(module->lowCpu)); | |||
lowCpuItem->module = module; | |||
menu->addChild(lowCpuItem); | |||
PlaitsLpgModeItem *lpgItem = createMenuItem<PlaitsLpgModeItem>("Edit LPG response/decay", CHECKMARK(getLpgMode())); | |||
PlaitsLpgModeItem* lpgItem = createMenuItem<PlaitsLpgModeItem>("Edit LPG response/decay", CHECKMARK(getLpgMode())); | |||
lpgItem->moduleWidget = this; | |||
menu->addChild(lpgItem); | |||
menu->addChild(new MenuSeparator); | |||
menu->addChild(createMenuLabel("Models")); | |||
for (int i = 0; i < 16; i++) { | |||
PlaitsModelItem *modelItem = createMenuItem<PlaitsModelItem>(modelLabels[i], CHECKMARK(module->patch.engine == i)); | |||
PlaitsModelItem* modelItem = createMenuItem<PlaitsModelItem>(modelLabels[i], CHECKMARK(module->patch.engine == i)); | |||
modelItem->module = module; | |||
modelItem->model = i; | |||
menu->addChild(modelItem); | |||
@@ -386,4 +386,4 @@ struct PlaitsWidget : ModuleWidget { | |||
}; | |||
Model *modelPlaits = createModel<Plaits, PlaitsWidget>("Plaits"); | |||
Model* modelPlaits = createModel<Plaits, PlaitsWidget>("Plaits"); |
@@ -83,7 +83,7 @@ struct Rings : Module { | |||
string_synth.Init(reverb_buffer); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// TODO | |||
// "Normalized to a pulse/burst generator that reacts to note changes on the V/OCT input." | |||
// Get input | |||
@@ -105,7 +105,7 @@ struct Rings : Module { | |||
lights[POLYPHONY_RED_LIGHT].value = (polyphonyMode == 1 || polyphonyMode == 2) ? 1.0 : 0.0; | |||
if (modelTrigger.process(params[RESONATOR_PARAM].getValue())) { | |||
resonatorModel = (rings::ResonatorModel) ((resonatorModel + 1) % 3); | |||
resonatorModel = (rings::ResonatorModel)((resonatorModel + 1) % 3); | |||
} | |||
int modelColor = resonatorModel % 3; | |||
lights[RESONATOR_GREEN_LIGHT].value = (modelColor == 0 || modelColor == 1) ? 1.0 : 0.0; | |||
@@ -135,22 +135,22 @@ struct Rings : Module { | |||
// Patch | |||
rings::Patch patch; | |||
float structure = params[STRUCTURE_PARAM].getValue() + 3.3*dsp::quadraticBipolar(params[STRUCTURE_MOD_PARAM].getValue())*inputs[STRUCTURE_MOD_INPUT].getVoltage()/5.0; | |||
float structure = params[STRUCTURE_PARAM].getValue() + 3.3 * dsp::quadraticBipolar(params[STRUCTURE_MOD_PARAM].getValue()) * inputs[STRUCTURE_MOD_INPUT].getVoltage() / 5.0; | |||
patch.structure = clamp(structure, 0.0f, 0.9995f); | |||
patch.brightness = clamp(params[BRIGHTNESS_PARAM].getValue() + 3.3*dsp::quadraticBipolar(params[BRIGHTNESS_MOD_PARAM].getValue())*inputs[BRIGHTNESS_MOD_INPUT].getVoltage()/5.0, 0.0f, 1.0f); | |||
patch.damping = clamp(params[DAMPING_PARAM].getValue() + 3.3*dsp::quadraticBipolar(params[DAMPING_MOD_PARAM].getValue())*inputs[DAMPING_MOD_INPUT].getVoltage()/5.0, 0.0f, 0.9995f); | |||
patch.position = clamp(params[POSITION_PARAM].getValue() + 3.3*dsp::quadraticBipolar(params[POSITION_MOD_PARAM].getValue())*inputs[POSITION_MOD_INPUT].getVoltage()/5.0, 0.0f, 0.9995f); | |||
patch.brightness = clamp(params[BRIGHTNESS_PARAM].getValue() + 3.3 * dsp::quadraticBipolar(params[BRIGHTNESS_MOD_PARAM].getValue()) * inputs[BRIGHTNESS_MOD_INPUT].getVoltage() / 5.0, 0.0f, 1.0f); | |||
patch.damping = clamp(params[DAMPING_PARAM].getValue() + 3.3 * dsp::quadraticBipolar(params[DAMPING_MOD_PARAM].getValue()) * inputs[DAMPING_MOD_INPUT].getVoltage() / 5.0, 0.0f, 0.9995f); | |||
patch.position = clamp(params[POSITION_PARAM].getValue() + 3.3 * dsp::quadraticBipolar(params[POSITION_MOD_PARAM].getValue()) * inputs[POSITION_MOD_INPUT].getVoltage() / 5.0, 0.0f, 0.9995f); | |||
// Performance | |||
rings::PerformanceState performance_state; | |||
performance_state.note = 12.0*inputs[PITCH_INPUT].getNormalVoltage(1/12.0); | |||
performance_state.note = 12.0 * inputs[PITCH_INPUT].getNormalVoltage(1 / 12.0); | |||
float transpose = params[FREQUENCY_PARAM].getValue(); | |||
// Quantize transpose if pitch input is connected | |||
if (inputs[PITCH_INPUT].isConnected()) { | |||
transpose = roundf(transpose); | |||
} | |||
performance_state.tonic = 12.0 + clamp(transpose, 0.0f, 60.0f); | |||
performance_state.fm = clamp(48.0 * 3.3*dsp::quarticBipolar(params[FREQUENCY_MOD_PARAM].getValue()) * inputs[FREQUENCY_MOD_INPUT].getNormalVoltage(1.0)/5.0, -48.0f, 48.0f); | |||
performance_state.fm = clamp(48.0 * 3.3 * dsp::quarticBipolar(params[FREQUENCY_MOD_PARAM].getValue()) * inputs[FREQUENCY_MOD_INPUT].getNormalVoltage(1.0) / 5.0, -48.0f, 48.0f); | |||
performance_state.internal_exciter = !inputs[IN_INPUT].isConnected(); | |||
performance_state.internal_strum = !inputs[STRUM_INPUT].isConnected(); | |||
@@ -197,19 +197,19 @@ struct Rings : Module { | |||
dsp::Frame<2> outputFrame = outputBuffer.shift(); | |||
// "Note that you need to insert a jack into each output to split the signals: when only one jack is inserted, both signals are mixed together." | |||
if (outputs[ODD_OUTPUT].isConnected() && outputs[EVEN_OUTPUT].isConnected()) { | |||
outputs[ODD_OUTPUT].setVoltage(clamp(outputFrame.samples[0], -1.0, 1.0)*5.0); | |||
outputs[EVEN_OUTPUT].setVoltage(clamp(outputFrame.samples[1], -1.0, 1.0)*5.0); | |||
outputs[ODD_OUTPUT].setVoltage(clamp(outputFrame.samples[0], -1.0, 1.0) * 5.0); | |||
outputs[EVEN_OUTPUT].setVoltage(clamp(outputFrame.samples[1], -1.0, 1.0) * 5.0); | |||
} | |||
else { | |||
float v = clamp(outputFrame.samples[0] + outputFrame.samples[1], -1.0, 1.0)*5.0; | |||
float v = clamp(outputFrame.samples[0] + outputFrame.samples[1], -1.0, 1.0) * 5.0; | |||
outputs[ODD_OUTPUT].setVoltage(v); | |||
outputs[EVEN_OUTPUT].setVoltage(v); | |||
} | |||
} | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_object_set_new(rootJ, "polyphony", json_integer(polyphonyMode)); | |||
json_object_set_new(rootJ, "model", json_integer((int) resonatorModel)); | |||
@@ -218,18 +218,18 @@ struct Rings : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *polyphonyJ = json_object_get(rootJ, "polyphony"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* polyphonyJ = json_object_get(rootJ, "polyphony"); | |||
if (polyphonyJ) { | |||
polyphonyMode = json_integer_value(polyphonyJ); | |||
} | |||
json_t *modelJ = json_object_get(rootJ, "model"); | |||
json_t* modelJ = json_object_get(rootJ, "model"); | |||
if (modelJ) { | |||
resonatorModel = (rings::ResonatorModel) json_integer_value(modelJ); | |||
} | |||
json_t *easterEggJ = json_object_get(rootJ, "easterEgg"); | |||
json_t* easterEggJ = json_object_get(rootJ, "easterEgg"); | |||
if (easterEggJ) { | |||
easterEgg = json_boolean_value(easterEggJ); | |||
} | |||
@@ -242,13 +242,13 @@ struct Rings : Module { | |||
void onRandomize() override { | |||
polyphonyMode = random::u32() % 3; | |||
resonatorModel = (rings::ResonatorModel) (random::u32() % 3); | |||
resonatorModel = (rings::ResonatorModel)(random::u32() % 3); | |||
} | |||
}; | |||
struct RingsWidget : ModuleWidget { | |||
RingsWidget(Rings *module) { | |||
RingsWidget(Rings* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Rings.svg"))); | |||
@@ -289,14 +289,14 @@ struct RingsWidget : ModuleWidget { | |||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(162, 43), module, Rings::RESONATOR_GREEN_LIGHT)); | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Rings *rings = dynamic_cast<Rings*>(module); | |||
void appendContextMenu(Menu* menu) override { | |||
Rings* rings = dynamic_cast<Rings*>(module); | |||
assert(rings); | |||
struct RingsModelItem : MenuItem { | |||
Rings *rings; | |||
Rings* rings; | |||
rings::ResonatorModel model; | |||
void onAction(const event::Action &e) override { | |||
void onAction(const event::Action& e) override { | |||
rings->resonatorModel = model; | |||
} | |||
void step() override { | |||
@@ -306,8 +306,8 @@ struct RingsWidget : ModuleWidget { | |||
}; | |||
struct RingsEasterEggItem : MenuItem { | |||
Rings *rings; | |||
void onAction(const event::Action &e) override { | |||
Rings* rings; | |||
void onAction(const event::Action& e) override { | |||
rings->easterEgg = !rings->easterEgg; | |||
} | |||
void step() override { | |||
@@ -331,4 +331,4 @@ struct RingsWidget : ModuleWidget { | |||
}; | |||
Model *modelRings = createModel<Rings, RingsWidget>("Rings"); | |||
Model* modelRings = createModel<Rings, RingsWidget>("Rings"); |
@@ -40,7 +40,7 @@ struct Shades : Module { | |||
configParam(MODE3_PARAM, 0.0, 1.0, 1.0, "Attenuverter/Attenuator mode 3"); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
float out = 0.0; | |||
for (int i = 0; i < 3; i++) { | |||
@@ -54,8 +54,8 @@ struct Shades : Module { | |||
in *= params[GAIN1_PARAM + i].getValue(); | |||
} | |||
out += in; | |||
lights[OUT1_POS_LIGHT + 2*i].setSmoothBrightness(fmaxf(0.0, out / 5.0), args.sampleTime); | |||
lights[OUT1_NEG_LIGHT + 2*i].setSmoothBrightness(fmaxf(0.0, -out / 5.0), args.sampleTime); | |||
lights[OUT1_POS_LIGHT + 2 * i].setSmoothBrightness(fmaxf(0.0, out / 5.0), args.sampleTime); | |||
lights[OUT1_NEG_LIGHT + 2 * i].setSmoothBrightness(fmaxf(0.0, -out / 5.0), args.sampleTime); | |||
if (outputs[OUT1_OUTPUT + i].isConnected()) { | |||
outputs[OUT1_OUTPUT + i].setVoltage(out); | |||
out = 0.0; | |||
@@ -66,7 +66,7 @@ struct Shades : Module { | |||
struct ShadesWidget : ModuleWidget { | |||
ShadesWidget(Shades *module) { | |||
ShadesWidget(Shades* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Shades.svg"))); | |||
@@ -96,4 +96,4 @@ struct ShadesWidget : ModuleWidget { | |||
}; | |||
Model *modelShades = createModel<Shades, ShadesWidget>("Shades"); | |||
Model* modelShades = createModel<Shades, ShadesWidget>("Shades"); |
@@ -17,7 +17,7 @@ struct LongPressButton { | |||
float pressedTime = 0.f; | |||
dsp::BooleanTrigger trigger; | |||
Events step(Param ¶m) { | |||
Events step(Param& param) { | |||
Events result = NO_PRESS; | |||
bool pressed = param.value > 0.f; | |||
@@ -52,7 +52,7 @@ struct GroupBuilder { | |||
GroupInfo groups[NUM_CHANNELS]; | |||
int groupCount = 0; | |||
bool buildGroups(std::vector<Input> *gateInputs, size_t first, size_t count) { | |||
bool buildGroups(std::vector<Input>* gateInputs, size_t first, size_t count) { | |||
bool any_gates = false; | |||
GroupInfo nextGroups[NUM_CHANNELS]; | |||
@@ -81,7 +81,7 @@ struct GroupBuilder { | |||
else { | |||
if (!gated) { | |||
// We've had a gate, this ungated segment is part of the previous group | |||
nextGroups[currentGroup-1].segment_count++; | |||
nextGroups[currentGroup - 1].segment_count++; | |||
} | |||
else { | |||
// This gated input indicates the start of the next group | |||
@@ -102,8 +102,8 @@ struct GroupBuilder { | |||
for (int i = 0; i < groupCount; i++) { | |||
if (nextGroups[i].segment_count != groups[i].segment_count || | |||
nextGroups[i].gated != groups[i].gated || | |||
nextGroups[i].first_segment != groups[i].first_segment) { | |||
nextGroups[i].gated != groups[i].gated || | |||
nextGroups[i].first_segment != groups[i].first_segment) { | |||
changed = true; | |||
} | |||
@@ -190,12 +190,12 @@ struct Stages : Module { | |||
onSampleRateChange(); | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_t *configurationsJ = json_array(); | |||
json_t* configurationsJ = json_array(); | |||
for (int i = 0; i < NUM_CHANNELS; i++) { | |||
json_t *configurationJ = json_object(); | |||
json_t* configurationJ = json_object(); | |||
json_object_set_new(configurationJ, "type", json_integer(configurations[i].type)); | |||
json_object_set_new(configurationJ, "loop", json_boolean(configurations[i].loop)); | |||
json_array_insert_new(configurationsJ, i, configurationJ); | |||
@@ -205,16 +205,16 @@ struct Stages : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *configurationsJ = json_object_get(rootJ, "configurations"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* configurationsJ = json_object_get(rootJ, "configurations"); | |||
for (int i = 0; i < NUM_CHANNELS; i++) { | |||
json_t *configurationJ = json_array_get(configurationsJ, i); | |||
json_t* configurationJ = json_array_get(configurationsJ, i); | |||
if (configurationJ) { | |||
json_t *typeJ = json_object_get(configurationJ, "type"); | |||
json_t* typeJ = json_object_get(configurationJ, "type"); | |||
if (typeJ) | |||
configurations[i].type = (stages::segment::Type) json_integer_value(typeJ); | |||
json_t *loopJ = json_object_get(configurationJ, "loop"); | |||
json_t* loopJ = json_object_get(configurationJ, "loop"); | |||
if (loopJ) | |||
configurations[i].loop = json_boolean_value(loopJ); | |||
} | |||
@@ -242,7 +242,7 @@ struct Stages : Module { | |||
// Process block | |||
stages::SegmentGenerator::Output out[BLOCK_SIZE] = {}; | |||
for (int i = 0; i < groupBuilder.groupCount; i++) { | |||
GroupInfo &group = groupBuilder.groups[i]; | |||
GroupInfo& group = groupBuilder.groups[i]; | |||
// Check if the config needs applying to the segment generator for this group | |||
bool apply_config = groups_changed; | |||
@@ -292,7 +292,7 @@ struct Stages : Module { | |||
} | |||
void toggleMode(int i) { | |||
configurations[i].type = (stages::segment::Type) ((configurations[i].type + 1) % 3); | |||
configurations[i].type = (stages::segment::Type)((configurations[i].type + 1) % 3); | |||
configuration_changed[i] = true; | |||
} | |||
@@ -307,7 +307,7 @@ struct Stages : Module { | |||
segment_count += groupBuilder.groups[i].segment_count; | |||
if (segment_count > segment) { | |||
GroupInfo &group = groupBuilder.groups[i]; | |||
GroupInfo& group = groupBuilder.groups[i]; | |||
// See how many loop items we have | |||
int numberOfLoopsInGroup = 0; | |||
@@ -329,7 +329,7 @@ struct Stages : Module { | |||
} | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// Oscillate flashing the type lights | |||
lightOscillatorPhase += 0.5f * args.sampleTime; | |||
if (lightOscillatorPhase >= 1.0f) | |||
@@ -360,7 +360,7 @@ struct Stages : Module { | |||
// Output | |||
for (int i = 0; i < groupBuilder.groupCount; i++) { | |||
GroupInfo &group = groupBuilder.groups[i]; | |||
GroupInfo& group = groupBuilder.groups[i]; | |||
int numberOfLoopsInGroup = 0; | |||
for (int j = 0; j < group.segment_count; j++) { | |||
@@ -393,7 +393,7 @@ struct Stages : Module { | |||
struct StagesWidget : ModuleWidget { | |||
StagesWidget(Stages *module) { | |||
StagesWidget(Stages* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Stages.svg"))); | |||
@@ -457,4 +457,4 @@ struct StagesWidget : ModuleWidget { | |||
}; | |||
Model *modelStages = createModel<Stages, StagesWidget>("Stages"); | |||
Model* modelStages = createModel<Stages, StagesWidget>("Stages"); |
@@ -66,10 +66,10 @@ struct Tides : Module { | |||
onReset(); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
tides::GeneratorMode mode = generator.mode(); | |||
if (modeTrigger.process(params[MODE_PARAM].getValue())) { | |||
mode = (tides::GeneratorMode) (((int)mode - 1 + 3) % 3); | |||
mode = (tides::GeneratorMode)(((int)mode - 1 + 3) % 3); | |||
generator.set_mode(mode); | |||
} | |||
lights[MODE_GREEN_LIGHT].value = (mode == 2) ? 1.0 : 0.0; | |||
@@ -77,7 +77,7 @@ struct Tides : Module { | |||
tides::GeneratorRange range = generator.range(); | |||
if (rangeTrigger.process(params[RANGE_PARAM].getValue())) { | |||
range = (tides::GeneratorRange) (((int)range - 1 + 3) % 3); | |||
range = (tides::GeneratorRange)(((int)range - 1 + 3) % 3); | |||
generator.set_range(range); | |||
} | |||
lights[RANGE_GREEN_LIGHT].value = (range == 2) ? 1.0 : 0.0; | |||
@@ -160,12 +160,12 @@ struct Tides : Module { | |||
} | |||
void onRandomize() override { | |||
generator.set_range((tides::GeneratorRange) (random::u32() % 3)); | |||
generator.set_mode((tides::GeneratorMode) (random::u32() % 3)); | |||
generator.set_range((tides::GeneratorRange)(random::u32() % 3)); | |||
generator.set_mode((tides::GeneratorMode)(random::u32() % 3)); | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_object_set_new(rootJ, "mode", json_integer((int) generator.mode())); | |||
json_object_set_new(rootJ, "range", json_integer((int) generator.range())); | |||
@@ -174,18 +174,18 @@ struct Tides : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *modeJ = json_object_get(rootJ, "mode"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* modeJ = json_object_get(rootJ, "mode"); | |||
if (modeJ) { | |||
generator.set_mode((tides::GeneratorMode) json_integer_value(modeJ)); | |||
} | |||
json_t *rangeJ = json_object_get(rootJ, "range"); | |||
json_t* rangeJ = json_object_get(rootJ, "range"); | |||
if (rangeJ) { | |||
generator.set_range((tides::GeneratorRange) json_integer_value(rangeJ)); | |||
} | |||
json_t *sheepJ = json_object_get(rootJ, "sheep"); | |||
json_t* sheepJ = json_object_get(rootJ, "sheep"); | |||
if (sheepJ) { | |||
sheep = json_boolean_value(sheepJ); | |||
} | |||
@@ -194,12 +194,12 @@ struct Tides : Module { | |||
struct TidesWidget : ModuleWidget { | |||
SvgPanel *tidesPanel; | |||
SvgPanel *sheepPanel; | |||
SvgPanel* tidesPanel; | |||
SvgPanel* sheepPanel; | |||
TidesWidget(Tides *module) { | |||
TidesWidget(Tides* module) { | |||
setModule(module); | |||
box.size = Vec(15*14, 380); | |||
box.size = Vec(15 * 14, 380); | |||
{ | |||
tidesPanel = new SvgPanel(); | |||
tidesPanel->setBackground(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Tides.svg"))); | |||
@@ -250,7 +250,7 @@ struct TidesWidget : ModuleWidget { | |||
} | |||
void step() override { | |||
Tides *tides = dynamic_cast<Tides*>(module); | |||
Tides* tides = dynamic_cast<Tides*>(module); | |||
if (tides) { | |||
tidesPanel->visible = !tides->sheep; | |||
@@ -261,22 +261,22 @@ struct TidesWidget : ModuleWidget { | |||
} | |||
void appendContextMenu(Menu *menu) override { | |||
Tides *module = dynamic_cast<Tides*>(this->module); | |||
void appendContextMenu(Menu* menu) override { | |||
Tides* module = dynamic_cast<Tides*>(this->module); | |||
struct SheepItem : MenuItem { | |||
Tides *module; | |||
void onAction(const event::Action &e) override { | |||
Tides* module; | |||
void onAction(const event::Action& e) override { | |||
module->sheep ^= true; | |||
} | |||
}; | |||
menu->addChild(new MenuSeparator); | |||
SheepItem *sheepItem = createMenuItem<SheepItem>("Sheep", CHECKMARK(module->sheep)); | |||
SheepItem* sheepItem = createMenuItem<SheepItem>("Sheep", CHECKMARK(module->sheep)); | |||
sheepItem->module = module; | |||
menu->addChild(sheepItem); | |||
} | |||
}; | |||
Model *modelTides = createModel<Tides, TidesWidget>("Tides"); | |||
Model* modelTides = createModel<Tides, TidesWidget>("Tides"); |
@@ -129,16 +129,16 @@ struct Tides2 : Module { | |||
void onRandomize() override { | |||
range = random::u32() % 3; | |||
output_mode = (tides2::OutputMode) (random::u32() % 4); | |||
ramp_mode = (tides2::RampMode) (random::u32() % 3); | |||
output_mode = (tides2::OutputMode)(random::u32() % 4); | |||
ramp_mode = (tides2::RampMode)(random::u32() % 3); | |||
} | |||
void onSampleRateChange() override { | |||
ramp_extractor.Init(APP->engine->getSampleRate(), 40.f / APP->engine->getSampleRate()); | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
json_t* dataToJson() override { | |||
json_t* rootJ = json_object(); | |||
json_object_set_new(rootJ, "range", json_integer(range)); | |||
json_object_set_new(rootJ, "output", json_integer(output_mode)); | |||
@@ -147,30 +147,30 @@ struct Tides2 : Module { | |||
return rootJ; | |||
} | |||
void dataFromJson(json_t *rootJ) override { | |||
json_t *rangeJ = json_object_get(rootJ, "range"); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* rangeJ = json_object_get(rootJ, "range"); | |||
if (rangeJ) | |||
range = json_integer_value(rangeJ); | |||
json_t *outputJ = json_object_get(rootJ, "output"); | |||
json_t* outputJ = json_object_get(rootJ, "output"); | |||
if (outputJ) | |||
output_mode = (tides2::OutputMode) json_integer_value(outputJ); | |||
json_t *rampJ = json_object_get(rootJ, "ramp"); | |||
json_t* rampJ = json_object_get(rootJ, "ramp"); | |||
if (rampJ) | |||
ramp_mode = (tides2::RampMode) json_integer_value(rampJ); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// Switches | |||
if (rangeTrigger.process(params[RANGE_PARAM].getValue() > 0.f)) { | |||
range = (range + 1) % 3; | |||
} | |||
if (modeTrigger.process(params[MODE_PARAM].getValue() > 0.f)) { | |||
output_mode = (tides2::OutputMode) ((output_mode + 1) % 4); | |||
output_mode = (tides2::OutputMode)((output_mode + 1) % 4); | |||
} | |||
if (rampTrigger.process(params[RAMP_PARAM].getValue() > 0.f)) { | |||
ramp_mode = (tides2::RampMode) ((ramp_mode + 1) % 3); | |||
ramp_mode = (tides2::RampMode)((ramp_mode + 1) % 3); | |||
} | |||
// Input gates | |||
@@ -199,12 +199,12 @@ struct Tides2 : Module { | |||
tides2::Ratio r = ratio_index_quantizer.Lookup(kRatios, 0.5f + transposition * 0.0105f, 20); | |||
frequency = ramp_extractor.Process( | |||
range_mode == tides2::RANGE_AUDIO, | |||
range_mode == tides2::RANGE_AUDIO && ramp_mode == tides2::RAMP_MODE_AR, | |||
r, | |||
clock_flags, | |||
ramp, | |||
tides2::kBlockSize); | |||
range_mode == tides2::RANGE_AUDIO, | |||
range_mode == tides2::RANGE_AUDIO && ramp_mode == tides2::RAMP_MODE_AR, | |||
r, | |||
clock_flags, | |||
ramp, | |||
tides2::kBlockSize); | |||
must_reset_ramp_extractor = false; | |||
} | |||
else { | |||
@@ -225,18 +225,18 @@ struct Tides2 : Module { | |||
// Render generator | |||
poly_slope_generator.Render( | |||
ramp_mode, | |||
output_mode, | |||
range_mode, | |||
frequency, | |||
slope, | |||
shape, | |||
smoothness, | |||
shift, | |||
trig_flags, | |||
!inputs[TRIG_INPUT].isConnected() && inputs[CLOCK_INPUT].isConnected() ? ramp : NULL, | |||
out, | |||
tides2::kBlockSize); | |||
ramp_mode, | |||
output_mode, | |||
range_mode, | |||
frequency, | |||
slope, | |||
shape, | |||
smoothness, | |||
shift, | |||
trig_flags, | |||
!inputs[TRIG_INPUT].isConnected() && inputs[CLOCK_INPUT].isConnected() ? ramp : NULL, | |||
out, | |||
tides2::kBlockSize); | |||
// Set lights | |||
lights[RANGE_LIGHT + 0].value = (range == 0 || range == 1); | |||
@@ -258,7 +258,7 @@ struct Tides2 : Module { | |||
struct Tides2Widget : ModuleWidget { | |||
Tides2Widget(Tides2 *module) { | |||
Tides2Widget(Tides2* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Tides2.svg"))); | |||
@@ -306,4 +306,4 @@ struct Tides2Widget : ModuleWidget { | |||
}; | |||
Model *modelTides2 = createModel<Tides2, Tides2Widget>("Tides2"); | |||
Model* modelTides2 = createModel<Tides2, Tides2Widget>("Tides2"); |
@@ -51,7 +51,7 @@ struct Veils : Module { | |||
configParam(RESPONSE4_PARAM, 0.0, 1.0, 1.0, "Response curve 4"); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
float out = 0.0; | |||
for (int i = 0; i < 4; i++) { | |||
@@ -64,8 +64,8 @@ struct Veils : Module { | |||
in *= crossfade(exponential, linear, params[RESPONSE1_PARAM + i].getValue()); | |||
} | |||
out += in; | |||
lights[OUT1_POS_LIGHT + 2*i].setSmoothBrightness(fmaxf(0.0, out / 5.0), args.sampleTime); | |||
lights[OUT1_NEG_LIGHT + 2*i].setSmoothBrightness(fmaxf(0.0, -out / 5.0), args.sampleTime); | |||
lights[OUT1_POS_LIGHT + 2 * i].setSmoothBrightness(fmaxf(0.0, out / 5.0), args.sampleTime); | |||
lights[OUT1_NEG_LIGHT + 2 * i].setSmoothBrightness(fmaxf(0.0, -out / 5.0), args.sampleTime); | |||
if (outputs[OUT1_OUTPUT + i].isConnected()) { | |||
outputs[OUT1_OUTPUT + i].setVoltage(out); | |||
out = 0.0; | |||
@@ -76,7 +76,7 @@ struct Veils : Module { | |||
struct VeilsWidget : ModuleWidget { | |||
VeilsWidget(Veils *module) { | |||
VeilsWidget(Veils* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Veils.svg"))); | |||
@@ -118,4 +118,4 @@ struct VeilsWidget : ModuleWidget { | |||
}; | |||
Model *modelVeils = createModel<Veils, VeilsWidget>("Veils"); | |||
Model* modelVeils = createModel<Veils, VeilsWidget>("Veils"); |
@@ -50,9 +50,9 @@ struct Warps : Module { | |||
modulator.Init(96000.0f); | |||
} | |||
void process(const ProcessArgs &args) override { | |||
void process(const ProcessArgs& args) override { | |||
// State trigger | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
warps::Parameters* p = modulator.mutable_parameters(); | |||
if (stateTrigger.process(params[STATE_PARAM].getValue())) { | |||
p->carrier_shape = (p->carrier_shape + 1) % 4; | |||
} | |||
@@ -87,34 +87,34 @@ struct Warps : Module { | |||
modulator.Process(inputFrames, outputFrames, 60); | |||
} | |||
inputFrames[frame].l = clamp((int) (inputs[CARRIER_INPUT].getVoltage() / 16.0 * 0x8000), -0x8000, 0x7fff); | |||
inputFrames[frame].r = clamp((int) (inputs[MODULATOR_INPUT].getVoltage() / 16.0 * 0x8000), -0x8000, 0x7fff); | |||
inputFrames[frame].l = clamp((int)(inputs[CARRIER_INPUT].getVoltage() / 16.0 * 0x8000), -0x8000, 0x7fff); | |||
inputFrames[frame].r = clamp((int)(inputs[MODULATOR_INPUT].getVoltage() / 16.0 * 0x8000), -0x8000, 0x7fff); | |||
outputs[MODULATOR_OUTPUT].setVoltage((float)outputFrames[frame].l / 0x8000 * 5.0); | |||
outputs[AUX_OUTPUT].setVoltage((float)outputFrames[frame].r / 0x8000 * 5.0); | |||
} | |||
json_t *dataToJson() override { | |||
json_t *rootJ = json_object(); | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
json_t* dataToJson() 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 dataFromJson(json_t *rootJ) override { | |||
json_t *shapeJ = json_object_get(rootJ, "shape"); | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
void dataFromJson(json_t* rootJ) override { | |||
json_t* shapeJ = json_object_get(rootJ, "shape"); | |||
warps::Parameters* p = modulator.mutable_parameters(); | |||
if (shapeJ) { | |||
p->carrier_shape = json_integer_value(shapeJ); | |||
} | |||
} | |||
void onReset() override { | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
warps::Parameters* p = modulator.mutable_parameters(); | |||
p->carrier_shape = 0; | |||
} | |||
void onRandomize() override { | |||
warps::Parameters *p = modulator.mutable_parameters(); | |||
warps::Parameters* p = modulator.mutable_parameters(); | |||
p->carrier_shape = random::u32() % 4; | |||
} | |||
}; | |||
@@ -128,7 +128,7 @@ struct AlgorithmLight : RedGreenBlueLight { | |||
struct WarpsWidget : ModuleWidget { | |||
WarpsWidget(Warps *module) { | |||
WarpsWidget(Warps* module) { | |||
setModule(module); | |||
setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Warps.svg"))); | |||
@@ -161,4 +161,4 @@ struct WarpsWidget : ModuleWidget { | |||
}; | |||
Model *modelWarps = createModel<Warps, WarpsWidget>("Warps"); | |||
Model* modelWarps = createModel<Warps, WarpsWidget>("Warps"); |
@@ -1,9 +1,9 @@ | |||
#include "plugin.hpp" | |||
Plugin *pluginInstance; | |||
Plugin* pluginInstance; | |||
void init(rack::Plugin *p) { | |||
void init(rack::Plugin* p) { | |||
pluginInstance = p; | |||
p->addModel(modelBraids); | |||
@@ -4,23 +4,23 @@ | |||
using namespace rack; | |||
extern Plugin *pluginInstance; | |||
extern Plugin* pluginInstance; | |||
extern Model *modelBraids; | |||
extern Model *modelPlaits; | |||
extern Model *modelElements; | |||
extern Model *modelTides; | |||
extern Model *modelTides2; | |||
extern Model *modelClouds; | |||
extern Model *modelWarps; | |||
extern Model *modelRings; | |||
extern Model *modelLinks; | |||
extern Model *modelKinks; | |||
extern Model *modelShades; | |||
extern Model *modelBranches; | |||
extern Model *modelBlinds; | |||
extern Model *modelVeils; | |||
extern Model *modelFrames; | |||
extern Model *modelStages; | |||
extern Model *modelMarbles; | |||
extern Model* modelBraids; | |||
extern Model* modelPlaits; | |||
extern Model* modelElements; | |||
extern Model* modelTides; | |||
extern Model* modelTides2; | |||
extern Model* modelClouds; | |||
extern Model* modelWarps; | |||
extern Model* modelRings; | |||
extern Model* modelLinks; | |||
extern Model* modelKinks; | |||
extern Model* modelShades; | |||
extern Model* modelBranches; | |||
extern Model* modelBlinds; | |||
extern Model* modelVeils; | |||
extern Model* modelFrames; | |||
extern Model* modelStages; | |||
extern Model* modelMarbles; | |||
extern Model* modelRipples; |