{"_id":"@audio/stretch-psola","_rev":"7-2ebe6779c9884bc42338e8cfcdaef4d2","name":"@audio/stretch-psola","dist-tags":{"latest":"1.2.2"},"versions":{"1.0.0":{"name":"@audio/stretch-psola","version":"1.0.0","keywords":["audio","dsp","time-stretch","psola","pitch-synchronous","speech","vocals"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-psola@1.0.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-psola","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"c9ee15c398decb6bd65f93b00b01877fdff25639","tarball":"https://registry.npmjs.org/@audio/stretch-psola/-/stretch-psola-1.0.0.tgz","fileCount":5,"integrity":"sha512-CHKaNGmZ21mj3M7DebC7CxoyViqnFl4N9aTBK8fgEEyOze5pEuZwUFW3DvzLOAjshH9aGIazhF4F/mYuNzzXLw==","signatures":[{"sig":"MEYCIQDNw74KyLPyWGaUPiuCj9ttL3Ckerk9fNFPrlMGzEPZoAIhAL+npE/Q7Rj6Hf5dli1h5V8dL4OLszwnhp3uOPJQnfjc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22653},"main":"psola.js","type":"module","types":"psola.d.ts","engines":{"node":">=18"},"exports":{".":"./psola.js","./package.json":"./package.json"},"gitHead":"3f1e6701f03a021fd2ab5f55edfbe5a0def65453","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-psola"},"_npmVersion":"11.12.1","description":"Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/stretch-core":"^1.0.0","@audio/stretch-wsola":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-psola_1.0.0_1783540154693_0.15303619391478174","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@audio/stretch-psola","version":"1.0.1","keywords":["audio","dsp","time-stretch","psola","pitch-synchronous","speech","vocals"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-psola@1.0.1","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-psola","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"80c5fafd9d37ab2060ce051c26a3c0b8d36c1ba4","tarball":"https://registry.npmjs.org/@audio/stretch-psola/-/stretch-psola-1.0.1.tgz","fileCount":6,"integrity":"sha512-zQXyKvXTZz4CV4u7vUfCHunlKvhHejZWkfYwG9avClOuQg6WS8TeJwvyKzc+FJSJ5a/SHuSNWchjssqX2kUWSg==","signatures":[{"sig":"MEQCIETfIO26ZKq3t0F6pFbO2DV8w4VG4BAoL3+Z7wh1HEDhAiAsvmfjNd8YnHnSgljXPNnNP+ezNpN3J15wCVeXz/+5eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23148},"main":"psola.js","type":"module","types":"psola.d.ts","engines":{"node":">=18"},"exports":{".":"./psola.js","./package.json":"./package.json"},"gitHead":"e64c9d080cf9149a36bcbfae46a375f704ab6193","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-psola"},"_npmVersion":"11.12.1","description":"Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/stretch-wsola":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-psola_1.0.1_1783624514556_0.328061922925728","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@audio/stretch-psola","version":"1.1.0","keywords":["audio","dsp","time-stretch","psola","pitch-synchronous","speech","vocals"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-psola@1.1.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-psola","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"97c5038ba1fd989dff7bf7e3b2b641e7b7c34d07","tarball":"https://registry.npmjs.org/@audio/stretch-psola/-/stretch-psola-1.1.0.tgz","fileCount":7,"integrity":"sha512-rJ6x9cWlvEieK6npJ/5O9MPybrhRLplnYWIoco8SCWmum09nyVi8DOMr4CWprOIEGelXyBXL5h0vn3X+3/Ck9Q==","signatures":[{"sig":"MEUCIAoiu+wlGiB5ddugPsB/hB8yt4dnqj41epYQ4cbyP5OjAiEA5gToQGVft1Ct5focFhJPleVo+xAvYMOXfD2+jLmdsFo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24149},"main":"psola.js","type":"module","audio":"./audio.js","types":"psola.d.ts","engines":{"node":">=18"},"exports":{".":"./psola.js","./audio":"./audio.js","./package.json":"./package.json"},"gitHead":"585d331eb9dd2585889fb7f973e74c2d8672992b","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-psola"},"_npmVersion":"11.12.1","description":"Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/stretch-wsola":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-psola_1.1.0_1783692365080_0.5866466973312425","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@audio/stretch-psola","version":"1.1.1","keywords":["audio","dsp","time-stretch","psola","pitch-synchronous","speech","vocals"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-psola@1.1.1","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-psola","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"1ad9c1afce54727f09629e1c4441f0da50a354eb","tarball":"https://registry.npmjs.org/@audio/stretch-psola/-/stretch-psola-1.1.1.tgz","fileCount":8,"integrity":"sha512-6tzPo8fN4HQRvcxLehp1FPC1QuyIK2pMe5JJwDFXqRewBXBIBN9CrNORw9nDYzSCdPgbWrB77K2rr3M0xB3MSg==","signatures":[{"sig":"MEUCIFikXH613OE9hHGZTYqBc5aPkIKK9oKNFlmvUQNrwYD8AiEA3/mHfBx6hYHoQHOcpVmt6aeV3dIbBqbWEDeTMvmOV50=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25454},"main":"psola.js","type":"module","audio":"./audio.js","types":"psola.d.ts","engines":{"node":">=18"},"exports":{".":"./psola.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"4015beca11a555e68b651b429ec6e0867ca5f765","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-psola"},"_npmVersion":"11.12.1","description":"Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/stretch-wsola":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-psola_1.1.1_1783701839299_0.5045628801381867","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@audio/stretch-psola","version":"1.2.0","keywords":["audio","dsp","time-stretch","psola","pitch-synchronous","speech","vocals"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-psola@1.2.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-psola","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"f829fd0cf2262fcf94e69ad13e90e0b6788fd904","tarball":"https://registry.npmjs.org/@audio/stretch-psola/-/stretch-psola-1.2.0.tgz","fileCount":8,"integrity":"sha512-nT6dTXHbgQfWsppB+2gMen9iT0suguo41SDxL5pmSYmvIBztOh5nmGSsvNYR6kJDVNwAefx+EvOcbgN4CKeV1w==","signatures":[{"sig":"MEUCIQDYwUBRfu9Z1NXu3N2P8f5LosWQOWtpxqD6ea9l8bimpgIgOwbroj7YzJPI74EdeRUk4AFiNwdnfaPvcTZRJOMQCng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25773},"main":"psola.js","type":"module","audio":"./audio.js","types":"psola.d.ts","engines":{"node":">=18"},"exports":{".":"./psola.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"78d915c706fda0a12a6074abbe352147d0a0844a","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-psola"},"_npmVersion":"11.12.1","description":"Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/stretch-wsola":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-psola_1.2.0_1783724431348_0.22648887109244598","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@audio/stretch-psola","version":"1.2.1","keywords":["audio","dsp","time-stretch","psola","pitch-synchronous","speech","vocals"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-psola@1.2.1","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-psola","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"800cc8c0959084c6467a96a00dc71cfe8d68f9ac","tarball":"https://registry.npmjs.org/@audio/stretch-psola/-/stretch-psola-1.2.1.tgz","fileCount":8,"integrity":"sha512-4QUoNjb114cRdx3YQ7qajjUySQtrXpwX1R1BskovJz1psu74Cuurw+SWbyIZa94P5ny9gOU94B1rBLckGXDu5w==","signatures":[{"sig":"MEUCIQCL0nlK122j+nseJAQfcTyz8m159Mv7lrnPiaSPIyvHegIgVV0pn4G1eE5aaUOs+HjLWTlo6XJJR8puI6y6ByRWCBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25825},"main":"psola.js","type":"module","audio":"./audio.js","types":"psola.d.ts","engines":{"node":">=18"},"exports":{".":"./psola.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"funding":"https://github.com/sponsors/audiojs","gitHead":"5f24d6134001e052553442c5a0399103d6c55948","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-psola"},"_npmVersion":"11.12.1","description":"Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/stretch-wsola":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-psola_1.2.1_1783731913440_0.20673147558894112","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"_id":"@audio/stretch-psola@1.2.2","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"9730a507a0a3d67d3564ee5bbf0b021afddaf667","tarball":"https://registry.npmjs.org/@audio/stretch-psola/-/stretch-psola-1.2.2.tgz","fileCount":8,"integrity":"sha512-4LHFAy5Pbjbeij+x4ParGkNeHq+p6pE2pITYOXR/+QbV7Y64A6jkNxsA80Xo8lBW5CYdYc/h6c+IbZN1uoJtFw==","signatures":[{"sig":"MEYCIQD5ULPWX8p0XO3MmpJQ0EGV9e/HYyka4iGzHPYpt8EU+AIhAPsIRIotdA6y2+5Q49oaPsTDllcTnjSyQz2sFunwOBJy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC8/qJ8DJaS6OFw/kZ/MnCiZCMdFxeXgHtG4WUYcgCKXAiEAi3gTgiWFly5iPKd5M8ZeEIsik7KIiPF3pEgvI55z5LE="}],"unpackedSize":27507},"main":"psola.js","name":"@audio/stretch-psola","type":"module","audio":"./audio.js","types":"psola.d.ts","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"engines":{"node":">=18"},"exports":{".":"./psola.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"funding":"https://github.com/sponsors/audiojs","gitHead":"3338d83286ba4e13165427a88c79ce9732fcf1bf","license":"MIT","version":"1.2.2","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-psola","keywords":["audio","dsp","time-stretch","psola","pitch-synchronous","speech","vocals"],"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-psola"},"_npmVersion":"11.12.1","description":"Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments","directories":{},"maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/stretch-wsola":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stretch-psola_1.2.2_1790192556304_0.5639782804174418"}}},"time":{"created":"2026-07-08T19:49:14.556Z","modified":"2026-09-23T19:42:36.638Z","1.0.0":"2026-07-08T19:49:14.820Z","1.0.1":"2026-07-09T19:15:14.699Z","1.1.0":"2026-07-10T14:06:05.270Z","1.1.1":"2026-07-10T16:43:59.448Z","1.2.0":"2026-07-10T23:00:31.498Z","1.2.1":"2026-07-11T01:05:13.640Z","1.2.2":"2026-09-23T19:42:36.408Z"},"bugs":{"url":"https://github.com/audiojs/stretch/issues"},"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-psola","keywords":["audio","dsp","time-stretch","psola","pitch-synchronous","speech","vocals"],"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-psola"},"description":"Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/stretch-psola\n\nPitch-Synchronous Overlap-Add. Detects pitch period via autocorrelation, windows grains at pitch-cycle boundaries, then re-spaces them — no phase discontinuities at overlaps.\n\n```js\nimport psola from '@audio/stretch-psola'\n\npsola(data, { factor: 1.5 })\npsola(data, { factor: 2, minFreq: 100, maxFreq: 400 })   // male voice range\n```\n\n| Param | Default | |\n|---|---|---|\n| `factor` | `1` | Time stretch ratio |\n| `sampleRate` | `44100` | For pitch detection range |\n| `minFreq` | `80` | Lowest expected pitch (Hz) |\n| `maxFreq` | `500` | Highest expected pitch (Hz) |\n\nFalls through to WSOLA on unvoiced/polyphonic frames (autocorrelation peak < 0.72).\n\n**Use when:** speech, solo vocals, monophonic instruments, factors 0.5–2×.<br>\n**Not for:** polyphonic material, extreme ratios (>2× causes gaps).\n\nPart of [`@audio/stretch`](../..).\n\n## License\n\n[MIT](./LICENSE) · [ॐ](https://github.com/krishnized/license/)\n","readmeFilename":"README.md"}