Skip to content

Releases: elemaudio/elementary

v4.0.0

08 Dec 16:34
Compare
Choose a tag to compare

What's Changed

New Features

  • Support for multi-channel graph nodes
    • With new mc node types
      • el.mc.sampleseq
      • el.mc.sampleseq2
      • el.mc.table
      • el.mc.capture
      • el.mc.sample
  • Include active/passive indication in GraphNode process calls
  • Expose root node fade times for custom Renderer implementations

Improvements

  • Rewrite frontend library with explicit props args
  • Rewrite SharedResource with an explicit underlying f32 type
  • Rewrite GC implementation
  • Build wasm binaries with an underlying f64 type
  • Add safeguards to activateRoots and optimize render ops

Bugfixes

  • Bugfixes and improvements in el.sampleseq
  • Fix capture event type
  • Pre-emptively zero output buffers in wasm rendering to prevent garbage
  • Fix metro node type def
  • Bugfix in el.adsr for zero-valued arguments

New Contributors

Full Changelog: https://github.com/elemaudio/elementary/compare/@elemaudio/core@3.2.1...@elemaudio/core@4.0.0

v3.2.0

14 Apr 18:11
Compare
Choose a tag to compare

What's Changed

  • PolyBLEP oscillators rewritten in C++ for improved performance
  • Bugfix in sampleseq event timing
  • Updated event emitter in web and offline renderer for improved type interface
  • Decorated the Renderer and web-renderer with a promise-based API
  • Added setCurrentTime API for web and offline renderer
  • Add el.sampleseq2 node: similar to sampleseq but with pitch shifting and time stretching behavior

New Contributors

Full Changelog: https://github.com/elemaudio/elementary/compare/@elemaudio/core@3.1.0...@elemaudio/core@3.2.0

v3.1.0

13 Jan 15:18
Compare
Choose a tag to compare

Feature

  • New el.sampleseq node for sequencing sample playback (similar to el.sparseq2)
  • New el.round node to complete the trio with el.floor and el.ceil
  • New el.skcompress soft-knee compressor (#34 by @Mozoloa)
  • Runtime::snapshot method for capturing the internal graph state

Improvement

  • Added a CMake namespace alias so that linking against the runtime subdirectory can be written elem::runtime

Bugfix

  • Fixed a bug in el.compress which had inverted the behavior of the ratio parameter (#34 by @Mozoloa)

v3.0.0

31 Oct 12:33
Compare
Choose a tag to compare

Breaking

  • Virtual File System no longer supports overwriting entries
  • Composite nodes are no longer supported

Feature

  • Refs and core.createRef
  • el.sparseq2 for value sequencing as a function of time
  • el.mm1p and el.prewarp, a multimode TPT one-pole filter from "The Art of VA Filter Design" and a corresponding cutoff prewarp utility
  • el.sphasor, an explicit version of el.phasor for accepting a sync signal

Improvement

  • No longer compiling with wasm-exceptions enabled (better cross-platform/cross-browser support)
  • Drop dependency on mpark::variant
  • Add ElemNode type def to the core library
  • Drop the optional sync signal from el.phasor (hence the explicit el.sphasor) which gives an explicit API and slight performance win

Bugfix

  • Add more headroom to el.capture to prevent dropouts in recording

v2.1.0

13 Aug 15:34
Compare
Choose a tag to compare

Deprecating

  • Deprecate virtualFileSystem overwrite behavior
    • v3 will remove this behavior, ensuring immutable access to the shared resources
  • Deprecate composite nodes
    • v3 will remove composite nodes to support refs and proper memoization

Feature

  • Remove 8 child limit
  • Add types to event emitter events @bgins
  • Update virtual file system to support listing known paths and pruning unused entries
  • Update bleptriangle coefficients for better discontinuity prevention @pauliusuza
  • Add capture node for recording signals with sample-accurate timing

Performance

  • Improve wasm event batch processing and web-worker communication overhead using transferables

Bugfix

  • Fix tap promotion, no more buzzing from feedback taps in new graph structures
  • Fix event propagation from idle graph nodes
  • Fix loading the web-renderer virtualFileSystem from the worklet processorOptions

v2.0.1

23 May 16:36
Compare
Choose a tag to compare

Minor

  • Refactor cli tool to more easily enable devs to make custom builds (#11)
  • Remove composite node memoization, fixing a long standing bug
  • Fix cli documentation

v2.0.0

09 May 14:28
Compare
Choose a tag to compare

Breaking

  • Dropped support for the plugin-renderer and node-renderer package
  • Convolve, Metro, Time, and FFT nodes now only available by default in the WASM (web-renderer, offline-renderer) packages
  • Table, Convolve, Sample, and any other nodes which depend on static audio buffers now only respond to a path property which resolves against the virtual file system
  • TapOut no longer accepts a size property; all tapOut nodes have an implicit block-size delay

Features

  • Open source, opening up the Runtime API for custom native integrations and extended audio processors
  • Introducing a new svf and svfshelf node
  • The internal implementation of the lowpass, highpass, bandpass, lowshelf, highshelf, peak, and notch filters now use the above svf nodes
  • New generic Renderer API in @elemaudio/core for writing custom rendering utilities

Minor

  • Significant CPU and memory usage improvements
  • Significant performance improvement on the frontend reconciliation algorithm