annotate core/Utilities.cpp @ 12:a6beeba3a648

Initial support for higher matrix sample rates by reducing the number of channels. Input not tested yet, and not all examples updated to new format.
author andrewm
date Thu, 22 Jan 2015 19:00:22 +0000
parents 8a575ba3ab52
children 579c86316008
rev   line source
andrewm@0 1 /*
andrewm@0 2 * Utilities.cpp
andrewm@0 3 *
andrewm@0 4 * Created on: Oct 27, 2014
andrewm@0 5 * Author: parallels
andrewm@0 6 */
andrewm@0 7
andrewm@0 8 #include "../include/Utilities.h"
andrewm@0 9
andrewm@0 10 // map()
andrewm@0 11 //
andrewm@0 12 // Scale an input value from one range to another. Works like its Wiring language equivalent.
andrewm@0 13 // x is the value to scale; in_min and in_max are the input range; out_min and out_max
andrewm@0 14 // are the output range.
andrewm@0 15
andrewm@0 16 float map(float x, float in_min, float in_max, float out_min, float out_max)
andrewm@0 17 {
andrewm@0 18 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
andrewm@0 19 }
andrewm@0 20
andrewm@0 21 // constrain()
andrewm@0 22 //
andrewm@0 23 // Clips an input value to be between two end points
andrewm@0 24 // x is the value to constrain; min_val and max_val are the range
andrewm@0 25
andrewm@0 26 float constrain(float x, float min_val, float max_val)
andrewm@0 27 {
andrewm@0 28 if(x < min_val) return min_val;
andrewm@0 29 if(x > max_val) return max_val;
andrewm@0 30 return x;
andrewm@0 31 }