Releases: elemaudio/elementary
Releases · elemaudio/elementary
v4.0.0
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
- With new mc node types
- 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
- @cannc4 and @ncblair made their first contribution in #41
- @awood314 made their first contribution in #48 and a second in #52
- @d4rekanguok made their first contribution in #56
- @b00lduck made their first contribution in #50
Full Changelog: https://github.com/elemaudio/elementary/compare/@elemaudio/core@3.2.1...@elemaudio/core@4.0.0
v3.2.0
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
- @johncalvinroberts made their first contribution in #36
Full Changelog: https://github.com/elemaudio/elementary/compare/@elemaudio/core@3.1.0...@elemaudio/core@3.2.0
v3.1.0
Feature
- New
el.sampleseq
node for sequencing sample playback (similar toel.sparseq2
) - New
el.round
node to complete the trio withel.floor
andel.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
v3.0.0
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 timeel.mm1p
andel.prewarp
, a multimode TPT one-pole filter from "The Art of VA Filter Design" and a corresponding cutoff prewarp utilityel.sphasor
, an explicit version ofel.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 explicitel.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
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
v2.0.0
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
andsvfshelf
node - The internal implementation of the
lowpass
,highpass
,bandpass
,lowshelf
,highshelf
,peak
, andnotch
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