aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2018-07-11 12:33:45 +0000
committers-ol <s-ol@users.noreply.github.com>2018-07-11 13:20:18 +0000
commit82b514e1e3e2312c90a87c1bfceba7957cc7ea9c (patch)
treef24501418cbb4ce39560b804f8cfe65b9f2fd31e /src
parentUpdate README.md (diff)
downloadvcvmods-82b514e1e3e2312c90a87c1bfceba7957cc7ea9c.tar.gz
vcvmods-82b514e1e3e2312c90a87c1bfceba7957cc7ea9c.zip
align VCO v/oct formula with Fundamental-VCO
Close #5
Diffstat (limited to 'src')
-rw-r--r--src/CircleVCO.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/CircleVCO.cpp b/src/CircleVCO.cpp
index bb96bea..a13cfef 100644
--- a/src/CircleVCO.cpp
+++ b/src/CircleVCO.cpp
@@ -30,9 +30,8 @@ void CircleVCO::step() {
float deltaTime = 1.0f / engineGetSampleRate();
float pitch = params[PITCH_PARAM].value;
- pitch += inputs[PITCH_INPUT].value;
- pitch = clamp(pitch, -4.0f, 4.0f);
- float freq = 200.0f * (pow(2.0f, pitch) - powf(2.0f, -4.0f));
+ pitch += 12.0f * inputs[PITCH_INPUT].value;
+ float freq = 261.626f * powf(2.0f, pitch / 12.0f);
phase += freq * deltaTime;
while (phase >= 1.0f)
@@ -61,7 +60,7 @@ CircleVCOWidget::CircleVCOWidget(CircleVCO *module) : ModuleWidget(module) {
Vec center = Vec(box.size.x, 0).minus(p.box.size).div(2);
Vec kcenter = Vec(box.size.x, 0).minus(k.box.size).div(2);
- addParam(ParamWidget::create<RoundSmallBlackKnob>(kcenter.plus(Vec(0, 90)), module, CircleVCO::PITCH_PARAM, 0.0, 1.0, 0.0));
+ addParam(ParamWidget::create<RoundSmallBlackKnob>(kcenter.plus(Vec(0, 90)), module, CircleVCO::PITCH_PARAM, -54.0f, 54.0f, 0.0f));
addInput(Port::create<PJ301MPort>(center.plus(Vec(0, 144)), Port::INPUT, module, CircleVCO::PITCH_INPUT));