{"_id":"@audio/stretch-transient","_rev":"8-361972b9749ee6a3d0a7477971bcd0c8","name":"@audio/stretch-transient","dist-tags":{"latest":"1.2.3"},"versions":{"1.0.0":{"name":"@audio/stretch-transient","version":"1.0.0","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-transient@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-transient","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"dea734c3792a488fdec317f1035566a9679e6cd5","tarball":"https://registry.npmjs.org/@audio/stretch-transient/-/stretch-transient-1.0.0.tgz","fileCount":5,"integrity":"sha512-DQYdjpCOJkJtUoETXNTkedg4xsSoSjd7j1PphhMqabthxalnpOo8ETnZ458/CU0WchoVTJvghsmapTYXmlJijA==","signatures":[{"sig":"MEQCH2S2oj13CV8hC7FyNQy4o3xziBVauZggX5j5zGMT7YICIQDllik+bjZXi6YU9RnPiJX9GzQjNyIwaHpAgvLIaCkXSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6591},"main":"transient.js","type":"module","types":"transient.d.ts","engines":{"node":">=18"},"exports":{".":"./transient.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-transient"},"_npmVersion":"11.12.1","description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0","@audio/stretch-core":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-transient_1.0.0_1783540163237_0.5877290102655819","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@audio/stretch-transient","version":"1.0.1","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-transient@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-transient","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"4b2e35809fd5af9ee7d5e5f57e3097e8ce2f6741","tarball":"https://registry.npmjs.org/@audio/stretch-transient/-/stretch-transient-1.0.1.tgz","fileCount":6,"integrity":"sha512-n6NX0OAjxSReqN0E4XBeNiost8X0f1xZ0nDIUeazrKmhzCZHy5hcNsScMMfSAxUfjpkqz9ESO4//oShXPqgjIA==","signatures":[{"sig":"MEYCIQDwi63gi6hMLhs9JK0x8q4h9HbeKnQaBrZfBPVVUb2JigIhAJQDLaa+8gNFdAZK3a/Fka7PUJ1N4Yfc6qprvzl8PTkL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7700},"main":"transient.js","type":"module","types":"transient.d.ts","engines":{"node":">=18"},"exports":{".":"./transient.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-transient"},"_npmVersion":"11.12.1","description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0","@audio/spectral-pvoc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-transient_1.0.1_1783624523626_0.9286859370856482","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@audio/stretch-transient","version":"1.1.0","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-transient@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-transient","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"5eb25e18e0404a8aa1333a79667fc0ddfb75bee5","tarball":"https://registry.npmjs.org/@audio/stretch-transient/-/stretch-transient-1.1.0.tgz","fileCount":7,"integrity":"sha512-4Rvlhg86NIpImFGKqrT8Ahm9d0q32S4mp20XVntz0Ttp7EPtBdLc4yzFNwZijDGdWRcNjOQ3S3V+sQ7kiA1nrw==","signatures":[{"sig":"MEUCIA4JLhOPt9eckqx1DBb+rSAzg+1SdeXyWu5s/DXfKGNoAiEAx1d9bR4DnZ4n8E4+M9ygw0IczDNTwx3VM08nYM4BdCg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8722},"main":"transient.js","type":"module","audio":"./audio.js","types":"transient.d.ts","engines":{"node":">=18"},"exports":{".":"./transient.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-transient"},"_npmVersion":"11.12.1","description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0","@audio/spectral-pvoc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-transient_1.1.0_1783692369264_0.17138477949083875","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@audio/stretch-transient","version":"1.1.1","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-transient@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-transient","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"57b73aa84c3d62226640d2f2e89c7dad6960f971","tarball":"https://registry.npmjs.org/@audio/stretch-transient/-/stretch-transient-1.1.1.tgz","fileCount":8,"integrity":"sha512-DVJliLV2KGD0nGeJnmnLbtLcq/JORlAYSVrekmQkp5A0IBW/jDOPFx8DouagWaLG2cid1FL8xFm09pnrdifRLw==","signatures":[{"sig":"MEUCIDgJPL9pDjMuCk+GBqNkq4tSBd3e8j3MH94VynvLijUVAiEA9aRH02S1E43e6KCJwYI2LHekCZ9KvpkEMjU8vXOie+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10039},"main":"transient.js","type":"module","audio":"./audio.js","types":"transient.d.ts","engines":{"node":">=18"},"exports":{".":"./transient.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-transient"},"_npmVersion":"11.12.1","description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0","@audio/spectral-pvoc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-transient_1.1.1_1783701847820_0.9379573807280275","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@audio/stretch-transient","version":"1.2.0","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-transient@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-transient","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"be729fe78277c0fd4c7fbc933876f0e6cf924a71","tarball":"https://registry.npmjs.org/@audio/stretch-transient/-/stretch-transient-1.2.0.tgz","fileCount":8,"integrity":"sha512-CYM+b77O3GDuPqn3+8kaD/SCnbfTaS+bCVlJBehLm5AaVaHx+/dCMPI3IoiEx80bElIenumA8TmFvq+tStFONw==","signatures":[{"sig":"MEQCIDkKg1BM1dKnMIjeQ21klMptUa9rx33Eil2bc3HuBDWOAiAwU42d4/PEtWvjl/smrd+nbzIEx4nftzTLkmK1tHbW5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10362},"main":"transient.js","type":"module","audio":"./audio.js","types":"transient.d.ts","engines":{"node":">=18"},"exports":{".":"./transient.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-transient"},"_npmVersion":"11.12.1","description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0","@audio/spectral-pvoc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-transient_1.2.0_1783724435322_0.03419245035469931","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@audio/stretch-transient","version":"1.2.1","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-transient@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-transient","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"0e33af15db50b1c81843e125d533049de7a8b918","tarball":"https://registry.npmjs.org/@audio/stretch-transient/-/stretch-transient-1.2.1.tgz","fileCount":8,"integrity":"sha512-Z+zS4vLbtX9vCZGQqxZa61OdbybJMecdhKVFD3fA3RyVSVLZV7p7qjSrXL0w+wsGhWxzuY6Rd5YiXGarX1cdfg==","signatures":[{"sig":"MEUCIQDHko1sWoTysUWmnU1SnS+yYzedciC/t1XXtdVU7MQRQAIgFRO4KfCUhZK4Hc0icUxbyhknW4XM0ht1d0Lsus9S5Gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10414},"main":"transient.js","type":"module","audio":"./audio.js","types":"transient.d.ts","engines":{"node":">=18"},"exports":{".":"./transient.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-transient"},"_npmVersion":"11.12.1","description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0","@audio/spectral-pvoc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-transient_1.2.1_1783731922621_0.4022827011826873","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@audio/stretch-transient","version":"1.2.2","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/stretch-transient@1.2.2","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-transient","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"f6de58883a42b2742f1bd3e8c2f2293e8f52e585","tarball":"https://registry.npmjs.org/@audio/stretch-transient/-/stretch-transient-1.2.2.tgz","fileCount":8,"integrity":"sha512-DzVIC/WsB57aIUHdnlrSUdxh4Nlgim5BggMWloA2R5CABGreYCvYSY4WImBMgICBBNQAWXqM3eYDej/m+mABaQ==","signatures":[{"sig":"MEQCIDwLCWD/5HBuWlKmfQce7v3ueN0RvCMAB1S3MbFi+r/tAiB1RsEjAFfddZVQZBNv4H40IQ4KZgQCoP3FbbwdMpWYWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD9LV1f4b5aZACzIGo3eGBEYIRioA357azOTkUHlExQdQIhAPWCTB3hWQxvqltH6coWT+DkGjqAgyXsgsQe2aRe+JIt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10709},"main":"transient.js","type":"module","audio":"./audio.js","types":"transient.d.ts","engines":{"node":">=18"},"exports":{".":"./transient.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"funding":"https://github.com/sponsors/audiojs","gitHead":"3338d83286ba4e13165427a88c79ce9732fcf1bf","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-transient"},"_npmVersion":"11.12.1","description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.4.2","@audio/spectral-pvoc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stretch-transient_1.2.2_1790192441184_0.9937439625814355","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"_id":"@audio/stretch-transient@1.2.3","bugs":{"url":"https://github.com/audiojs/stretch/issues"},"dist":{"shasum":"b18af3bca6464ca95ef6d8dfa048608478a3b5c6","tarball":"https://registry.npmjs.org/@audio/stretch-transient/-/stretch-transient-1.2.3.tgz","fileCount":8,"integrity":"sha512-yaQx+kMYC2Dr1degx96+EEG8Xi60V96xr+y5GoiCgr1KwoK9ieFkF9YfuM5Rr3fTPB1dPndXEVuV7eTz2E7Rmw==","signatures":[{"sig":"MEYCIQDPnQVgDuW2OPalk3Iss4mn3dQMNHoMmpWCgNzCyc62oAIhAKunBAFc6wD4h0MaQSALAaP+c82aqHRF41hNDRrsIX3g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDN0BmZjYnjxcQOhbCqrdWkrpRFPkPnbip4TFMEYon4NwIgG6TaGYoYioIIdBE4Uz3HiTlPou5HEdATBuekMpMuyok="}],"unpackedSize":10519},"main":"transient.js","name":"@audio/stretch-transient","type":"module","audio":"./audio.js","types":"transient.d.ts","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"engines":{"node":">=18"},"exports":{".":"./transient.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"funding":"https://github.com/sponsors/audiojs","gitHead":"81ac3ece838344698b068e611ed20e878a5f12de","license":"MIT","version":"1.2.3","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"homepage":"https://github.com/audiojs/stretch/tree/main/packages/stretch-transient","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-transient"},"_npmVersion":"11.12.1","description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","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":{"fourier-transform":"^2.5.0","@audio/spectral-pvoc":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stretch-transient_1.2.3_1790492390092_0.40695813297613337"}}},"time":{"created":"2026-07-08T19:49:23.077Z","modified":"2026-09-27T06:59:50.362Z","1.0.0":"2026-07-08T19:49:23.363Z","1.0.1":"2026-07-09T19:15:23.816Z","1.1.0":"2026-07-10T14:06:09.408Z","1.1.1":"2026-07-10T16:44:07.972Z","1.2.0":"2026-07-10T23:00:35.452Z","1.2.1":"2026-07-11T01:05:22.749Z","1.2.2":"2026-09-23T19:40:41.272Z","1.2.3":"2026-09-27T06:59:50.171Z"},"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-transient","keywords":["audio","dsp","time-stretch","phase-vocoder","transient","onset","stft"],"repository":{"url":"git+https://github.com/audiojs/stretch.git","type":"git","directory":"packages/stretch-transient"},"description":"Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/stretch-transient\n\nTransient-aware phase-locked vocoder (Röbel, 2003). Measures spectral flux between frames; on a sharp onset resets to the original analysis phase instead of propagating it, preserving attack sharpness on drums and plucks. Implies phase locking.\n\n```js\nimport transient from '@audio/stretch-transient'\n\ntransient(data, { factor: 2 })\ntransient(data, { factor: 1.5, transientThreshold: 2.0 })   // less sensitive\n```\n\n| Param | Default | |\n|---|---|---|\n| `factor` | `1` | Time stretch ratio |\n| `frameSize` | `2048` | FFT size (power of 2) |\n| `hopSize` | `frameSize/4` | Hop between frames |\n| `transientThreshold` | `1.5` | Spectral flux threshold (higher = fewer resets) |\n\n**Use when:** the right default for most music — percussion, mixed sources.<br>\n**Not for:** voice/speech (use [`@audio/stretch-psola`](../stretch-psola)) or extreme stretch (use [`@audio/stretch-paulstretch`](../stretch-paulstretch)).\n\nPart of [`@audio/stretch`](../..).\n\n## License\n\n[MIT](./LICENSE) · [ॐ](https://github.com/krishnized/license/)\n","readmeFilename":"README.md"}