use num::Float;

pub mod blocks;
pub mod filtering;
pub mod synthesis;
pub mod units;

/// Maps a float from a range onto another
/// linearly
pub fn map<T: Float>(x: T, x_min: T, x_max: T, o_min: T, o_max: T) -> T
{
    ((x - x_min) / (x_max - x_min)) * (o_max - o_min) + o_min
}
