{"_id":"@soundtouchjs/core","_rev":"16-b8a80e77eac203134d7ec12b066c426a","name":"@soundtouchjs/core","dist-tags":{"latest":"2.1.1"},"versions":{"0.5.0":{"name":"@soundtouchjs/core","version":"0.5.0","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@0.5.0","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"1dd8b6d5dbd3c5751bb8e1f7cf20df8e8b73691e","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-0.5.0.tgz","fileCount":60,"integrity":"sha512-rNSe1nQyKLWFwgUV7wUd1iX3VVUbhAGtGt5DAN+5UmC20achEpe7YDJGozexm2KylGUoY7CjQ74at3w3jTLPPg==","signatures":[{"sig":"MEYCIQD5NlX88nVX6c5MeRPHwbv4dGMQ6N2bkP5q9aAOH6XEtQIhAMKKSQGoI3sZoxlObuOAjTIWZt1Y6GevhIaz3GpaIdGP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180163},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-0.5.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/3c95a03bdc9abed78f7eac45a69ff800/soundtouchjs-core-0.5.0.tgz","_integrity":"sha512-rNSe1nQyKLWFwgUV7wUd1iX3VVUbhAGtGt5DAN+5UmC20achEpe7YDJGozexm2KylGUoY7CjQ74at3w3jTLPPg==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_0.5.0_1773069702773_0.7584307690060048","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@soundtouchjs/core","version":"1.0.0","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.0","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"33902b7c0a49759c7db5f5fa3d4c6201e09f1b0c","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.0.tgz","fileCount":60,"integrity":"sha512-1ruFnvjVCIo0L/p/fKS1UPTqYzvpMe2PUugQL+pHH+a/XmakVCFdFvpnVXZpVMbjQ0G/kHrzQnJCvR4U+1CEkg==","signatures":[{"sig":"MEUCICJcxEWZPpeNXF9rFo9B1PbJbi3KU8XpDmvTQjWQzzBMAiEAr/KAAn4bZUf58LX3KrM6Nyzs1y34rOsQuUOfgMNUq3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180163},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/865238a8d3542dee9b2dd92cd09b5b25/soundtouchjs-core-1.0.0.tgz","_integrity":"sha512-1ruFnvjVCIo0L/p/fKS1UPTqYzvpMe2PUugQL+pHH+a/XmakVCFdFvpnVXZpVMbjQ0G/kHrzQnJCvR4U+1CEkg==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0_1773073881298_0.22640145990597071","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@soundtouchjs/core","version":"1.0.1","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.1","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"f129dcd12aa9557a68b66c333557e1caf8d1fc73","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.1.tgz","fileCount":60,"integrity":"sha512-u6Skk5TL0PKKlZDyN8hAZq65H82vCu2b7JTvVY20XNs2OtOmz4/jGaxlO/XDB8PsFrSBmBgge0ytXFoQ3iSP+Q==","signatures":[{"sig":"MEUCIQCU12GqPbnwADn6eakLvTCTbxSYzIz9Oloh4KC8zUdqNAIgVf9ZsuAJhKJbmnd1hI4SQYpum/lggNcUzm/5J3spLws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":184024},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/e94b55bec5e7d80323240cd22d86e7be/soundtouchjs-core-1.0.1.tgz","_integrity":"sha512-u6Skk5TL0PKKlZDyN8hAZq65H82vCu2b7JTvVY20XNs2OtOmz4/jGaxlO/XDB8PsFrSBmBgge0ytXFoQ3iSP+Q==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.1_1773077019564_0.7922625625158883","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@soundtouchjs/core","version":"1.0.2","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.2","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"3d506fa20e60c8bf22af4657ec5818cdf0669467","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.2.tgz","fileCount":60,"integrity":"sha512-yYCWHeKhMfvnpGs4dIHvnWalfwqyW1iLbsdgJbOq2wAS0/ynSCxhh5et4pvU6o4ehSqvyv5ppvXBhonyeIvBnA==","signatures":[{"sig":"MEQCIH4JczDvleuUY477zLWDSpE5kC8IWr4qK8NFgK2ui1G+AiAdk8f7DE8OowOMhZiaJxMeIlifT1Vg8XXWL03d0sxyQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":184024},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/80934a417a096e28b6690156fb8f4178/soundtouchjs-core-1.0.2.tgz","_integrity":"sha512-yYCWHeKhMfvnpGs4dIHvnWalfwqyW1iLbsdgJbOq2wAS0/ynSCxhh5et4pvU6o4ehSqvyv5ppvXBhonyeIvBnA==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.2_1773079331749_0.4271614329565201","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@soundtouchjs/core","version":"1.0.3","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.3","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"84b6926d9cef662823e07f0139eb8a74d167af90","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.3.tgz","fileCount":60,"integrity":"sha512-Ti6bDxFDkcCyysGvcHq8JcLK/x/px76QlH/lz6/oLd7cjjBd7bWRbWVc4FO6RJSdar8vURiCVsad7CLnYiYwnA==","signatures":[{"sig":"MEQCIH1DvhxDWvB27sch88qIFu3lpxNsM5zX7S3+PA/T/RpfAiBhNKynqrWFby0mGPkhQHgfh2oe/riFxgwBi91d2Bw7Ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199802},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/dacf7fa92fe1215dcc2619c4f7034ac8/soundtouchjs-core-1.0.3.tgz","_integrity":"sha512-Ti6bDxFDkcCyysGvcHq8JcLK/x/px76QlH/lz6/oLd7cjjBd7bWRbWVc4FO6RJSdar8vURiCVsad7CLnYiYwnA==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.3_1773081158292_0.44186796045014853","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@soundtouchjs/core","version":"1.0.4","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.4","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"10bd6707c0e7b61c8a470bb2863d811ede6bf111","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.4.tgz","fileCount":60,"integrity":"sha512-Rs9v0ATp7PtDhfdL/s5fz4Fmz0fM9nUY/5jLBEvctHEV1EqBpvzLGLHuf0kHRC/pYj9Tm9S+bN9DYMpSXw0bQQ==","signatures":[{"sig":"MEUCIFHeiF4+Noyd9FCQ0+nEu0i4XGpaahBo27UlL05u7ApYAiEA3PTgXy+dZltR+OOc9ED4xWdpauAjeYhhwpWFIx1XIWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199702},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/40eedea64697168add39fb309a940336/soundtouchjs-core-1.0.4.tgz","_integrity":"sha512-Rs9v0ATp7PtDhfdL/s5fz4Fmz0fM9nUY/5jLBEvctHEV1EqBpvzLGLHuf0kHRC/pYj9Tm9S+bN9DYMpSXw0bQQ==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.4_1773082259727_0.3146967997560499","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@soundtouchjs/core","version":"1.0.6","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.6","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"4d184103ea5a6023aebe617fdd9d7e07e39f78e4","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.6.tgz","fileCount":60,"integrity":"sha512-OtwVVC13Uo9T76qjT/Uv9EBi8faI4Fx5v4mdVzjNcCl12Bzy1/2yGuK271sI8ThnPOZFLNaH3AKlVBLZoKGttg==","signatures":[{"sig":"MEYCIQDeYD7SWg690FWPgb/9w8tMNT7boM73SZm4vupiIOe5mgIhAIkpA1wViRuaRjPAZBkjwIVFJ/0JP355mbwVR1YggAg1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199698},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/92e64db353fbec85651d69efde7a5d7d/soundtouchjs-core-1.0.6.tgz","_integrity":"sha512-OtwVVC13Uo9T76qjT/Uv9EBi8faI4Fx5v4mdVzjNcCl12Bzy1/2yGuK271sI8ThnPOZFLNaH3AKlVBLZoKGttg==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.6_1773085904161_0.6351765302217647","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@soundtouchjs/core","version":"1.0.7","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.7","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"b5d0e43b99985e2215051c44a555517ea1db6f59","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.7.tgz","fileCount":60,"integrity":"sha512-rVcE24VaZrNmYp9mT++Wuw49nENuvXLg2a6cO+jgGSV1zasa7r4aVFnHiFTHqIyTzexD705FRnpuo1MXOE/mVg==","signatures":[{"sig":"MEUCIAn+LBs9ko1SdzOJdNf2jjxT6hr1b7Lc3pkriBQ6zmxvAiEAn2E5Sl3zOP8+pWEvijfP6/LKpQtEBqmCKZKi9av3hFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199706},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/2cec338ae35f950aa49c0c6fbf584051/soundtouchjs-core-1.0.7.tgz","_integrity":"sha512-rVcE24VaZrNmYp9mT++Wuw49nENuvXLg2a6cO+jgGSV1zasa7r4aVFnHiFTHqIyTzexD705FRnpuo1MXOE/mVg==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.7_1773086875122_0.3005451958374725","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@soundtouchjs/core","version":"1.0.8","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.8","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"74dffa997c5d7c977a3dd89685290a4213017e49","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.8.tgz","fileCount":60,"integrity":"sha512-HLNRlaS5Uutv1aqPftFS0gYxaWGB3nuYQdP/oqZnP/XMygSbIHip4wnKXyX0rUxaUB6QliV4TnGha5qXPyZR7g==","signatures":[{"sig":"MEYCIQCDOjgErmMb8aW2bUbYjhqyoHOaLAFak+/l8CdU+45CdwIhAL+L0lATqjnYC4gFdJ2phgpCJhtyMQfyEgWxh19GuPLN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199706},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.8.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/92f9dca6ac3f5d65ced97d162fa663a1/soundtouchjs-core-1.0.8.tgz","_integrity":"sha512-HLNRlaS5Uutv1aqPftFS0gYxaWGB3nuYQdP/oqZnP/XMygSbIHip4wnKXyX0rUxaUB6QliV4TnGha5qXPyZR7g==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.8_1773844295296_0.23274384555845784","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@soundtouchjs/core","version":"1.0.9","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.9","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"06a42b9b702e53c2d30103031702af22228c7ed5","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.9.tgz","fileCount":60,"integrity":"sha512-ZOPBrLIcdrKYE9+AdkR0rGZ0XFwLQNkShkbOHGhm0nvswGsjK9bI6OKW8DxHTdLUwENmthjScsTwmbaBM11SEA==","signatures":[{"sig":"MEYCIQDZyr/bLkCAJlZqEI3txCFMHnzQ4bJjWcvfYlVopouwTgIhAM/sJXBZkPhvR02RYruqVHHjNcrntYwQBGBWjFljjhF2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199706},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.9.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/592431f622f14a542516e2bdf07224de/soundtouchjs-core-1.0.9.tgz","_integrity":"sha512-ZOPBrLIcdrKYE9+AdkR0rGZ0XFwLQNkShkbOHGhm0nvswGsjK9bI6OKW8DxHTdLUwENmthjScsTwmbaBM11SEA==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.9_1774960747653_0.1397955605912229","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@soundtouchjs/core","version":"1.0.10","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"LGPL-2.1","_id":"@soundtouchjs/core@1.0.10","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"f8d7c0e8f9c708225c2b28edf5214547de91c9ee","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-1.0.10.tgz","fileCount":60,"integrity":"sha512-KeifMox5hFxc4hzdHCG96/84JJbZC6wuNiE33FChHcuM/BjFqDcD6Uli5v2K1cw3mchH5K7rIGXJiQSvHvJkWQ==","signatures":[{"sig":"MEQCIGFgkDsRHPUnPLn438Q8YmmiveV4kw7Ydx+E54m2ZfidAiA7z1FW20DpywH5P/g4hEJRpzN6urjUpUv41PFnKgKaJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@1.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199707},"main":"./dist/index.js","type":"module","_from":"file:soundtouchjs-core-1.0.10.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/48bf1767c3edf9e2c80408d7a0a9a7c3/soundtouchjs-core-1.0.10.tgz","_integrity":"sha512-KeifMox5hFxc4hzdHCG96/84JJbZC6wuNiE33FChHcuM/BjFqDcD6Uli5v2K1cw3mchH5K7rIGXJiQSvHvJkWQ==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.10_1775508310311_0.7596049276294061","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@soundtouchjs/core","version":"2.0.1","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"MPL-2.0","_id":"@soundtouchjs/core@2.0.1","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"},{"url":"http://ryanberdeen.com/","name":"Ryan Berdeen","email":"ryan@ryanberdeen.com"},{"url":"http://fiala.space/","name":"Jakub Fiala","email":"jakub@fiala.space"},{"url":"http://www.holovaty.com/","name":"Adria Holovaty"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"758ba8e9efffa26307258fef133fdc2a3d907391","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-2.0.1.tgz","fileCount":52,"integrity":"sha512-6dg5O+JGQEFMdMhvK22k78FtxwZ4LHNUKgeDM+s8TgWi6kXROQk/9sL2yoWxn9vxzVlZ2f3MRE9XceB7rNvyPg==","signatures":[{"sig":"MEUCIQCqjtz1BeVyU8IMPznb3NayH3KcBjrrBz8HiPran0qmYAIgIXrLvqGzfkwC2VXnA9IvyYOvNwDBCJuCApxzqSAOCJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":252443},"main":"./.dist/index.js","type":"module","_from":"file:soundtouchjs-core-2.0.1.tgz","types":"./.dist/index.d.ts","exports":{".":{"types":"./.dist/index.d.ts","default":"./.dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/f61fdc5f76618edcc8535c8fbadeda88/soundtouchjs-core-2.0.1.tgz","_integrity":"sha512-6dg5O+JGQEFMdMhvK22k78FtxwZ4LHNUKgeDM+s8TgWi6kXROQk/9sL2yoWxn9vxzVlZ2f3MRE9XceB7rNvyPg==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"licenseFile":"LICENSE","sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@soundtouchjs/interpolation-strategy-lanczos":"2.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_2.0.1_1778853176775_0.029260325359616646","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@soundtouchjs/core","version":"2.0.3","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"MPL-2.0","_id":"@soundtouchjs/core@2.0.3","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"eb945c141c2c6bd64b9d5b350f1f313c2edf8a4d","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-2.0.3.tgz","fileCount":52,"integrity":"sha512-dNlV/HP7HERm8/FCYLiWivlb3V9rrkFEUMPhazznkPd8EhsRDhewfd3r3QCW2YopOgZygukkhD+vjnTMMpQvVw==","signatures":[{"sig":"MEUCIQDhzXiqrfMMsn4TkQsica5fZDzfby5AQbqL5t7BGxkB5gIgcLxammeXW0d8qlnm8QvGBQWfi+ejO7Ckbxk0uLfEqFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":223742},"main":"./.dist/index.js","type":"module","_from":"file:soundtouchjs-core-2.0.3.tgz","types":"./.dist/index.d.ts","exports":{".":{"types":"./.dist/index.d.ts","default":"./.dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/b1ba362171023a42c18fc10b035100f8/soundtouchjs-core-2.0.3.tgz","_integrity":"sha512-dNlV/HP7HERm8/FCYLiWivlb3V9rrkFEUMPhazznkPd8EhsRDhewfd3r3QCW2YopOgZygukkhD+vjnTMMpQvVw==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"licenseFile":"LICENSE","sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@soundtouchjs/interpolation-strategy-lanczos":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_2.0.3_1778876387312_0.2575088723469128","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@soundtouchjs/core","version":"2.0.4","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"MPL-2.0","_id":"@soundtouchjs/core@2.0.4","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"25b0d1f33608cc1140542389717b0a1f59b3ac0f","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-2.0.4.tgz","fileCount":52,"integrity":"sha512-QVCEtyyVPPFGA4WW9NAXKZb/ujLpUGZeMexkuqJYwh0lVZ5fV+iWQHfI86xLpBSo676E0M+5cskBd6gecV8pUA==","signatures":[{"sig":"MEUCIEN7ACokKhDBrvK52hWou2fOwi7DJgQi2+lwGr3GhcYTAiEAmc/58f0JomLhhUPq3deATR2Ns2J3plER6xpfN0srB18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":223742},"main":"./.dist/index.js","type":"module","_from":"file:soundtouchjs-core-2.0.4.tgz","types":"./.dist/index.d.ts","exports":{".":{"types":"./.dist/index.d.ts","default":"./.dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/8eb63f0794baa94f29c6244175c8b8b7/soundtouchjs-core-2.0.4.tgz","_integrity":"sha512-QVCEtyyVPPFGA4WW9NAXKZb/ujLpUGZeMexkuqJYwh0lVZ5fV+iWQHfI86xLpBSo676E0M+5cskBd6gecV8pUA==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"11.13.0","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"licenseFile":"LICENSE","sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@soundtouchjs/interpolation-strategy-lanczos":"2.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_2.0.4_1781036332648_0.778803151615661","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@soundtouchjs/core","version":"2.1.0","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"license":"MPL-2.0","_id":"@soundtouchjs/core@2.1.0","maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"contributors":[{"url":"https://cutterscrossing.com/","name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com"},{"url":"https://www.surina.net/soundtouch/","name":"Olli Parviainen","email":"oparviai@iki.fi"}],"homepage":"https://github.com/cutterbl/SoundTouchJS","bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"dist":{"shasum":"4ad3c68f4ba0980508d7389acf2d6bda5d809045","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-2.1.0.tgz","fileCount":52,"integrity":"sha512-LXZ1HPXnyu0iPw+qlxcb48zuIQfP+DZAyRGG2w2/nfdKsJVft3122J6wHO/uVhZwUOjrgjYPrwu6DBkd66KMtA==","signatures":[{"sig":"MEUCIQDTdNmqauWGoJS0ccLQPFr405tPoJnTFyKl7BLM9YD0HgIgQBWsimnIdozUFQApoA1OXGACRWAEMZTcENHbbV0LxKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":224481},"main":"./.dist/index.js","type":"module","_from":"file:soundtouchjs-core-2.1.0.tgz","types":"./.dist/index.d.ts","exports":{".":{"types":"./.dist/index.d.ts","default":"./.dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"_resolved":"/tmp/eebb077889bcf5814f2057d8d4ae2789/soundtouchjs-core-2.1.0.tgz","_integrity":"sha512-LXZ1HPXnyu0iPw+qlxcb48zuIQfP+DZAyRGG2w2/nfdKsJVft3122J6wHO/uVhZwUOjrgjYPrwu6DBkd66KMtA==","repository":{"url":"git+https://github.com/cutterbl/SoundTouchJS.git","type":"git","directory":"packages/core"},"_npmVersion":"11.16.0","description":"An audio processing library for manipulating Web Audio Contexts","directories":{},"licenseFile":"LICENSE","sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@soundtouchjs/interpolation-strategy-lanczos":"2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_2.1.0_1783533219781_0.8387251977781116","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@soundtouchjs/core","version":"2.1.1","description":"An audio processing library for manipulating Web Audio Contexts","license":"MPL-2.0","licenseFile":"LICENSE","type":"module","sideEffects":false,"exports":{"./package.json":"./package.json",".":{"types":"./.dist/index.d.ts","default":"./.dist/index.js"}},"main":"./.dist/index.js","types":"./.dist/index.d.ts","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"author":{"name":"Steve 'Cutter' Blades"},"contributors":[{"name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com","url":"https://cutterscrossing.com/"},{"name":"Olli Parviainen","email":"oparviai@iki.fi","url":"https://www.surina.net/soundtouch/"}],"repository":{"type":"git","url":"git+https://github.com/cutterbl/SoundTouchJS.git","directory":"packages/core"},"bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"homepage":"https://github.com/cutterbl/SoundTouchJS","publishConfig":{"access":"public"},"dependencies":{"@soundtouchjs/interpolation-strategy-lanczos":"2.1.1"},"_id":"@soundtouchjs/core@2.1.1","_integrity":"sha512-ccBiG9/zHdM1Sx1RUkXWBgRYFI1HCiUHHwRK8gAvVNgmcafBgUzRP6Czn7pUPcHgSQus+i3Eu3DlfBR24wqspA==","_resolved":"/tmp/0f332cc6e262ed0d1872b7e33e747ee3/soundtouchjs-core-2.1.1.tgz","_from":"file:soundtouchjs-core-2.1.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-ccBiG9/zHdM1Sx1RUkXWBgRYFI1HCiUHHwRK8gAvVNgmcafBgUzRP6Czn7pUPcHgSQus+i3Eu3DlfBR24wqspA==","shasum":"9a8117ac965d93348b4208e0434ae801c411fa88","tarball":"https://registry.npmjs.org/@soundtouchjs/core/-/core-2.1.1.tgz","fileCount":52,"unpackedSize":224481,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@soundtouchjs%2fcore@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC+EUDBCn/8T3HXAJC6MCEcxGa/aw6gn+Dq/W+Ne0kx1AiADxI5FhL14avtHe+34hpNa8uMgPv41NJjb9nC/rbpupw=="}]},"_npmUser":{"name":"cutterbl","email":"no.junk@cutterscrossing.com"},"directories":{},"maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_2.1.1_1785778762787_0.5259959721454"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-09T15:21:42.592Z","modified":"2026-08-03T17:39:23.279Z","0.5.0":"2026-03-09T15:21:42.937Z","1.0.0":"2026-03-09T16:31:21.477Z","1.0.1":"2026-03-09T17:23:39.709Z","1.0.2":"2026-03-09T18:02:11.905Z","1.0.3":"2026-03-09T18:32:38.499Z","1.0.4":"2026-03-09T18:50:59.882Z","1.0.6":"2026-03-09T19:51:44.337Z","1.0.7":"2026-03-09T20:07:55.312Z","1.0.8":"2026-03-18T14:31:35.450Z","1.0.9":"2026-03-31T12:39:07.828Z","1.0.10":"2026-04-06T20:45:10.479Z","2.0.1":"2026-05-15T13:52:56.934Z","2.0.3":"2026-05-15T20:19:47.505Z","2.0.4":"2026-06-09T20:18:52.785Z","2.1.0":"2026-07-08T17:53:39.925Z","2.1.1":"2026-08-03T17:39:22.949Z"},"bugs":{"url":"https://github.com/cutterbl/SoundTouchJS/issues"},"author":{"name":"Steve 'Cutter' Blades"},"license":"MPL-2.0","homepage":"https://github.com/cutterbl/SoundTouchJS","keywords":["audio","WebAudio","TypeScript","pitch","tempo","soundtouch"],"repository":{"type":"git","url":"git+https://github.com/cutterbl/SoundTouchJS.git","directory":"packages/core"},"description":"An audio processing library for manipulating Web Audio Contexts","contributors":[{"name":"Steve 'Cutter' Blades","email":"web.admin@cutterscrossing.com","url":"https://cutterscrossing.com/"},{"name":"Olli Parviainen","email":"oparviai@iki.fi","url":"https://www.surina.net/soundtouch/"}],"maintainers":[{"name":"cutterbl","email":"no.junk@cutterscrossing.com"}],"readme":"# @soundtouchjs/core\n\nCore audio processing library for real-time pitch shifting using the Web Audio API. A TypeScript rewrite of the [SoundTouch](https://www.surina.net/soundtouch/) audio processing library.\n\n[I accept cash](https://paypal.me/cutterbl?locale.x=en_US) if you like what's been done.\n\nPart of the [SoundTouchJS](https://github.com/cutterbl/SoundTouchJS) monorepo — for more information and so much more.\n\n## Installation\n\n```sh\nnpm install @soundtouchjs/core\n```\n\n## API docs\n\nDetailed developer documentation for all public class and function exports is available in Storybook: [https://cutterscrossing.com/SoundTouchJS/?path=/docs/core-soundtouch--docs](https://cutterscrossing.com/SoundTouchJS/?path=/docs/core-soundtouch--docs).\n\n## Usage\n\n> For real-time browser audio, use [`@soundtouchjs/audio-worklet`](../audio-worklet/README.md) instead. `@soundtouchjs/core` is for building custom pipelines, offline processing, or integrating into non-browser environments.\n\n### Interpolation strategy selection\n\n`RateTransposer` now resolves interpolation through a strategy registry. The default strategy id is `lanczos`.\n\nStrategy registration adds strategies to the registry, but no longer changes the process-wide active strategy automatically.\n\nTo opt into linear interpolation:\n\n```ts\nimport { SoundTouch, registerInterpolationStrategy } from '@soundtouchjs/core';\nimport { registerLinearStrategy } from '@soundtouchjs/interpolation-strategy-linear';\n\nregisterLinearStrategy({ registerInterpolationStrategy });\n\nconst st = new SoundTouch({\n  interpolationStrategy: 'linear',\n});\n```\n\nTo configure strategy params and update them at runtime:\n\n```ts\nconst st = new SoundTouch({\n  interpolationStrategy: {\n    id: 'lanczos',\n    params: { zeroCrossings: 4 },\n  },\n});\n\nst.setInterpolationStrategy('linear');\n\nst.setInterpolationStrategyParams({ edgeHoldFrames: 4 });\n```\n\nCurrent mutable params:\n\n- `lanczos`: `zeroCrossings` (default `4`, normalized to `2..8`), `normalize` (default `false`)\n- `linear`: `edgeHoldFrames` (default `1`, normalized to `0..32`)\n\nTo use default Lanczos explicitly:\n\n```ts\nconst st = new SoundTouch({\n  interpolationStrategy: 'lanczos',\n});\n```\n\n### Low-level API\n\nFor custom pipeline work, all internal components are exported:\n\n```ts\nimport {\n  CircularSampleBuffer,\n  SoundTouch,\n  FifoSampleBuffer,\n  registerInterpolationStrategy,\n  setActiveInterpolationStrategy,\n} from '@soundtouchjs/core';\n\nconst st = new SoundTouch({});\nst.pitch = 1.5;\n\n// Optional FIFO buffer override\nconst stFifo = new SoundTouch({\n  sampleRate: 44100,\n  sampleBufferType: 'fifo',\n});\n\n// Feed samples manually and pull processed output\nconst inputSamples = new Float32Array(4096 * 2); // interleaved stereo\nst.inputBuffer.putSamples(inputSamples);\nst.process();\n\nconst outputBuffer = new Float32Array(4096 * 2);\nst.outputBuffer.extract(outputBuffer, 0, 4096);\n```\n\n#### Key exports\n\n| Export                                | Description                                                              |\n| ------------------------------------- | ------------------------------------------------------------------------ |\n| `SoundTouch`                          | Main processing engine — set `pitch` or `pitchSemitones`                 |\n| `AbstractSamplePipe`                  | Base class for pipeline stages that read from an input buffer and write to an output buffer |\n| `CircularSampleBuffer`                | Circular interleaved sample buffer (default processing path)             |\n| `FifoSampleBuffer`                    | Resizable interleaved sample buffer (ES2024 `ArrayBuffer`)               |\n| `Stretch`                             | WSOLA time-stretch stage (used internally by `SoundTouch`)               |\n| `RateTransposer`                      | Sample rate transposer (used internally by `SoundTouch`)                 |\n| `registerInterpolationStrategy`       | Registers a custom interpolation strategy plugin                         |\n| `unregisterInterpolationStrategy`     | Removes a previously registered plugin strategy                          |\n| `hasInterpolationStrategy`            | Returns `true` if a strategy id is currently registered                  |\n| `listInterpolationStrategies`         | Returns all registered strategy ids sorted lexicographically             |\n| `getActiveInterpolationStrategyId`    | Returns the current process-wide default strategy id                     |\n| `setActiveInterpolationStrategy`      | Changes process-wide default interpolation strategy id                   |\n| `normalizeInterpolationStrategyId`    | Validates and resolves a strategy option to a registered id              |\n| `resolveInterpolationStrategy`        | Resolves a strategy option to a built-in base id or plugin kernel        |\n| `resolveInterpolationStrategyRuntime` | Resolves runtime kernel + normalized params + applier hook               |\n| `StretchParameters`                   | Type for WSOLA timing parameters passed to `setStretchParameters`        |\n| `StretchPipe`                         | Interface for a WSOLA-compatible stretch stage (implement to replace it) |\n| `StretchFactory`                      | Factory function type for creating a custom `StretchPipe`                |\n| `StretchFactoryOptions`               | Options passed from `SoundTouch` to a `StretchFactory`                   |\n\n#### WSOLA timing parameters\n\n`SoundTouch` exposes `setStretchParameters()` to tune the time-stretch algorithm at runtime:\n\n```ts\nconst st = new SoundTouch({});\n\nst.setStretchParameters({ overlapMs: 12 });             // crossfade overlap only\nst.setStretchParameters({ quickSeek: false });          // exhaustive correlation search\nst.setStretchParameters({ sequenceMs: 80, seekWindowMs: 20 }); // manual windows\nst.setStretchParameters({ sequenceMs: 0 });             // back to auto\n```\n\n| Param | Default | Description |\n|-------|---------|-------------|\n| `sequenceMs` | auto (50–125 ms) | Processing window length; `0` = auto-calculate from tempo |\n| `seekWindowMs` | auto (15–25 ms) | Seek window length; `0` = auto-calculate |\n| `overlapMs` | 8 ms | Crossfade overlap length |\n| `quickSeek` | `true` | Fast multi-pass seek; `false` = exhaustive (better quality, slower) |\n\n`Stretch` also exposes individual `overlapMs` (getter/setter) and `quickSeek` (getter/setter) properties.\n\nIf you use `Stretch` directly, pass the source sample rate in the constructor so its initial overlap and seek windows match the material you are processing:\n\n```ts\nimport { Stretch } from '@soundtouchjs/core';\n\nconst stretch = new Stretch({\n  createBuffers: true,\n  sampleRate: audioBuffer.sampleRate,\n});\n```\n\n#### Custom stretch stage via `stretchFactory`\n\n`SoundTouchOptions.stretchFactory` lets you replace the built-in WSOLA `Stretch` stage with any `StretchPipe`-compatible implementation:\n\n```ts\nimport { SoundTouch } from '@soundtouchjs/core';\nimport type { StretchFactory } from '@soundtouchjs/core';\n\nconst myFactory: StretchFactory = (sampleRate, opts) =>\n  new MyCustomStretch(sampleRate, opts);\n\nconst st = new SoundTouch({ stretchFactory: myFactory });\n```\n\nThe factory receives the sample rate and a `StretchFactoryOptions` object containing `sampleBufferFactory` and `sampleBufferType`. `SoundTouch` calls `setParameters` on the returned instance after construction, and the built-in `Stretch` now also receives that sample rate in its constructor.\n\n## Constructor API (breaking)\n\n`@soundtouchjs/core` constructors now use named options objects instead of positional arguments.\n\nExample:\n\n```ts\nnew SoundTouch({ sampleRate: 44100, sampleBufferType: 'fifo' });\n```\n\n## Key switching and pitch control\n\nChanging the musical key of playback is handled by the `pitchSemitones` parameter. Each integer step corresponds to one semitone (half-step) on the chromatic scale. For example:\n\n- `pitchSemitones = 2` shifts the key up a whole step\n- `pitchSemitones = -3` shifts down a minor third\n\nThe effective pitch multiplier is calculated as:\n\n    pitch * 2^(pitchSemitones / 12)\n\nThis lets you combine continuous pitch control (`pitch`) with discrete key changes (`pitchSemitones`).\n\nFor most musical applications, set `pitchSemitones` to the desired interval and leave `pitch` at `1.0` unless you want fine-tuning within a semitone.\n\nSee [`@soundtouchjs/audio-worklet`](../audio-worklet/README.md) for AudioWorklet-based usage.\n\n## What's changed\n\nNotable additions and changes since the v0.4 rewrite:\n\n- **`StretchPipe` interface**: `SoundTouch` accepts a `stretchFactory` option to replace the built-in WSOLA `Stretch` stage with a custom implementation (e.g. phase vocoder).\n- **WSOLA timing parameters**: `setStretchParameters()` exposes `sequenceMs`, `seekWindowMs`, `overlapMs`, and `quickSeek` for tuning the time-stretch algorithm at runtime.\n- **Simplified public API**: `rate`, `tempo`, `virtualRate`, and `virtualTempo` removed from `SoundTouch`. Pitch is the only public control; playback speed is handled at the source node level.\n- **Interpolation strategy IDs standardised**: IDs renamed (`lanczos8` → `lanczos`, `hann8` → `hann`, `blackman8` → `blackman`, `kaiser8` → `kaiser`) and all strategy params unified around `zeroCrossings`.\n- **Licensing**: Moved from LGPL to MPL-2.0.\n\n### v0.4 (initial rewrite)\n\n- **Monorepo**: Now published as `@soundtouchjs/core` from an [Nx](https://nx.dev) monorepo (was `soundtouchjs`)\n- **TypeScript**: Full rewrite — strict mode, zero `any`, complete type exports\n- **ESM only**: Pure ES modules targeting ES2024 (`import`/`export`, no CommonJS)\n- **ES2024 buffers**: `FifoSampleBuffer` uses resizable `ArrayBuffer` for zero-allocation growth\n- **Interpolation plugin architecture**: strategy registry with `lanczos` default and pluggable strategies\n- **Optimized internals**: Dirty-flag overlap buffers in `Stretch`\n- **Zero runtime dependencies**\n\n### Breaking changes\n\nIf you are upgrading from an earlier version of `@soundtouchjs/core`:\n\n- **Removed exports**: `AbstractFifoSamplePipe` (replaced by `AbstractSamplePipe`), `FilterSupport`, `SimpleFilter`, `WebAudioBufferSource`, `PitchShifter`, `getWebAudioNode`\n- **Removed types**: `SamplePipe`, `PlayEventDetail`, `SourcePositionCallback`\n- **Constructor change**: `SoundTouch` now requires a named options object — `new SoundTouch({ sampleRate, sampleBufferType })` (was `new SoundTouch()`)\n- **Strategy ID rename**: `lanczos8` → `lanczos`, `hann8` → `hann`, `blackman8` → `blackman`, `kaiser8` → `kaiser`\n\n## License\n\nMPL-2.0 — see [LICENSE](../../LICENSE) for details.\n","readmeFilename":"README.md"}