summaryrefslogtreecommitdiff
path: root/src/powermap.h
diff options
context:
space:
mode:
authorSander Vocke <sandervocke@gmail.com>2024-07-26 21:57:32 +0200
committerSander Vocke <sandervocke@gmail.com>2024-07-27 14:54:55 +0200
commitf6660bc51fe8c02ff7c3b6188e8437c67712bddf (patch)
treebb8074fcbff6f1a4a6e242941b3cf494ebe4d6cc /src/powermap.h
parent019d478818950f7880d2c0f80d8fc8f963e9736b (diff)
Rename Powermap to CurveMap, bugfix, unit testsdevelopcurve_map
Diffstat (limited to 'src/powermap.h')
-rw-r--r--src/powermap.h76
1 files changed, 0 insertions, 76 deletions
diff --git a/src/powermap.h b/src/powermap.h
deleted file mode 100644
index 3a406cc..0000000
--- a/src/powermap.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode: c++ -*- */
-/***************************************************************************
- * powermap.h
- *
- * Fri Apr 17 23:06:12 CEST 2020
- * Copyright 2020 André Nusser
- * andre.nusser@googlemail.com
- ****************************************************************************/
-
-/*
- * This file is part of DrumGizmo.
- *
- * DrumGizmo is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * DrumGizmo is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with DrumGizmo; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-#pragma once
-
-#include <array>
-#include <vector>
-
-class Powermap
-{
-public:
- using Power = float;
- using Powers = std::vector<Power>;
- struct PowerPair
- {
- Power in;
- Power out;
-
- bool operator!=(const PowerPair& other)
- {
- return in != other.in || out != other.out;
- }
- };
-
- Powermap();
-
- Power map(Power in);
- void reset();
-
- void setFixed0(PowerPair new_value);
- void setFixed1(PowerPair new_value);
- void setFixed2(PowerPair new_value);
- void setShelf(bool enable);
-
- PowerPair getFixed0() const;
- PowerPair getFixed1() const;
- PowerPair getFixed2() const;
-
-private:
- // input parameters (state of this class)
- std::array<PowerPair, 3> fixed;
- bool shelf;
-
- // spline parameters (deterministically computed from the input parameters)
- bool spline_needs_update;
- std::array<float, 5> m;
- const Power eps = 1e-4;
-
- void updateSpline();
- std::vector<float> calcSlopes(const Powers& X, const Powers& P);
-
- Power clamp(Power in, Power min, Power max) const;
-};