This project is part of the @thi.ng/umbrella monorepo.
Parametric interpolated 1D lookup tables for remapping values.
STABLE - used in production
Search or submit any issues for this package
yarn add @thi.ng/ramp
ES module import:
<script type="module" src="https://cdn.skypack.dev/@thi.ng/ramp"></script>
For Node.js REPL:
# with flag only for < v16
node --experimental-repl-await
> const ramp = await import("@thi.ng/ramp");
Package sizes (gzipped, pre-treeshake): ESM: 1.06 KB
Several demos in this repo's /examples directory are using this package.
A selection:
Screenshot | Description | Live demo | Source |
---|---|---|---|
Unison wavetable synth with waveform editor | Demo | Source |
import { linear, hermite } from "@thi.ng/ramp";
const rampL = linear([[0.1, 0], [0.5, 1], [0.9, 0]]);
const rampH = hermite([[0.1, 0], [0.5, 1], [0.9, 0]]);
for(let i = 0; i <= 10; i++) {
console.log(
i / 10,
rampL.at(i / 10).toFixed(2),
rampH.at(i / 10).toFixed(2)
);
}
// 0 0.00 0.00
// 0.1 0.00 0.00
// 0.2 0.25 0.16
// 0.3 0.50 0.50
// 0.4 0.75 0.84
// 0.5 1.00 1.00
// 0.6 0.75 0.84
// 0.7 0.50 0.50
// 0.8 0.25 0.16
// 0.9 0.00 0.00
// 1 0.00 0.00
Karsten Schmidt
If this project contributes to an academic publication, please cite it as:
@misc{thing-ramp,
title = "@thi.ng/ramp",
author = "Karsten Schmidt",
note = "https://thi.ng/ramp",
year = 2019
}
© 2019 - 2021 Karsten Schmidt // Apache Software License 2.0