1.0.0 • Published 11 months ago

@tonaljs/rhythm-pattern v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

@tonaljs/rhythm-pattern tonal npm version

Generate and manipulate rhythmic patterns

Usage

ES6:

import { RhythmPattern } from "tonal";

node:

const { RhythmPattern } = require("tonal");

single module:

import { binary, euclid } from "@tonaljs/rhythm-pattern";

Functions

binary(numbers) ⇒ number[]

Create a rhythm pattern from a number or concatenation of numbers in binary form

Returns: an array of 0s and 1s representing the rhythm pattern

ParamDescription
numbersone or more number

Example

binary(13); // => [1, 1, 0, 1]
binary(12, 13); // => [1, 1, 0, 0, 1, 1, 0, 1]

hex(hexNumber) ⇒ number[]

Create a rhythmic pattern using an hexadecimal numbers

Returns: an array of 0s and 1s representing the rhythm pattern

ParamDescription
hexNumberstring with the hexadecimal number

Example

hex("8f"); // => [1, 0, 0, 0, 1, 1, 1, 1]

onsets(numbers) ⇒ number[]

Create a rhythm pattern from the onsets

Returns: an array of 0s and 1s representing the rhythm pattern

ParamDescription
numbersthe onsets sizes

Example

onsets(1, 2, 2, 1); // => [1, 0, 1, 0, 0, 1, 0, 0, 1, 0]

random(length, probability, rnd) ⇒ number[]

Create a random rhythm pattern with a specified length

Returns: an array of 0s and 1s representing the rhythm pattern

ParamDescription
lengthlength of the pattern
probabilityThreshold where random number is considered a beat (defaults to 0.5)
rndA random function (Math.random by default)

Example

random(4); // => [1, 0, 0, 1]

probability(probabilities, rnd) ⇒ number[]

Create a rhythm pattern based on the given probability thresholds

Returns: an array of 0s and 1s representing the rhythm pattern

ParamDescription
probabilitiesAn array with the probability of each step to be a beat
rndA random function (Math.random by default)

Example

probability([0.6, 0, 0.2, 0.5]); // => [0, 0, 0, 1]

rotate(pattern, rotations) ⇒ number[]

Rotate a pattern right

Returns: the rotated pattern (an array of 0s and 1s)

ParamDescription
patternthe pattern to rotate
rotationsthe number of steps to rotate

Example

rotate([1, 0, 0, 1], 2); // => [0, 1, 1, 0]

euclid(steps, beats) ⇒ number[]

Generates an euclidean rhythm pattern

Returns: an array with 0s and 1s representing the rhythmic pattern

ParamDescription
stepsThe length of the pattern
beatsThe number of beats

Example

euclid(8, 3); // => [1, 0, 0, 1, 0, 0, 1, 0]

References

1.0.0

11 months ago