Releases: nnirror/facet
Releases · nnirror/facet
v1.2.2
The following method was added in v1.2.2:
markov()
: modifies a FacetPattern using a Markov chain for probability-weighted transitions.
The following methods were updated:
circle2d()
: - added "fill mode" argument controlling whether to fill the entire shape in or only draw its outline; default is no fill.tri2d()
: - added "fill mode" argument controlling whether to fill the entire shape in or only draw its outline; default is no fill.rect2d()
: - added "fill mode" argument controlling whether to fill the entire shape in or only draw its outline; default is no fill.
v1.2.1
The following methods were added in v1.2.1:
spectral()
: applies a spectral transformation to a pattern, treating it as if it were a 2d spectrogram and applying an Inverse Fourier Fast Transform (IFFT). This allows you to generate, interpret, and resynthesize a frequency-domain representation into sound.slices2d()
: slices a pattern into n 2-dimensional slices and run code on each 2d slice individually.grow2d()
: applies a growth algorithm to the FacetPattern in 2D space. The algorithm iterates over each "pixel" in the pattern and, based on probability, spreads its value to adjacent pixels.draw2d()
: draws a polygon on the FacetPattern using the provided coordinates and fill value. The polygon is drawn by connecting each pair of consecutive points in the coordinates array with a line filled with the fill value.decide()
: randomly decides between 1 or 0, shorthand forchoose([0,1])
.
The following methods were modified:
fgate()
(added invert mode)savespectrogram()
(renamed)saveimg()
(removed width/height arguments)layer2d()
(removed width/height arguments)shift2d()
(removed width/height arguments)circle2d()
(removed width/height arguments)rect2d()
(removed width/height arguments)tri2d()
(removed width/height arguments)palindrome2d()
(removed width/height arguments; rewrote)walk2d()
(removed width/height arguments)warp2d()
(removed width/height arguments)delay2d()
(removed width/height arguments)rotate()
(removed width/height arguments)
v1.2.0
v1.1.9
v1.1.8
The following methods were added in v1.1.8. See the README for complete documentation.
ftilt()
: spectrally shifts the timing of individual harmonic bands using a control pattern, so harmonics can occur before/after the fundamental.flookup()
: spectrally resynthesizes an input audio pattern with a lookup pattern, allowing for extreme time stretching and abstraction.walk2d()
: 2d random walk / drifting algorithm.shift2d()
: 2d pattern movement.circle2d()
: generates 2d circles.rect2d()
: generates 2d rectangles.tri2d()
: generates 2d triangles.palindrome2d()
: 2d palindrome effect.delay2d()
: echo patterns in 2d with configurable x, y, and decay.inc()
: shorthand for setting and then incrementing a named variable.dec()
: shorthand for setting and then decrementing a named variable.ts()
: shorthand for generating Date.now() timestamp string.
v1.1.7
v1.1.6
- update NPM packages to address compatibility issues with Node v21+: #75
- new
run()
shorthand function - invert mode for
ffilter()
- no-fade option for
slices()
chord()
method allows for dynamic chord creation with FacetPatterns- improved BPM handling
- rewrites
set()
method to run synchronously during pattern generation
v1.1.5
v1.1.3
v1.1.2
- fixes a bug where after 16 audio patterns were played with "keep()", voice handling did not work correctly.
- fixes the
turing()
generator method so its output is between 0 and 1. Thenoise()
method was updated to a bipolar range prior to v1.0, and this method relies internally onnoise()
but was never updated to keep the data scaled to the proper range for a turing sequence (0-1).