{"_id":"@audio/dynamics-softclip","_rev":"7-365b523c5cbe59657b3a82cfd658150c","name":"@audio/dynamics-softclip","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@audio/dynamics-softclip","version":"0.1.0","keywords":["audio","dsp","dynamics","softclip"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/dynamics-softclip@0.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/dynamics/tree/main/packages/dynamics-softclip","bugs":{"url":"https://github.com/audiojs/dynamics/issues"},"dist":{"shasum":"2efcb3806f2aaeea10bf88c0452e5a7506a824bf","tarball":"https://registry.npmjs.org/@audio/dynamics-softclip/-/dynamics-softclip-0.1.0.tgz","fileCount":3,"integrity":"sha512-MxxEbTYbGLkY49207qB2Af7TaTLi+ZdGk3CipxxF5NQ5Md6TnHmueDce6He4vsJTNSPRFuArVNGWflGUV6h5jQ==","signatures":[{"sig":"MEUCIGVh0e75GqexTTouEjUl9J3+VV6aoZX5WIIhBiZz32B+AiEAvU7U1v3NbgML2cFy4/HhSkrQFMDhSYU8ipI5waFdws0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3645},"main":"softclip.js","type":"module","engines":{"node":">=18"},"exports":{".":"./softclip.js","./audio-module":"./audio-module.js","./package.json":"./package.json"},"gitHead":"7c71fa7240f20cea48a583fecdd02cdc0db12852","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/dynamics.git","type":"git","directory":"packages/dynamics-softclip"},"_npmVersion":"11.12.1","description":"Static waveshaping — no envelope, no time state. Deterministic per-sample","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/dynamics-core":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dynamics-softclip_0.1.0_1783540358673_0.9991287997626457","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@audio/dynamics-softclip","version":"0.1.1","keywords":["audio","dsp","dynamics","softclip"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/dynamics-softclip@0.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/dynamics/tree/main/packages/dynamics-softclip","bugs":{"url":"https://github.com/audiojs/dynamics/issues"},"dist":{"shasum":"2931da57bd5e2320944026cc3fc2dcc7db5d1338","tarball":"https://registry.npmjs.org/@audio/dynamics-softclip/-/dynamics-softclip-0.1.1.tgz","fileCount":3,"integrity":"sha512-GKXwMsVHn4B1exZvTLlKxg1eHGhXUF/UTGrNqRiJkqZdKJOLifb+bRSca3fEu+g66c+rrUzopHsQOYHH1ZL4BA==","signatures":[{"sig":"MEYCIQC1eyHTs7HK85lqr0zVGR7EOYkgmHophYxmt1FnY4Z97wIhAMikr79LaK1RvkXruKhRcL1LVSgDV6R/NLHn/g2Zcp/K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3611},"main":"softclip.js","type":"module","engines":{"node":">=18"},"exports":{".":"./softclip.js","./atom":"./atom.js","./package.json":"./package.json"},"gitHead":"0c7653428afcbf8f0bf8de9dc2021b086881b341","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/dynamics.git","type":"git","directory":"packages/dynamics-softclip"},"_npmVersion":"11.12.1","description":"Static waveshaping — no envelope, no time state. Deterministic per-sample","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/dynamics-core":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dynamics-softclip_0.1.1_1783560237575_0.434902077407892","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@audio/dynamics-softclip","version":"0.1.2","keywords":["audio","dsp","dynamics","softclip"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/dynamics-softclip@0.1.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/dynamics/tree/main/packages/dynamics-softclip","bugs":{"url":"https://github.com/audiojs/dynamics/issues"},"dist":{"shasum":"74a17358afe779acf3b3669a33198a5ac7b52eb2","tarball":"https://registry.npmjs.org/@audio/dynamics-softclip/-/dynamics-softclip-0.1.2.tgz","fileCount":4,"integrity":"sha512-/zy5zx6gT3SYuWp4YqG9NlqbXzK1mra4v23ef0jC2uGqT43GgyTmv0DLWTZRzWAiPvRAEMTau0cyjPDfrewr8g==","signatures":[{"sig":"MEUCIQD2xZnodGJiL6U6ChborvOCGDB9U+EW/wAfEYD0Yw6xJAIgSQuVTV7fRcn/MAgSUaKdeSbNcG05HeiUoezr/KekKRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3872},"main":"softclip.js","type":"module","engines":{"node":">=18"},"exports":{".":"./softclip.js","./atom":"./atom.js","./package.json":"./package.json"},"gitHead":"ebb279f869b62cebd718e8da04b0f6f9ad386eab","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/dynamics.git","type":"git","directory":"packages/dynamics-softclip"},"_npmVersion":"11.12.1","description":"Static waveshaping — no envelope, no time state. Deterministic per-sample","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dynamics-softclip_0.1.2_1783623829410_0.9252680151735366","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@audio/dynamics-softclip","version":"0.1.3","keywords":["audio","dsp","dynamics","softclip"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/dynamics-softclip@0.1.3","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/dynamics/tree/main/packages/dynamics-softclip","bugs":{"url":"https://github.com/audiojs/dynamics/issues"},"dist":{"shasum":"8bcc180e698f770fd6febd9831076482e9bde416","tarball":"https://registry.npmjs.org/@audio/dynamics-softclip/-/dynamics-softclip-0.1.3.tgz","fileCount":4,"integrity":"sha512-/pXj26aBTBh3rBjW3mk8zCC+ZVS+Yo+Gt1tzRMNWaQpPFrDEkdHtcSdx8L6Vbyl/wvOwrdEbW9PRStvsAl1zsg==","signatures":[{"sig":"MEUCIQDAoePK0UUh62KDa0cWVSVGRTvAJSlcZy8rke0t3ieFYAIgZ0vwecyereLNBv3+nFwgCe76K9/xJdSgZ3Ms4IRcBsI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3903},"main":"softclip.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./softclip.js","./audio":"./audio.js","./package.json":"./package.json"},"gitHead":"bd990cde847fa5c7f7cc09e0cbf6fa6958c402ee","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/dynamics.git","type":"git","directory":"packages/dynamics-softclip"},"_npmVersion":"11.12.1","description":"Static waveshaping — no envelope, no time state. Deterministic per-sample","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dynamics-softclip_0.1.3_1783644809625_0.1583893355036361","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@audio/dynamics-softclip","version":"0.1.4","keywords":["audio","dsp","dynamics","softclip"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/dynamics-softclip@0.1.4","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/dynamics/tree/main/packages/dynamics-softclip","bugs":{"url":"https://github.com/audiojs/dynamics/issues"},"dist":{"shasum":"6783163dd92caa62a07d8c6098c72473a9491fc8","tarball":"https://registry.npmjs.org/@audio/dynamics-softclip/-/dynamics-softclip-0.1.4.tgz","fileCount":5,"integrity":"sha512-GlqWdi/wwBuUVDhnsJPQW9ESrWLCZU1cpeBQFm48f3yoYqcDU1mnqFv5k83ZoygaUXst+erUfJ0RFZNIbRZffQ==","signatures":[{"sig":"MEYCIQCsBRfw9pEnnMipUU9loZeVXbaoXE+IPWM4DoLPh0ED7QIhAK5+oOSuRpgbZT6FTvPCoTcD0zUZ5zoQAtC1CTsVSunq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5418},"main":"softclip.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./softclip.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"089832c3dab3b885182248bd804e361286156804","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/dynamics.git","type":"git","directory":"packages/dynamics-softclip"},"_npmVersion":"11.12.1","description":"Static waveshaping — no envelope, no time state. Deterministic per-sample","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dynamics-softclip_0.1.4_1783701628603_0.9572611112702782","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@audio/dynamics-softclip","version":"0.2.0","keywords":["audio","dsp","dynamics","softclip"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/dynamics-softclip@0.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/dynamics/tree/main/packages/dynamics-softclip","bugs":{"url":"https://github.com/audiojs/dynamics/issues"},"dist":{"shasum":"15dac23638b123a03851308bb88658b279c473ce","tarball":"https://registry.npmjs.org/@audio/dynamics-softclip/-/dynamics-softclip-0.2.0.tgz","fileCount":6,"integrity":"sha512-xubl3iLTqK0oLT5D8uOtz6jf9D7KhwrBaTqo3PR4zae5NFWxEekvfxm901si1WldD2N1+EHaQDA71qxFQySYBw==","signatures":[{"sig":"MEUCIQCVP8o+dta2CxjIOakqDXYMFxToY4BwEwr1ALh8ZtvT3AIgLI3PnRT0W6IS9B468C4HAD/d4lAb5EaY0rDPF6pEkBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8456},"main":"softclip.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./softclip.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"9780f3274d42241b2b712c1c0560a57226a2ff28","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/dynamics.git","type":"git","directory":"packages/dynamics-softclip"},"_npmVersion":"11.12.1","description":"Static waveshaping — no envelope, no time state. Deterministic per-sample","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/resample-sinc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dynamics-softclip_0.2.0_1783717804229_0.009046647677956043","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@audio/dynamics-softclip","version":"0.2.1","description":"Static waveshaping — no envelope, no time state. Deterministic per-sample","type":"module","sideEffects":false,"main":"softclip.js","exports":{".":"./softclip.js","./package.json":"./package.json","./audio":{"types":"./audio.d.ts","default":"./audio.js"}},"dependencies":{"@audio/resample-sinc":"^1.0.0"},"keywords":["audio","dsp","dynamics","softclip"],"license":"MIT","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/audiojs/dynamics.git","directory":"packages/dynamics-softclip"},"homepage":"https://github.com/audiojs/dynamics/tree/main/packages/dynamics-softclip","bugs":{"url":"https://github.com/audiojs/dynamics/issues"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"types":"./softclip.d.ts","audio":"./audio.js","funding":"https://github.com/sponsors/audiojs","gitHead":"28b8fc7ed183f5872771bc2066b7b2db0585a644","_id":"@audio/dynamics-softclip@0.2.1","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-zj+fCczA4fP04tS9gvj9s8llIo3y+A4bEOGt6URe8Pyta1V91hk8qnhAaajFLrlOIbnPTN6H98iNKp2ZFGohJA==","shasum":"32cd7466451571c68d579351fa9c515549c50486","tarball":"https://registry.npmjs.org/@audio/dynamics-softclip/-/dynamics-softclip-0.2.1.tgz","fileCount":8,"unpackedSize":12145,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDL/VujT3qOmF7U4Cm9E0luXXkUnqAwD0p6pXVbpm/gBgIhAPAWHhztBZeecmiQRNXZt+cf8NtJzhTIAjOv3+Sz07QK"}]},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"directories":{},"maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dynamics-softclip_0.2.1_1783731449532_0.5465286852101039"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T19:52:38.527Z","modified":"2026-07-11T00:57:29.855Z","0.1.0":"2026-07-08T19:52:38.794Z","0.1.1":"2026-07-09T01:23:57.692Z","0.1.2":"2026-07-09T19:03:49.546Z","0.1.3":"2026-07-10T00:53:29.785Z","0.1.4":"2026-07-10T16:40:28.791Z","0.2.0":"2026-07-10T21:10:04.405Z","0.2.1":"2026-07-11T00:57:29.683Z"},"bugs":{"url":"https://github.com/audiojs/dynamics/issues"},"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","homepage":"https://github.com/audiojs/dynamics/tree/main/packages/dynamics-softclip","keywords":["audio","dsp","dynamics","softclip"],"repository":{"type":"git","url":"git+https://github.com/audiojs/dynamics.git","directory":"packages/dynamics-softclip"},"description":"Static waveshaping — no envelope, no time state. Deterministic per-sample","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/dynamics-softclip [![npm](https://img.shields.io/npm/v/@audio/dynamics-softclip)](https://www.npmjs.com/package/@audio/dynamics-softclip) [![MIT](https://img.shields.io/badge/MIT-%E0%A5%90-white)](https://github.com/krishnized/license)\n\nStatic waveshaping — no envelope, no time state. Deterministic per-sample\n\n```\nnpm install @audio/dynamics-softclip\n```\n\n```js\nimport softclip from '@audio/dynamics-softclip'\n```\n\nStatic waveshaping — no time state, no pumping. Maps input through a fixed transfer curve; peaks saturate smoothly, introducing controlled harmonic content.\n\nHard/high-drive clipping generates harmonics above Nyquist that fold back as audible aliasing. `oversample` (1/2/4/8, default `1`) runs the transfer at N× rate and decimates back down through a windowed-sinc anti-alias filter, same technique as [`@audio/saturate`](https://github.com/audiojs/saturate)'s oversampled shapers — `oversample: 1` is the exact non-oversampled path (no resampling, zero cost).\n\n```js\nimport { softclip } from '@audio/dynamics'\n\nsoftclip(data, { curve: 'tanh', drive: 1.5 })\nsoftclip(data, { curve: 'cubic', drive: 2, ceiling: 0.9 })\nsoftclip(data, { curve: 'hard', drive: 4, oversample: 4, fs: 44100 })   // clean high-drive clip\n```\n\n| Param | Default | |\n|---|---|---|\n| `curve` | `'tanh'` | `'tanh'`, `'atan'`, `'cubic'`, `'sin'`, `'hard'` |\n| `drive` | `1` | input pre-gain |\n| `ceiling` | `1` | output asymptote |\n| `oversample` | `1` | `1`, `2`, `4`, `8` — anti-aliased oversampling |\n| `fs` | `44100` | Hz, sample rate (only used when `oversample > 1`) |\n\n**Use when:** gentle peak control with musical saturation, avoiding pumping artifacts of a limiter, lo-fi character; `oversample` for hard/high-drive clipping that must stay alias-free.<br>\n**Not for:** transparent true-peak safety — use [limiter](#limiter). Clean gain reduction — use [compressor](#compressor).\n\n---\n\nPart of [@audio/dynamics](https://github.com/audiojs/dynamics) — the dynamics family umbrella. This README is generated from the umbrella docs.\n\nMIT © [audiojs](https://github.com/audiojs)\n","readmeFilename":"README.md"}