Skip to content

Releases: nnirror/facet

v1.2.2

11 Jan 19:24
Compare
Choose a tag to compare

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

10 Jan 21:07
Compare
Choose a tag to compare

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 for choose([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

05 Jan 20:00
Compare
Choose a tag to compare

Uses socketIO for Websocket connection between node and client side, which fixes this bug: #71

This release requires an npm update if you've already installed Facet, hence the minor version change increment.

v1.1.9

05 Jan 14:53
Compare
Choose a tag to compare

There were two changes / additions in v1.1.9:

  • warp2d() pulls a pattern towards a point in an imaginary 2d space.
  • improvements to delay2d()

v1.1.8

05 Jan 02:30
Compare
Choose a tag to compare

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

03 Dec 01:45
Compare
Choose a tag to compare
  • this version requires an npm run update.
  • added new spectro() method for saving spectrogram PNG files to disk.
  • updated image() method to work with PNG files instead of JPEG. (hello feedback between spectro() and image()! 😄 )

v1.1.6

24 Nov 14:39
Compare
Choose a tag to compare
  • 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

12 Nov 03:13
Compare
Choose a tag to compare
  • new tune() method for tuning audio to a specific chromatic note
  • new vocode() method for vocoder effect
  • revised key() method with customizable chromatic scales
  • fixes several bugs noticed during testing/work

v1.1.3

08 Nov 02:27
Compare
Choose a tag to compare
  • new seq() method, a higher-level abstraction for superposing samples into sequences

v1.1.2

06 Nov 02:37
Compare
Choose a tag to compare
  • 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. The noise() method was updated to a bipolar range prior to v1.0, and this method relies internally on noise() but was never updated to keep the data scaled to the proper range for a turing sequence (0-1).