{"_id":"@ainsej/rubberband-wasm","_rev":"2-651f442c9276ecb28a9c2d35ee0bdeb0","name":"@ainsej/rubberband-wasm","dist-tags":{"latest":"4.0.1"},"versions":{"4.0.0":{"name":"@ainsej/rubberband-wasm","version":"4.0.0","keywords":["rubberband","time","stretch","pitch","shift","shifting","audio","webaudio","wasm","webassembly"],"author":{"url":"https://ains.co","name":"Ains","email":"me@ains.co"},"license":"GPLv2","_id":"@ainsej/rubberband-wasm@4.0.0","maintainers":[{"name":"ainsej","email":"me@ains.co"}],"homepage":"https://github.com/ains/rubberband-wasm#readme","bugs":{"url":"https://github.com/ains/rubberband-wasm/issues"},"dist":{"shasum":"dc30ba5c0eb92e6064ea5a0a5191a98688d49a94","tarball":"https://registry.npmjs.org/@ainsej/rubberband-wasm/-/rubberband-wasm-4.0.0.tgz","fileCount":3,"integrity":"sha512-GeptyKgUmfFSD9MHCmpUzDfyepbRnXtgKymRCSF3VxeGkH+/3vFwEMN5bJ3E+vQXDsv4gQrGHqnq8fD2x6hJMw==","signatures":[{"sig":"MEQCIETIUeQ1q9hGsxFEwgHDmbD+nAQpS+MGzoke6ISEp7zZAiAC5BwimUOd8qagvRyNE9UfROuUMhngXJSiL8mHYvEKtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33998},"main":"dist/index.umd.js","types":"dist/types/index.d.ts","module":"dist/index.esm.js","gitHead":"3a58cf1e27df9f3a048479a50c7fd6bec7ba33dd","scripts":{"build":"npm run build-bindings && npm run build-rollup && npm run build-types","serve":"npx serve","build-types":"tsc --project types.tsconfig.json","build-rollup":"rollup -c","build-bindings":"sh -c ./build.sh"},"_npmUser":{"name":"ainsej","email":"me@ains.co"},"repository":{"url":"git+https://github.com/ains/rubberband-wasm.git","type":"git"},"_npmVersion":"11.12.1","description":"WebAssembly version of the Rubber Band Library (high quality software library for audio time-stretching and pitch-shifting)","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"serve":"^13.0.2","tslib":"^2.4.0","rollup":"^2.75.7","ts-jest":"^28.0.5","ts-node":"^10.8.1","typescript":"^4.7.4","@types/estree":"^0.0.52","rollup-plugin-copy":"^3.4.0","@rollup/plugin-json":"^4.1.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-license":"^2.8.1","@rollup/plugin-commonjs":"^22.0.1","@rollup/plugin-typescript":"^8.3.3","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/rubberband-wasm_4.0.0_1782636940888_0.1975148894225207","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@ainsej/rubberband-wasm","version":"4.0.1","description":"WebAssembly version of the Rubber Band Library (high quality software library for audio time-stretching and pitch-shifting)","main":"dist/index.umd.js","module":"dist/index.esm.js","types":"dist/types/index.d.ts","scripts":{"build-bindings":"sh -c ./build.sh","build-rollup":"rollup -c","build-types":"tsc --project types.tsconfig.json","build":"npm run build-bindings && npm run build-rollup && npm run build-types","serve":"npx serve"},"keywords":["rubberband","time","stretch","pitch","shift","shifting","audio","webaudio","wasm","webassembly"],"bugs":{"url":"https://github.com/ains/rubberband-wasm/issues"},"homepage":"https://github.com/ains/rubberband-wasm#readme","author":{"name":"Ains","email":"me@ains.co","url":"https://ains.co"},"repository":{"type":"git","url":"git+https://github.com/ains/rubberband-wasm.git"},"license":"GPLv2","devDependencies":{"@rollup/plugin-commonjs":"^22.0.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.3.0","@rollup/plugin-typescript":"^8.3.3","@types/estree":"^0.0.52","rollup":"^2.75.7","rollup-plugin-copy":"^3.4.0","rollup-plugin-license":"^2.8.1","rollup-plugin-terser":"^7.0.2","serve":"^13.0.2","ts-jest":"^28.0.5","ts-node":"^10.8.1","tslib":"^2.4.0","typescript":"^4.7.4"},"gitHead":"be2f9c7499f6b308aefe0a2e0b8d11bdf5bf4c43","_id":"@ainsej/rubberband-wasm@4.0.1","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-37fPslOT9sVUI6Il2pOrquWxWV7BKQ3YPLYtOw5T9QohXmxSVHTfCTco9+NKGhJ1eFAfK5l5z2MCxqJFNfhWXQ==","shasum":"e62b41596abb25dbb5dd80686ece5bbc8c81682e","tarball":"https://registry.npmjs.org/@ainsej/rubberband-wasm/-/rubberband-wasm-4.0.1.tgz","fileCount":14,"unpackedSize":419621,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ainsej%2frubberband-wasm@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIELZ9HBQl6sBAU0m2PZLNifEXVG0CyQJb/iw9KZcqo1AAiAGMg+y7I0/J9+h1KvSHoQVN+GxL3MCzGqXaHtuhwJbxA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:321b50ec-1c5b-4b91-b4bf-11325252ad26"}},"directories":{},"maintainers":[{"name":"ainsej","email":"me@ains.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rubberband-wasm_4.0.1_1782639193063_0.11242855397064688"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-28T08:55:40.808Z","modified":"2026-06-28T09:33:13.439Z","4.0.0":"2026-06-28T08:55:41.026Z","4.0.1":"2026-06-28T09:33:13.221Z"},"bugs":{"url":"https://github.com/ains/rubberband-wasm/issues"},"author":{"name":"Ains","email":"me@ains.co","url":"https://ains.co"},"license":"GPLv2","homepage":"https://github.com/ains/rubberband-wasm#readme","keywords":["rubberband","time","stretch","pitch","shift","shifting","audio","webaudio","wasm","webassembly"],"repository":{"type":"git","url":"git+https://github.com/ains/rubberband-wasm.git"},"description":"WebAssembly version of the Rubber Band Library (high quality software library for audio time-stretching and pitch-shifting)","maintainers":[{"name":"ainsej","email":"me@ains.co"}],"readme":"# rubberband-wasm\n\nWebAssembly build of the audio time-stretching and pitch-shifting [Rubber Band Library](https://breakfastquay.com/rubberband/). This is a fork of [Dani Biró's rubberband-wasm](https://github.com/Daninet/rubberband-wasm).\n\n# Usage\n\nSee [demo app](https://ains.github.io/rubberband-wasm/).\n\n## Real-time API (Web Audio)\n\n`RubberBandNode` is an `AudioWorklet` source node that time-stretches **and**\npitch-shifts a buffer in real time, with both controllable live while it plays.\nBecause real-time time-stretching requires controlling the source read-rate, the\nnode owns the audio (like an `AudioBufferSourceNode`) rather than being a\npass-through effect.\n\n```js\nimport { RubberBandNode } from \"rubberband-wasm\";\n\nconst ctx = new AudioContext();\n\nconst node = await RubberBandNode.create(ctx, {\n  // The standalone worklet bundle and the wasm, served by your app:\n  processorUrl: \"rubberband-processor.js\", // dist/rubberband-processor.js\n  wasmUrl: \"rubberband.wasm\", // dist/rubberband.wasm\n  channelCount: audioBuffer.numberOfChannels,\n});\n\nnode.connect(ctx.destination);\nnode.setBuffer(audioBuffer); // an AudioBuffer or Float32Array[] (copied, not consumed)\n\nnode.setTempo(1.5); // 1.5x speed, pitch unchanged\nnode.setPitchSemitones(-3); // down 3 semitones, tempo unchanged\nnode.loop = true;\nnode.play(); // play() / pause() / stop() / seek(seconds)\n\nnode.onended = () => console.log(\"done\");\n```\n\nBoth `dist/rubberband-processor.js` and `dist/rubberband.wasm` must be reachable\nover http(s) at the URLs you pass (AudioWorklet cannot load from `file://`). See\n[`demo/realtime.html`](demo/realtime.html) for a complete example.\n\n# License\n\nRubber Band Library is open source software under the GNU General Public License. If you want to distribute it in a proprietary commercial application, you need to buy a licence. [Read more about this.](https://breakfastquay.com/rubberband/license.html)\n","readmeFilename":"README.md"}