# SoundTouchJS core 2.1.1 — selected offline Stretch runtime

Four upstream JavaScript files are distributed unchanged: `Stretch.js`,
`AbstractSamplePipe.js`, `CircularSampleBuffer.js`, and `FifoSampleBuffer.js`.
They total 45,055 bytes and load only when Saturalabs creates its speed-processing
module worker. No upstream demo music, example recordings or optional
interpolation package is distributed here.

Copyright notices remain in each file. License: **Mozilla Public License 2.0**.
See [the upstream license notice](LICENSE), [the source license](SOURCE-LICENSE)
and [the complete MPL 2.0 text](https://www.mozilla.org/en-US/MPL/2.0/).

Preferred TypeScript source and package documentation are supplied in
[source.tar.gz](source.tar.gz), from
upstream tag `v2.1.1`, commit `d9e39a7ddcf74c7a145bbba45856f30068c82b79`.
Source maps include the corresponding TypeScript text; runtime files are
unmodified. Version, registry integrity and runtime SHA-256 values are recorded
in [provenance.json](provenance.json).

- Upstream: https://github.com/cutterbl/SoundTouchJS/tree/v2.1.1/packages/core
- Package: https://www.npmjs.com/package/@soundtouchjs/core/v/2.1.1
- Versioned registry archive: https://registry.npmjs.org/@soundtouchjs/core/-/core-2.1.1.tgz

Saturalabs' message adapter and end-tail policy live separately in
`/workers/audio-speed-core.mjs` and `/workers/audio-speed-worker.mjs`. They are not
upstream library code. The adapter retains the nominal duration and any nonzero
PCM16 tail instead of cropping that tail. The exported actual duration is
reported to the user; this is not a lossless time-stretch or quality guarantee.
