summaryrefslogtreecommitdiffstats
path: root/src/control.c
diff options
context:
space:
mode:
authorgrm <grm@eyesin.space>2025-02-22 02:36:27 +0200
committergrm <grm@eyesin.space>2025-02-22 02:36:27 +0200
commit500b9a07b93d6cd3e771edc5698e06d163da60f1 (patch)
tree08aace91a7ec7600b254b986bf5458362dab33f3 /src/control.c
parent04b3dbe0a339c42d7b2085bcd6149e9277d699a1 (diff)
downloadsynth-project-500b9a07b93d6cd3e771edc5698e06d163da60f1.tar.gz
synth-project-500b9a07b93d6cd3e771edc5698e06d163da60f1.tar.bz2
synth-project-500b9a07b93d6cd3e771edc5698e06d163da60f1.zip
a year of changes (web, better soundcard handling, biquad)
Diffstat (limited to 'src/control.c')
-rw-r--r--src/control.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/control.c b/src/control.c
index d952f7f..44aadc9 100644
--- a/src/control.c
+++ b/src/control.c
@@ -34,6 +34,22 @@ cc_fix(cc_t *cc)
}
void
+cc_set(cc_t *cc, float value)
+{
+ float new_value;
+ if (value >= cc->max) {
+ new_value = cc->max;
+ } else if (value <= cc->min) {
+ new_value = cc->min;
+ } else {
+ new_value = value;
+ }
+
+ // calculate mod
+ cc->mod = new_value - cc->target;
+}
+
+void
cc_reset(cc_t *cc)
{
cc->target = cc->def;