- release: Use flat projectsRelationship, remove per-package GitHub releases (#77)
- Steve 'Cutter' Blades
- Release (#72)
- Release (#73)
- Release conventional commits (#75)
- ci: Remove paths-ignore from storybook pages trigger, add workflow_dispatch (#69)
- ci: Allow workflow_dispatch to bypass release commit check (#70)
- release: Remove duplicate conventionalCommits from version config (#74)
- release: Set releaseTagPattern to match existing v{version} git tags (#76)
- Steve 'Cutter' Blades
- Add publishConfig to interpolation strategy packages (#66)
- release: Add repository field to interpolation strategy packages (#68)
- Steve 'Cutter' Blades
- Update README to reflect LGPL-3.0 license upgrade (#64)
- Add Hann, Blackman, and Kaiser interpolation strategy packages (58ccc34)
⚠️ Remove legacy ScriptProcessorNode API and simplify SoundTouch controls (2047920)- Refactor processing pipeline and update interpolation strategy integrations (529a3e5)
- Add live processor metrics to Storybook playgrounds (f41f2e8)
- audio-worklet: Add processOffline() for OfflineAudioContext rendering (a14eb10)
- audio-worklet: Add processor observability metrics (ba7a767)
- audio-worklet: Add phase vocoder packages (60d7277)
- audio-worklet: Add formant correction worklet (1d5b049)
- core: Add StretchPipe interface and stretchFactory option (e3341fc)
- core,audio-worklet: Expose WSOLA timing parameters (c8196a8)
- storybook: Add WSOLA stretch parameters and processOffline playgrounds (fd6b73d)
- workspace: Add Storybook docs and interpolation strategy packages (bf9ebb6)
- storybook: Align playground datalists with demo (ab3b912)
- core,docs: Standardize interpolation strategy IDs and params\n\n- Rename all strategy IDs (hann8, blackman8, kaiser8, lanczos8) to (hann, blackman, kaiser, lanczos)\n- Standardize on zeroCrossings for kernel width param\n- Update all code, tests, and docs for new naming and parameter conventions\n- Remove deprecated lanczos8-strategy.mdx and update navigation\n- Add and update kitchen sink playgrounds for all strategies (7c6ff25)
- Update stage and commit instructions for Husky pre-commit hook (d1d4701)
- Add Husky pre-commit hook instructions to repo-management (20b816b)
- repo-management: Update stage and commit instructions for Husky pre-commit hook (533f7b5)
- repo-management: Update stage and commit instructions for Husky pre-commit hook (6f28f52)
- storybook: Add Getting Started guide for processorModuleUrl resolution (30f621a)
- Commit current in-progress workspace state (63bfd48)
- Remove package coverage artifacts and update Storybook links (2fb4792)
- Align interpolation strategy params, tests, and Storybook docs (3a803da)
- Run lint in pre-commit hook (880ef24)
- agents: Nx agent config (50417a2)
- docs: Enrich CLAUDE.md with commands, architecture, and project conventions (94d114b)
⚠️ license: Upgrade LGPL text to version 3 (#63)- storybook: Reorder track and tempo controls in tempo story (ac153e7)
- Switch Storybook Pages deploy to GitHub Actions (5f8021b)
- Remove legacy ScriptProcessorNode API and simplify SoundTouch controls (2047920) PitchShifter, SimpleFilter, WebAudioBufferSource, getWebAudioNode, and FilterSupport are no longer exported from @soundtouchjs/core. SoundTouch no longer exposes rate, tempo, virtualRate, or virtualTempo. SoundTouchNode no longer exposes tempo or rate AudioParams. Remove PitchShifter, SimpleFilter, WebAudioBufferSource, getWebAudioNode, FilterSupport, minsSecs, and noop — all solely supported the deprecated ScriptProcessorNode path. AudioWorklet is supported in all targeted browsers including iOS Safari 14.5+. Simplify SoundTouch to pitch-only public control: remove rate, tempo, virtualRate, virtualTempo, rateChange, and tempoChange setters. Internal _rate and _tempo are now always derived from virtualPitch. Remove tempo and rate AudioParams from SoundTouchNode. Playback speed is controlled exclusively by mirroring playbackRate on both the source node and SoundTouchNode. Add CLAUDE.md with mandatory code change requirements: JSDoc, tests, and documentation gates, plus Conventional Commits table and project conventions. Update all READMEs, Storybook stories, and .mdx docs to reflect the current public API and remove all references to removed symbols. Consolidate three duplicate root-level .mdx files into their beginner-friendly core/ versions.
- license: Upgrade LGPL text to version 3 (#63) License changed from LGPL-2.1 to LGPL-3.0; review compliance obligations.
- Steve 'Cutter' Blades
- Dependency updates (#60)
- Steve 'Cutter' Blades
- Steve 'Cutter' Blades
- Remove verbose (8a6aff9)
- Update dependencies (#55)
- Steve 'Cutter' Blades
- @soundtouchjs/core: Versioning (#53)
- Steve 'Cutter' Blades
All notable changes to this project will be documented in this file.
- Manually bump to 1.0.0 to rectify versioning after 0.4.0 release with breaking changes. No code changes from 0.4.0.
⚠️ Migrate to Nx monorepo, refactor to TypeScript, and add audio-worklet integration (#37)
- Migrate to Nx monorepo, refactor to TypeScript, and add audio-worklet integration (#37)
This refactors SoundtouchJS to Typescript, exporting
the same bits and necessary types. This also changes
the package name to
@soundtouchjs/core.- test: Provide unit testing
- feat: Buffer allocation improvements
- feat: Add @soundtouchjs/audio-worklet package and update demo to AudioWorklet
- Add @soundtouchjs/audio-worklet package with SoundTouchNode and bundled processor
- AudioParam-based parameter control (pitch, tempo, rate, pitchSemitones)
- Pre-bundled processor file with @soundtouchjs/core inlined (~23 KB)
- Update demo app with dual-mode support (AudioBuffer and Audio Element)
- Add README files for both published packages
- Update root README for monorepo structure
- Update all dependencies, and retool build configs for proper ESM outpu
- Updates to build dependencies and process (#32)
- action test step 12 (8e09725)
- action test step 11 (a48aba2)
- action test step 11 (e60a584)
- Updated dependencies to resolve security issue with their dependencies
- Updated the 'example.js' to account for autoplay policy changes in Chrome. Big Thanks to Colin Hill for reporting it.
- Custom Event dispatch from the PitchShifter, to broadcast 'play' event
- Add
PitchShifter.on()andPitchShifter.off()methods for registering and destroying event listener on audio node - **Breaking Changes: ** change PitchShifter.sampleRate and PitchShifter.duration from functions to variables