JSPM

@thi.ng/ramp

2.1.30
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 225
  • Score
    100M100P100Q101283F
  • License Apache-2.0

Parametric (non-)linearly interpolated 1D lookup tables for remapping values

Package Exports

  • @thi.ng/ramp
  • @thi.ng/ramp/api
  • @thi.ng/ramp/aramp
  • @thi.ng/ramp/hermite
  • @thi.ng/ramp/linear

Readme

ramp

npm version npm downloads Twitter Follow

This project is part of the @thi.ng/umbrella monorepo.

About

Parametric (non-)linearly interpolated 1D lookup tables for remapping values.

screenshot

Status

STABLE - used in production

Search or submit any issues for this package

Installation

yarn add @thi.ng/ramp

ES module import:

<script type="module" src="https://cdn.skypack.dev/@thi.ng/ramp"></script>

Skypack documentation

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.05 KB

Dependencies

Usage examples

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

API

Generated API docs

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

Authors

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
}

License

© 2019 - 2022 Karsten Schmidt // Apache Software License 2.0