From f69b785fe818a3e1854d5d40e816ca5f41074f28 Mon Sep 17 00:00:00 2001 From: Nicolas Murphy Date: Tue, 19 May 2026 00:42:53 -0500 Subject: [PATCH 1/4] add xenscribe module --- plugin.json | 8 +++ res/XenScribe.svg | 11 ++++ src/XenScribe.cpp | 164 ++++++++++++++++++++++++++++++++++++++++++++++ src/plugin.cpp | 1 + src/plugin.hpp | 1 + 5 files changed, 185 insertions(+) create mode 100644 res/XenScribe.svg create mode 100644 src/XenScribe.cpp diff --git a/plugin.json b/plugin.json index 6851abb..b73ac77 100644 --- a/plugin.json +++ b/plugin.json @@ -23,6 +23,14 @@ "tags": [ "Quantizer" ] + }, + { + "slug": "XenScribe", + "name": "XenScribe", + "description": "Microtonal quantizer with text-input scale (cents).", + "tags": [ + "Quantizer" + ] } ] } diff --git a/res/XenScribe.svg b/res/XenScribe.svg new file mode 100644 index 0000000..2224403 --- /dev/null +++ b/res/XenScribe.svg @@ -0,0 +1,11 @@ + + + + diff --git a/src/XenScribe.cpp b/src/XenScribe.cpp new file mode 100644 index 0000000..18a7ad1 --- /dev/null +++ b/src/XenScribe.cpp @@ -0,0 +1,164 @@ +#include "plugin.hpp" +#include +#include +#include +#include + + +struct XenScribe : Module +{ + enum ParamId + { + PARAMS_LEN + }; + enum InputId + { + PITCH_INPUT, + INPUTS_LEN + }; + enum OutputId + { + PITCH_OUTPUT, + OUTPUTS_LEN + }; + + // Newline-separated cents from the root (which is implicit at 0). The + // last value is the period. Default is 12-TET so a fresh module is usable. + std::string scaleText = "100\n200\n300\n400\n500\n600\n700\n800\n900\n1000\n1100\n1200"; + std::vector pitches; + float period_cents = 1200.f; + + // UI thread sets scaleDirty when the user types; the audio thread re-parses + // on the next process() so the vector is only mutated from one thread. + bool scaleDirty = true; + // Set by dataFromJson so the widget pulls the loaded string into its + // displayed text on the next draw(). + bool manualSet = true; + + XenScribe() + { + config(PARAMS_LEN, INPUTS_LEN, OUTPUTS_LEN); + configInput(PITCH_INPUT, "Pitch"); + configOutput(PITCH_OUTPUT, "Pitch"); + } + + void parseScale() + { + std::vector parsed; + std::stringstream ss(scaleText); + std::string token; + while (std::getline(ss, token)) + { + try + { + parsed.push_back(std::stof(token)); + } + catch (...) + { + } + } + if (parsed.size() >= 2 && parsed.back() > 0.f) + { + pitches = parsed; + period_cents = pitches.back(); + } + } + + void process(const ProcessArgs &args) override + { + if (scaleDirty) + { + parseScale(); + scaleDirty = false; + } + if (pitches.size() < 2 || period_cents <= 0.f) + return; + + float input_cents = inputs[PITCH_INPUT].getVoltage() * 1200.f; + float period_idx_f = std::floor(input_cents / period_cents); + int period_idx = (int)period_idx_f; + float remainder = input_cents - period_idx_f * period_cents; + + // Implicit root at 0¢ is the initial best; the last pitch equals + // period_cents and doubles as snap-up-to-next-period. + float best_pitch = 0.f; + float best_dist = std::fabs(remainder); + for (float p : pitches) + { + float d = std::fabs(remainder - p); + if (d < best_dist) + { + best_dist = d; + best_pitch = p; + } + } + + float output_cents = period_idx * period_cents + best_pitch; + outputs[PITCH_OUTPUT].setVoltage(output_cents / 1200.f); + } + + json_t *dataToJson() override + { + json_t *root = json_object(); + json_object_set_new(root, "scale", json_string(scaleText.c_str())); + return root; + } + + void dataFromJson(json_t *root) override + { + json_t *j = json_object_get(root, "scale"); + if (j) + { + scaleText = json_string_value(j); + scaleDirty = true; + manualSet = true; + } + } +}; + + +struct ScaleTextField : ui::TextField +{ + XenScribe *module = nullptr; + + void draw(const DrawArgs &args) override + { + if (module) + { + if (module->manualSet) + { + setText(module->scaleText); + module->manualSet = false; + } + else if (text != module->scaleText) + { + module->scaleText = text; + module->scaleDirty = true; + } + } + ui::TextField::draw(args); + } +}; + + +struct XenScribeWidget : ModuleWidget +{ + XenScribeWidget(XenScribe *module) + { + setModule(module); + setPanel(createPanel(asset::plugin(pluginInstance, "res/XenScribe.svg"))); + + auto *tf = createWidget(mm2px(Vec(3, 8))); + tf->box.size = mm2px(Vec(34.64, 92)); + tf->multiline = true; + tf->module = module; + if (module) + tf->setText(module->scaleText); + addChild(tf); + + addInput(createInputCentered(mm2px(Vec(10, 108)), module, XenScribe::PITCH_INPUT)); + addOutput(createOutputCentered(mm2px(Vec(30.64, 108)), module, XenScribe::PITCH_OUTPUT)); + } +}; + +Model *modelXenScribe = createModel("XenScribe"); diff --git a/src/plugin.cpp b/src/plugin.cpp index 49db584..ffa45f3 100644 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -9,4 +9,5 @@ void init(Plugin* p) { p->addModel(modelScrambler); p->addModel(modelXenizer); + p->addModel(modelXenScribe); } diff --git a/src/plugin.hpp b/src/plugin.hpp index 4e52cb4..3048b7d 100644 --- a/src/plugin.hpp +++ b/src/plugin.hpp @@ -10,3 +10,4 @@ extern Plugin* pluginInstance; // Declare each Model, defined in each module source file extern Model* modelScrambler; extern Model* modelXenizer; +extern Model* modelXenScribe; From 4d5a4fd3ee2492b0d17eece043ffba571bf48c81 Mon Sep 17 00:00:00 2001 From: Nicolas Murphy Date: Tue, 19 May 2026 21:10:58 -0500 Subject: [PATCH 2/4] design XenScribe panel --- res/XenScribe.svg | 25 +++++++++++++++++++++++++ src/XenScribe.cpp | 8 ++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/res/XenScribe.svg b/res/XenScribe.svg index 2224403..2db95a8 100644 --- a/res/XenScribe.svg +++ b/res/XenScribe.svg @@ -8,4 +8,29 @@ + + + + + + + + + + diff --git a/src/XenScribe.cpp b/src/XenScribe.cpp index 18a7ad1..22c828c 100644 --- a/src/XenScribe.cpp +++ b/src/XenScribe.cpp @@ -148,16 +148,16 @@ struct XenScribeWidget : ModuleWidget setModule(module); setPanel(createPanel(asset::plugin(pluginInstance, "res/XenScribe.svg"))); - auto *tf = createWidget(mm2px(Vec(3, 8))); - tf->box.size = mm2px(Vec(34.64, 92)); + auto *tf = createWidget(mm2px(Vec(2, 2))); + tf->box.size = mm2px(Vec(36.64, 106)); tf->multiline = true; tf->module = module; if (module) tf->setText(module->scaleText); addChild(tf); - addInput(createInputCentered(mm2px(Vec(10, 108)), module, XenScribe::PITCH_INPUT)); - addOutput(createOutputCentered(mm2px(Vec(30.64, 108)), module, XenScribe::PITCH_OUTPUT)); + addInput(createInputCentered(mm2px(Vec(10, 117)), module, XenScribe::PITCH_INPUT)); + addOutput(createOutputCentered(mm2px(Vec(30.64, 117)), module, XenScribe::PITCH_OUTPUT)); } }; From e4906fabb33a9df6b72479360b8d1c10f5807d5d Mon Sep 17 00:00:00 2001 From: Nicolas Murphy Date: Tue, 19 May 2026 21:40:04 -0500 Subject: [PATCH 3/4] add panel image to readme --- README.md | 3 ++- docs/xenscribe-panel.png | Bin 0 -> 79886 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 docs/xenscribe-panel.png diff --git a/README.md b/README.md index 6d29ea6..b70c113 100644 --- a/README.md +++ b/README.md @@ -6,5 +6,6 @@ A VCV Rack 2 plugin from Berserk Audio. - **Scrambler** — Alternates between clean passthrough and randomly reordered individual samples. - **Xenizer** — Microtonal quantizer with preset scales. +- **XenScribe** — Microtonal quantizer that takes a custom scale typed in as cents. -Scrambler panel Xenizer panel +Scrambler panel Xenizer panel XenScribe panel diff --git a/docs/xenscribe-panel.png b/docs/xenscribe-panel.png new file mode 100644 index 0000000000000000000000000000000000000000..18f6334a6ece80812d1277916a43aa87694416bd GIT binary patch literal 79886 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 f-^7Zr#4oC*%j Date: Tue, 19 May 2026 22:02:09 -0500 Subject: [PATCH 4/4] gate XenScribe from MetaModule build --- README.md | 2 +- src/plugin.cpp | 2 ++ src/plugin.hpp | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b70c113..575ae8a 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,6 @@ A VCV Rack 2 plugin from Berserk Audio. - **Scrambler** — Alternates between clean passthrough and randomly reordered individual samples. - **Xenizer** — Microtonal quantizer with preset scales. -- **XenScribe** — Microtonal quantizer that takes a custom scale typed in as cents. +- **XenScribe** *(not in MetaModule plugin)* — Microtonal quantizer that takes a custom scale typed in as cents. Scrambler panel Xenizer panel XenScribe panel diff --git a/src/plugin.cpp b/src/plugin.cpp index ffa45f3..2605086 100644 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -9,5 +9,7 @@ void init(Plugin* p) { p->addModel(modelScrambler); p->addModel(modelXenizer); +#ifndef METAMODULE p->addModel(modelXenScribe); +#endif } diff --git a/src/plugin.hpp b/src/plugin.hpp index 3048b7d..cdfed42 100644 --- a/src/plugin.hpp +++ b/src/plugin.hpp @@ -10,4 +10,6 @@ extern Plugin* pluginInstance; // Declare each Model, defined in each module source file extern Model* modelScrambler; extern Model* modelXenizer; +#ifndef METAMODULE extern Model* modelXenScribe; +#endif