{"_id":"@audio/saturate-transistor","_rev":"6-ff1942aa0bac22002b253d8c9155911f","name":"@audio/saturate-transistor","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.0":{"name":"@audio/saturate-transistor","version":"1.0.0","keywords":["audio","dsp","saturation","transistor"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/saturate-transistor@1.0.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"38451874f3822b604765c6fc59f9d6443d2a6c93","tarball":"https://registry.npmjs.org/@audio/saturate-transistor/-/saturate-transistor-1.0.0.tgz","fileCount":2,"integrity":"sha512-fl8uv6bkK8bdJ98vwVHNXIX2lKsE9WS/wY6OPA+FHpDd7NwdKToS0+SukKRho2aFV1Dzn8LK79zio+538POkJw==","signatures":[{"sig":"MEUCID41mKL8wSyBM0qxTBdYu70+WC/xFSebhx0Ms7WiSsttAiEAmqek6+a9EH1K7nlEYaOeboKAWqJj5qCYYPPjkTsOgxs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1141},"main":"transistor.js","type":"module","engines":{"node":">=18"},"exports":{".":"./transistor.js","./package.json":"./package.json"},"gitHead":"d66dbb92515c68d654294a7500febf8fdac9f627","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Transistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/saturate-core":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/saturate-transistor_1.0.0_1783540320941_0.7577507402428405","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@audio/saturate-transistor","version":"1.0.1","keywords":["audio","dsp","saturation","transistor"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/saturate-transistor@1.0.1","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"07caf7710a763ae6e4b47fa9502c2cda59bfb678","tarball":"https://registry.npmjs.org/@audio/saturate-transistor/-/saturate-transistor-1.0.1.tgz","fileCount":3,"integrity":"sha512-9QhTyfouFrzPioc4u1fCkyWPfESXyuVwBBTz6ioSWs/23lhfzZMQe0eksMKGkb7zrKwhTsZi/ndydDH2872z3g==","signatures":[{"sig":"MEUCIQCdNFqEqQKpj8/wOTtKBxbtYPL2mr5LerL7FJQKYZNvAwIgEay/yFWnVjYGsW3lLkNWgp3DFJiCXnsCtNtSRLNy7ZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2184},"main":"transistor.js","type":"module","engines":{"node":">=18"},"exports":{".":"./transistor.js","./package.json":"./package.json"},"gitHead":"18a6fb1ccc06c55f4297e6a4f60c5eff28ab0a8d","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Transistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/resample-sinc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/saturate-transistor_1.0.1_1783623900860_0.18567482129989177","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@audio/saturate-transistor","version":"1.1.0","keywords":["audio","dsp","saturation","transistor"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/saturate-transistor@1.1.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"atom":"./atom.js","dist":{"shasum":"62ea1b172cc06fd271657a901463f82a4483587b","tarball":"https://registry.npmjs.org/@audio/saturate-transistor/-/saturate-transistor-1.1.0.tgz","fileCount":4,"integrity":"sha512-e9cEUGWGaSmpovYZ1B4dQITY2TMbClS45CeAr8nZI/+mcgfQW5zuhUaDC5dLjeFBd/gbb6KHelHlXSUNrVg4TA==","signatures":[{"sig":"MEUCIGHy+grij4bMwoVGXwa6aOtit/0ekFam0BasGVp6a07wAiEA/0zhefShDnXwTnPfKy0/lWIreN2FtykQqcUv3aKJeBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3078},"main":"transistor.js","type":"module","engines":{"node":">=18"},"exports":{".":"./transistor.js","./atom":"./atom.js","./package.json":"./package.json"},"gitHead":"4eb16d6abc147239b76587018719aed8ea9bbdb0","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Transistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/resample-sinc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/saturate-transistor_1.1.0_1783635171511_0.525371295024053","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@audio/saturate-transistor","version":"1.1.1","keywords":["audio","dsp","saturation","transistor"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/saturate-transistor@1.1.1","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"1d1d0d53172b207fa9a360bcd1c364d22fcec208","tarball":"https://registry.npmjs.org/@audio/saturate-transistor/-/saturate-transistor-1.1.1.tgz","fileCount":4,"integrity":"sha512-ReaAr+Hx74Cc4uSTVcH209YAExF3IhhyaqPx4NpxSUCF/VDhCfK0sSn4smpTtp5sT1Sp9HakkTi6uW4IIXAq8g==","signatures":[{"sig":"MEUCIQDHD1Lw82Y4tnsJw9in/4xq+dz02RLmPGKvIRV+yd1QugIgU18Kit0lxTttNO6CK5Bw1gLKVd4svciDsdlOmb3C48U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3084},"main":"transistor.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./transistor.js","./audio":"./audio.js","./package.json":"./package.json"},"gitHead":"dcd47d2bf50c850b504a9e771ff4f9ed7472530e","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Transistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/resample-sinc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/saturate-transistor_1.1.1_1783645030833_0.2726457951949679","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@audio/saturate-transistor","version":"1.1.2","keywords":["audio","dsp","saturation","transistor"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/saturate-transistor@1.1.2","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"9a0b296456075cb48361a0c3cac2a16cc8c9dc65","tarball":"https://registry.npmjs.org/@audio/saturate-transistor/-/saturate-transistor-1.1.2.tgz","fileCount":5,"integrity":"sha512-Za0KZiC3APSlgn6Ac2nwRaHvR5zNCwjmqLY4DWM9I90Jo5n72jh8wJkq0IrVIrJ6GY4DNeVGwsnrIl2HOZxpYA==","signatures":[{"sig":"MEYCIQDX59elRU5wshdLiJphClPLe8O9lBSojYKqWfwHFqhguAIhAI5AlDnm1glC+DaWYiD3LGPjnpa6EagRgR7KxH4mGK/C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4412},"main":"transistor.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./transistor.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"b5ad7689b2358b09a03cc5eeb458308711a01cce","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Transistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/resample-sinc":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/saturate-transistor_1.1.2_1783701793874_0.5774065432984481","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@audio/saturate-transistor","version":"1.1.3","description":"Transistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant","type":"module","sideEffects":false,"main":"transistor.js","exports":{".":"./transistor.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"dependencies":{"@audio/resample-sinc":"^1.0.0"},"keywords":["audio","dsp","saturation","transistor"],"license":"MIT","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"audio":"./audio.js","repository":{"type":"git","url":"git+https://github.com/audiojs/saturate.git","directory":"packages/saturate-transistor"},"funding":"https://github.com/sponsors/audiojs","types":"transistor.d.ts","gitHead":"8e5a2f210f134ccb055e9ca88a40c255bcf4985d","_id":"@audio/saturate-transistor@1.1.3","bugs":{"url":"https://github.com/audiojs/saturate/issues"},"homepage":"https://github.com/audiojs/saturate#readme","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-5CrameA9uXK/o3fq4i27NCKq/Q9iyavUKRgWDQrTDYFLXn52PXmYAHJUfpFo33AhR+cA/pjAg2AmzZtB0rX6Dg==","shasum":"adb853b9be4d8d17c65d4f94e19563084325fa83","tarball":"https://registry.npmjs.org/@audio/saturate-transistor/-/saturate-transistor-1.1.3.tgz","fileCount":7,"unpackedSize":6951,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFycDCCbZdRIMoxf5d6fcc/81E60QoJGojjasbB8H+zGAiAdyX4gJya4Qg62pjo58qKBl71ny4npjIw1jixWuuQ4Kw=="}]},"_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/saturate-transistor_1.1.3_1783731758126_0.952793589710432"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T19:52:00.830Z","modified":"2026-07-11T01:02:38.440Z","1.0.0":"2026-07-08T19:52:01.144Z","1.0.1":"2026-07-09T19:05:01.010Z","1.1.0":"2026-07-09T22:12:51.661Z","1.1.1":"2026-07-10T00:57:10.955Z","1.1.2":"2026-07-10T16:43:14.010Z","1.1.3":"2026-07-11T01:02:38.250Z"},"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","keywords":["audio","dsp","saturation","transistor"],"description":"Transistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/saturate-transistor [![npm](https://img.shields.io/npm/v/@audio/saturate-transistor)](https://www.npmjs.com/package/@audio/saturate-transistor) [![MIT](https://img.shields.io/badge/MIT-%E0%A5%90-white)](https://github.com/krishnized/license)\n\nTransistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant\n\n```\nnpm install @audio/saturate-transistor\n```\n\n```js\nimport transistor from '@audio/saturate-transistor'\n```\n\nSolid-state/console-style saturation: an odd-symmetric cubic soft clip (`v − v³/3`, hard-limited past `±1`). Odd symmetry means only odd harmonics (3rd-dominant) appear — no DC shift, no even-harmonic warmth, the \"console\" color as distinct from tube's asymmetric even-harmonic signature. Oversampled (windowed-sinc up → shape → windowed-sinc down) to keep the extra harmonics from aliasing.\n\n```js\ntransistor(data, { drive: 3, fs: 44100 })\ntransistor(data, { drive: 6, mix: 0.5 })\n```\n\n| Param | Default | |\n|---|---|---|\n| `drive` | `2` | pre-gain into the cubic soft-clip curve |\n| `fs` | `44100` | sample rate |\n| `oversample` | `4` | oversample factor; `1` disables oversampling (naive, aliased) |\n| `mix` | `1` | 0..1 — wet/dry blend |\n\n**Mutates `data` in place** and returns it (same array reference, not a copy). 3rd-harmonic energy measurably exceeds 2nd-harmonic at equal drive (odd-dominant) — verified in the family test suite via Goertzel analysis.\n\n**Use when:** solid-state/console-style \"grit\" and edge.<br>\n**Not for:** warm even-harmonic tube color (use `tube`) or a plain normalized tanh (use `waveshaper`).\n\n---\n\nPart of the [@audio/saturate](https://github.com/audiojs/saturate) family.\n\nMIT © [audiojs](https://github.com/audiojs)\n","readmeFilename":"README.md","homepage":"https://github.com/audiojs/saturate#readme","repository":{"type":"git","url":"git+https://github.com/audiojs/saturate.git","directory":"packages/saturate-transistor"},"bugs":{"url":"https://github.com/audiojs/saturate/issues"}}