{"_id":"web-audio-api","_rev":"54-12cb5199c94ba4332ed3c0fb54bc56b6","name":"web-audio-api","dist-tags":{"latest":"1.5.6"},"versions":{"0.1.0":{"name":"web-audio-api","version":"0.1.0","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.1.0","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"531f029fd8002867a41da5d38e8e4f0f9a58012d","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.1.0.tgz","integrity":"sha512-ASi6vl8MNR3F5vXy0EsY1VMAuws+e4NsoeZPNjeCLOZJUl+MXpb4980NCRP6RnJYTU2jDoj4MPIeSZ/MZNzY2Q==","signatures":[{"sig":"MEQCICuTqqh974JEGKqLUwZP4gaIJDV5NOxtsuBcoOq54x4HAiALg8RiWM7cqAtpMwKCvOXw5K+F1zg89HSZBkLuWmfx8w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.2.32","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"async":"0.2.x","mathjs":"0.9.x","speaker":"0.0.x","underscore":"1.4.x","audiobuffer":"*","pcm-boilerplate":"*"},"devDependencies":{"chai":"1.7.x","mocha":"*"},"optionalDependencies":{"speaker":"0.0.x"}},"0.1.1":{"name":"web-audio-api","version":"0.1.1","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.1.1","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"7e9a6215cc06e11950558854cdce03f43c179956","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.1.1.tgz","integrity":"sha512-RiRaUaE4WCgwHhl4DX0hQPoU3B/3hM94SFhEWy5CYoaYtopISX5vY4zNJDV5BgPqC5Xnx+1A8K4HRM9RuG+nIg==","signatures":[{"sig":"MEYCIQDjY/Z5BY28B2iBq3EcN8OenIgLmc8Wwp2NwJ7ReFAACQIhAKcyQmTF1FHK2pr+7M4+5XfpPIyC8QArKRxl34iCWgsG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.2.32","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"async":"0.2.x","mathjs":"0.9.x","speaker":"0.0.x","underscore":"1.4.x","audiobuffer":"*","pcm-boilerplate":"*"},"devDependencies":{"chai":"1.7.x","mocha":"*"},"optionalDependencies":{"speaker":"0.0.x"}},"0.1.2":{"name":"web-audio-api","version":"0.1.2","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.1.2","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"05dafb33a741ef295e3ed7bd2f4edb3901e0616e","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.1.2.tgz","integrity":"sha512-bEiOuM0b/AFhyr0h6QzAgszjUkEmLeSKfYfaSYCKcQhIgs1SdAHE3yOdZtEvtHXcqY39cOPCCGGRoS1TM8iklg==","signatures":[{"sig":"MEQCIDd4kL5rYwmPH5QsOXiMORZXfvla07kz1c/tKTfkfTavAiB83558mFgOAFP6+YTgqZNTueEMj3gJSiPP1yKQhu645A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.3.5","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"av":"0.2.x","async":"0.2.x","mathjs":"0.9.x","speaker":"0.0.x","underscore":"1.4.x","audiobuffer":"*","pcm-boilerplate":"*"},"devDependencies":{"chai":"1.7.x","mocha":"*"},"optionalDependencies":{"speaker":"0.0.x"}},"0.1.3":{"name":"web-audio-api","version":"0.1.3","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.1.3","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"f2950834da6b1558643c18b6df2ff783440c99f8","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.1.3.tgz","integrity":"sha512-bgClgsyH5VS6HG52qkelmumeFLKPfcD60xGHMKzZU3Da1Zi97DXrIzAYHIrFoIhKCXMOqbpPDEAy+MeFkSU48A==","signatures":[{"sig":"MEYCIQC/z9xuYubTnNm19abFjKxmbY4X3wdH9IUB4QX4ocpHZQIhANF77VYKGbkwcIVfaOfo79vQInWSm1tCKUS/A9shDeoU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.3.8","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"av":"0.2.x","async":"0.2.x","mathjs":"0.9.x","speaker":"0.0.x","underscore":"1.4.x","audiobuffer":"*","pcm-boilerplate":"*"},"devDependencies":{"chai":"1.7.x","mocha":"*"},"optionalDependencies":{"speaker":"0.0.x"}},"0.1.4":{"name":"web-audio-api","version":"0.1.4","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.1.4","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"50a547359e90afb8427559b2c0bf3552e984623a","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.1.4.tgz","integrity":"sha512-wV2AuE2XrWG32COrZIiCm4DBinsJd4Y1Ec0/6pNgjavqZ3xIlbGVDUeleutciGuhgNmxv3Vfs4DfY5/R8wYb9Q==","signatures":[{"sig":"MEUCIQCzGohVdc5aFBpFGXxtHaBjXbkxDhPZNRvxAzfD227jxgIgRsglIaG7VmkzfG7jpInpoCmcnrwprcW3mXETgjfUA8A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.3.8","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"av":"0.2.x","async":"0.2.x","mathjs":"0.9.x","speaker":"0.0.x","underscore":"1.4.x","audiobuffer":"*","pcm-boilerplate":"*"},"devDependencies":{"chai":"1.7.x","mocha":"*"},"optionalDependencies":{"speaker":"0.0.x"}},"0.1.5":{"name":"web-audio-api","version":"0.1.5","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.1.5","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"a79d290d29848e34da47c079355c3931139cd750","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.1.5.tgz","integrity":"sha512-4nsIs2Rqyp8eq4HfYHy7A9M/3JsbM09KYpcQhvQeIgnHz0FXx2smBxogYSk3w5IIrOFi6+bHD6M1a960V8CJ4w==","signatures":[{"sig":"MEYCIQC+SjUvqE4KNIRO1MEmxgEXdYEb7kV4pTV9fq2FSfluDQIhAPO+X1AyOYjoVkC1L1OIoAzIkjBRO0jZCX7LtpvbYi+w","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.3.8","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"av":"0.2.x","async":"0.2.x","mathjs":"0.9.x","speaker":"0.0.x","underscore":"1.4.x","audiobuffer":"*","pcm-boilerplate":"*"},"devDependencies":{"chai":"1.7.x","mocha":"*"},"optionalDependencies":{"speaker":"0.0.x"}},"0.2.0":{"name":"web-audio-api","version":"0.2.0","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.2.0","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"homepage":"https://github.com/sebpiq/node-web-audio-api","bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"ff827544f491895e8239d9ad1cd420791dcbcf64","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.2.0.tgz","integrity":"sha512-1YNtStv38d/czo7veT/DNlg/zYMAup+2/KhOuhwIWdkZJmgh6JlFHa7v4qUCOzJ7YXwhXpSMzpZWcR7iH5R2LQ==","signatures":[{"sig":"MEYCIQDn0afHe8jW8TPdO1oyEeL7mMsWfdnsnp7MMSwOqYK/CQIhAP7uy2wOalALWyBmXNy6d0AFpe6/Nw0AOSZVBBJwkC4t","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"scripts":{"test":"mocha","pretest":"gulp","prepublish":"gulp"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.4.3","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"async":"0.2.x","mathjs":"0.9.x","speaker":"0.0.x","underscore":"1.4.x","audiobuffer":"0.2.x","pcm-boilerplate":"0.1.x"},"devDependencies":{"chai":"1.7.x","gulp":"3.8.x","mocha":"*","gulp-util":"3.0.x","gulp-contribs":"0.0.x","gulp-es6-transpiler":"1.0.x"},"optionalDependencies":{"speaker":"0.0.x"}},"0.2.1":{"name":"web-audio-api","version":"0.2.1","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.2.1","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"homepage":"https://github.com/sebpiq/node-web-audio-api","bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"225a3989007f8ca075688e1ff8502f4c7274cb9e","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.2.1.tgz","integrity":"sha512-o5TrQ8rPwg21+PT2ipkOtHo1EgiLelNfLNFEYs41FgjR3AKl9lxswZYIxpYW/SxXdcKPb++FKGxP/5hoCzintA==","signatures":[{"sig":"MEUCIQCI+NHcTLJh3ocCQTvKPyAOp5lejmf7S5b+/alcoLbWYAIgexe3MGUgOgXtplmua6h1XKPc8RA/qqIYMBSxW7k22yE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"scripts":{"test":"mocha","pretest":"gulp","prepublish":"gulp"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.4.3","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"av":"0.4.x","aac":"0.1.x","mp3":"0.1.x","alac":"0.1.x","flac":"0.3.x","async":"0.2.x","mathjs":"0.9.x","speaker":"0.0.x","underscore":"1.4.x","audiobuffer":"0.2.x","pcm-boilerplate":"0.1.x"},"devDependencies":{"chai":"1.7.x","gulp":"3.8.x","mocha":"*","gulp-util":"3.0.x","gulp-contribs":"0.0.x","gulp-es6-transpiler":"1.0.x"},"optionalDependencies":{"speaker":"0.0.x"}},"0.2.2":{"name":"web-audio-api","version":"0.2.2","keywords":["audio","sound","music","web audio","web audio api","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@0.2.2","maintainers":[{"name":"sebpiq","email":"sebpiq@gmail.com"}],"homepage":"https://github.com/sebpiq/node-web-audio-api","bugs":{"url":"https://github.com/sebpiq/node-web-audio-api/issues"},"dist":{"shasum":"2a5048b5c23d6b79605d4ef24fd7bc30f338de23","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-0.2.2.tgz","integrity":"sha512-XidLn3tEz8V9jwuV4OOVTOgNHp3WT6SQwv28Ad3lNXU4R9aPxWDYnocfVBh/OIna96jYPpiuP74KvSrTIF0OTg==","signatures":[{"sig":"MEUCIGjAsomYtqw1Zp90KbI02m8WR6FGXdxeUFnI/YtUjPr/AiEA6GwkQpmks/wfuB+PVmwqZwxgjpkOU505t6OycAin8d4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","analyze":false,"engines":{"node":">=0.10"},"scripts":{"test":"mocha","pretest":"gulp","prepublish":"gulp"},"_npmUser":{"name":"sebpiq","email":"sebpiq@gmail.com"},"repository":{"url":"https://github.com/sebpiq/node-web-audio-api.git","type":"git"},"_npmVersion":"1.4.3","description":"Node.js implementation of Web audio API","directories":{},"dependencies":{"av":"0.4.x","aac":"0.1.x","mp3":"0.1.x","alac":"0.1.x","flac":"0.3.x","async":"0.9.x","underscore":"1.8.x","audiobuffer":"0.2.x","pcm-boilerplate":"0.1.x"},"devDependencies":{"chai":"1.7.x","gulp":"3.8.x","mocha":"*","gulp-util":"3.0.x","gulp-contribs":"0.0.x","gulp-es6-transpiler":"1.0.x"}},"1.0.0":{"name":"web-audio-api","version":"1.0.0","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.0.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"439a4d69bdeefdf3c5d9b036944acb0e4cab340c","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.0.0.tgz","fileCount":46,"integrity":"sha512-dVJioCmgeeBD5wJqsybwprawOJ5airmtzg7Lgq2E91dsxsHTSj1O7RiR1JbTmD4KQiZLoD/DeFFn/KDv6FPjFg==","signatures":[{"sig":"MEUCIDovONAlPkfobodBlfkWjFfP0JEMiW6585HjP0bJMIGcAiEAhrEaL4ELPf5w17URHXHPKl2BXqWOXN4I0pEkyywyOYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194137},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"6a926ee6836db6b40285a98c8ffdcfe926cef676","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable Web Audio API","directories":{},"_nodeVersion":"25.8.1","dependencies":{"audio-buffer":"^6.0.0","audio-decode":"^3.1.2","automation-events":"^7.1.15","fourier-transform":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.2.2","linkedom":"^0.18.12"},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.0.0_1773937305908_0.9034221552726645","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"web-audio-api","version":"1.1.1","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.1.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"48e907e009e26bc6fc149573f2f3421b3915a992","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.1.1.tgz","fileCount":45,"integrity":"sha512-t2eQftowC+xUXNooYebfYd4/xwlL8Hj+6BdSx8/HdlQZ2Tmkky+qkOanK+XojU0sUlxFbteCnuCXgH0mujSCtA==","signatures":[{"sig":"MEYCIQDZTRiY7i5V5ErOn35Qgpc8m78X/watKO5EfByHfWq6TQIhALn6PkNWCwAAQzED0958AgroDt167/dFTuBApbc3yekm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197074},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"b36973738e683874d258cf8b2d14607222ae10df","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"audio-buffer":"^6.0.0","audio-decode":"^3.1.2","audio-speaker":"^2.0.4","automation-events":"^7.1.15","fourier-transform":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.2.2","linkedom":"^0.18.12"},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.1.1_1774019400624_0.6600611375406487","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"web-audio-api","version":"1.2.0","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.2.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"fe38e2cd511a6805394f1ff362585d9361bbb40b","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.2.0.tgz","fileCount":45,"integrity":"sha512-DKfBfiNUTqjOmAmtZ0dHXsAcANsHZVauALdIf1+TcZBtyKFB+Llp1RyD1vxCrWEUtEjnjwncrVA/tc17LXSODQ==","signatures":[{"sig":"MEUCIEzJR9UGIvJHtlGyteD95P3jtvpQF5CRO0O5gS6qKqBTAiEArQI29MYM6pGAXLWVljbBC20Joj/fddGc30+po1AeSsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202664},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"339da6c117182adf7cc41d2a373f451ae9e6a0ef","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","bench:compare":"node benchmark/compare.js"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"audio-buffer":"^6.0.0","audio-decode":"^3.1.2","audio-speaker":"^2.0.5","automation-events":"^7.1.15","fourier-transform":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.2.2","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.2.0_1774024663182_0.16284948210507633","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"web-audio-api","version":"1.3.0","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.3.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"a8004fe37438a903e709d3acc3a70aca35250b7a","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.3.0.tgz","fileCount":45,"integrity":"sha512-xmuHcIqYWYHJDWeZk5xw5wTTI4lZtMbWHH9NGbPjDabzXlLBgS0tco2Cp2WaGqIPV3REfcKouSwiELmfpWCZEg==","signatures":[{"sig":"MEUCICvu4zEsfWB5/QrJ4w50g5oyhUPXQauvtwcxYo9C1HcbAiEAjma+VtdffTzz49p0vqAXTtYwhgCvCSOxoFWOsiqkPOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196797},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"36499af88a1db39c35d78a263a761d9b27a262e3","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.15","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.3.0_1774962999142_0.3924477984669257","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"web-audio-api","version":"1.3.1","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.3.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"2e7164cc5b4585c5cf52d32ec73160627a5d762e","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.3.1.tgz","fileCount":45,"integrity":"sha512-6qcdu949kE3a461qf3F45MUO3vgoDEuAKJIcsBwelOr3AolgVttJD5HToO2n73zcy0xCLaSBQ7exOZlNbhUKIQ==","signatures":[{"sig":"MEUCIAFlumqfO5rqmXNOkxWCIRuqKAzoTXHuihyJX7170rswAiEAg1L3ZKJmovAHgFjtbpXLSmXNQNWLAwBU4Oht8iQWWAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195718},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"b8aa66078f1c92b01dda0ad137e56ff98c85e246","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.15","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.3.1_1774966231464_0.9372603298398048","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"web-audio-api","version":"1.3.2","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.3.2","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"8bc3621095f858a7106d068ddbeeec98ec4ceb75","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.3.2.tgz","fileCount":45,"integrity":"sha512-c7tNwB3SkjbJ7DFLioS46md3av67/EW5XIJRxJBH+ChnZP3C0Clg54AT6wX62yhNeZ0Uherk8IDMZme2gIZ8bA==","signatures":[{"sig":"MEQCIG+ihGvenyR2128AdOeZUUyLrZJFHf7K7XEaO7tAE7hnAiA4hugA9QzIvT176HwKVolmH/i3GG3iDQD8buN9rSWN4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195735},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"cb242ede5de6f6c5e8e63e14eacc0fad7a0c0ca8","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.15","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.3.2_1774966941481_0.030631887922305756","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"web-audio-api","version":"1.3.3","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.3.3","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"75aa2715738f08f725ceafb16817abc4b58ddfe9","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.3.3.tgz","fileCount":45,"integrity":"sha512-PaGTB4Et2srl8OrUmVU5aMLAxJtYgNNjCSYdW2U+XP5hmrWvzyBfufa4+l2GSNHLNBkffcmV/xx7+MtxA4Kakg==","signatures":[{"sig":"MEUCIQCLbhiP4cOmBPRAqqHIRrE46n0jLl/KTtLFDilKGK+OtAIgCYvkCfaSdYNElwgjoNWdaxmSCXlTlE3/59eMrzEATEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194484},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"d20f57b905d570be15d23139a92d694d0f4cbf87","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.17","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.3.3_1775739910788_0.65169794355424","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"web-audio-api","version":"1.3.4","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.3.4","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"a7450a97f8b990247fe96a1cc4a42c2cae3df46e","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.3.4.tgz","fileCount":45,"integrity":"sha512-Zu/zbL5yBgfESlewhQRZNsclR763QnAdBSjOsz+kmJ0Wctvh4SiEuUg+o1U9WyGNZsSgJ/jwpVbVD+8JEY9Obg==","signatures":[{"sig":"MEYCIQCyjm1VvRboK/1tt7wdJSr7g1bXKiVJTes8KXNWQJT85gIhAP/3GmmIEHJXytre47dYhndLros1gh5sKNG88DTAGjq4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195580},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"c812a1bb1c52e192c1458be44b37b54fb502f1d7","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.3.4_1777116269667_0.4307262726906469","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"web-audio-api","version":"1.4.0","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.4.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"c8f9e272485585fbc29f174edb8045d2c144df62","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.4.0.tgz","fileCount":45,"integrity":"sha512-Z2H8QFsepbv09sZ3OPG2EQhoj8nSR/D8dHHHZSjpb4UKsito+PiGJ8X569Rru7uwJ4jhNV0tIe3r/T46HddzdA==","signatures":[{"sig":"MEYCIQCZ93ggmht3EIfFAcgKaf9N4Vl/G1vDDNDYeikBtc7grwIhAOKXGIYAKVhLVikALJVy4mCZzn5wGEFVOKD+pK7YOlsJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201871},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"00689f9458a03334ad9b5c55ddf4c6262cead28e","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"10.9.8","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"peerDependencies":{"audio-mic":"*"},"peerDependenciesMeta":{"audio-mic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.4.0_1777488598609_0.06536270959223822","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"web-audio-api","version":"1.5.0","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.5.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"2589363bdb6599efb16e53554ab2bf0708309d45","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.5.0.tgz","fileCount":46,"integrity":"sha512-KU9ZDGqSphftMLV4hXuZE1tX1i/VmDu43HDN/xkl8RkGDF50e0mDIaCVLc21G2ZoinxAbZECEIKHYamVYf7p3w==","signatures":[{"sig":"MEUCIBcO52Oqp3TmNqCRVv2kEsS7d+ISu90YliGFttZkMiEPAiEA9j1TjNcDrwgEv1PLRzI511zKvkZaXyoAM5FMPd9dEvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206813},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"1db199451e7dea6783003b547418bbdc26fb26eb","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"10.9.8","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"peerDependencies":{"audio-mic":"*"},"peerDependenciesMeta":{"audio-mic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.5.0_1777729484805_0.8738200266592597","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"web-audio-api","version":"1.5.1","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.5.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"7d0a03a58f20a0757a80e4788b97afabaa1ae6ba","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.5.1.tgz","fileCount":46,"integrity":"sha512-RXD/ul9xnMfDFI2nf48ykuONDOLJXNXIgrxFUbUdBFwpvleSWH3vz/6c76SDKxMghZ+OwIOFYXjU36s+coxAxg==","signatures":[{"sig":"MEUCIFT1WfSQmm4beoAvhg1aCTqueqHk6xkPQwTPej2fns7JAiEAwkvhh6E0xxRszwCg2VYbGkkw2O2+EfzTmJ4i53KYtmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206909},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"6a751e023d1f054e29fb60f630b17714c746607b","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.12.1","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"peerDependencies":{"audio-mic":"*"},"peerDependenciesMeta":{"audio-mic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.5.1_1778360326559_0.7433699036344175","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"web-audio-api","version":"1.5.2","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.5.2","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"f3df26bbdd59020339a535477a015643f98feba7","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.5.2.tgz","fileCount":46,"integrity":"sha512-Ns+SIjQjXWca92uhF2hRnI5R/bzlE+0Jir9fGJCf+Re3ZdofZOOlyY1EsdpoQ87B9ExDjXWAJASNOIbQ/06l5w==","signatures":[{"sig":"MEUCIQCGn1CMR16Vq3hugLv49t8VgETjP0emQmeM0urJUEKoIgIgTdVg/IssKJfvlNwZTiiv6arFgpKpMf0gmRFLx+rcJS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207644},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"gitHead":"ee3acf651032858fa6c0c003307e1b71093b4c37","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.12.1","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"peerDependencies":{"audio-mic":"*"},"peerDependenciesMeta":{"audio-mic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.5.2_1783726399316_0.9788024485583495","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"web-audio-api","version":"1.5.3","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.5.3","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"12adb78207c74a713f76e6fdc4cdad9a8d94230e","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.5.3.tgz","fileCount":46,"integrity":"sha512-ki4BUDCUyfs0HkzsxEswIlRtcSThSlmPd9PNiZjwQuzQ3Zi2UiS23eD5nf3GVpJ8qe8KMEsxVTexm8t6xWx8fw==","signatures":[{"sig":"MEQCIH0SNENq/PrZREQQ2YxT1Ib+kKC+KX4CLtaDdGvQiI96AiAA+YWgItiG+QJFMkdoKOrof5C40YTtpkvAC9paYa7P8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207696},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"funding":"https://github.com/sponsors/audiojs","gitHead":"ee3acf651032858fa6c0c003307e1b71093b4c37","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.12.1","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","node-web-audio-api":"^1.0.8"},"peerDependencies":{"audio-mic":"*"},"peerDependenciesMeta":{"audio-mic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.5.3_1783732093908_0.7214136632068695","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"web-audio-api","version":"1.5.4","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.5.4","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/web-audio-api#readme","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"6c6563a7d5de0b362f2e202a7ecda02a2d2381fd","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.5.4.tgz","fileCount":46,"integrity":"sha512-NH8+SU56uOorLYW6YhQC7GrZApKoVUxF9p5qV/dQVG5X3SQ0Xp8gT9X5tlOGqf3UrSbwgbYgWUu9N+80wnk9Aw==","signatures":[{"sig":"MEQCIBkvr6ogEBMAq1EqY4y5BLenwIlCcrUcjWweDzuYw0mAAiBhf1IKLrNgFTM0HW/K3p0dScwQKcNZn2m10FesDqS+gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDJBVbTGu6aOwiDMdZXeOeuiB/SKFDB1T69R0fSRItbgAiBkApXYf40WsEEMucdVBWCf/XlwXtfJb5FtfE/AdOPZCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207938},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"funding":"https://github.com/sponsors/audiojs","gitHead":"345cee16d831f50482c614070493818b52fe3318","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.12.1","description":"Portable Web Audio API","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-decode":"^3.1.2","audio-effect":"^1.0.0","audio-speaker":"^2.0.5","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","@audio/pitch-yin":"^1.0.4","node-web-audio-api":"^1.0.8"},"peerDependencies":{"audio-mic":"*"},"peerDependenciesMeta":{"audio-mic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.5.4_1787960013587_0.7364436911369592","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"web-audio-api","version":"1.5.5","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","_id":"web-audio-api@1.5.5","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"homepage":"https://audiojs.dev/web-audio-api/","bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"bin":{"web-audio-api":"bin.js"},"dist":{"shasum":"7823ec97273abb9380f11574f6dd71a663278088","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.5.5.tgz","fileCount":145,"integrity":"sha512-wp3QUp/YGQ/cbIK5S21TBCX2xiy2akflGbkT8tKYrVy2sdzccvHS97DdRk8plrCK4AYxeI19nw1yeM5dj6NbOQ==","signatures":[{"sig":"MEQCIHcn0rltaPvFvXBr9TPTKPi1UfbEiOSrD+u/RNyOThdiAiAcL75kSl2Vz/EcU/e5dBdnePeG/r1sDi5bJE8OU5T5nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDH9cKxctDd6LHau6GmzIE2UY1NxiTAcHEpPtji5x86fwIgYXr657iPvIn3O1N413mRORJE60InnT2QOL9EQ2Px/r8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550271},"type":"module","types":"./index.d.ts","engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"funding":"https://github.com/sponsors/audiojs","gitHead":"0e6836bc0e9255ee26a0b5248c439596d31d1d92","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","test:site":"node test/site.test.js","site:build":"node scripts/build-site.mjs","site:serve":"python3 -m http.server 8080 --directory build/site","site:stage":"node scripts/build-site.mjs --stage","site:verify":"node scripts/build-site.mjs --verify --stage","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.12.1","description":"Pure JavaScript Web Audio API for Node, CI, and servers","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-effect":"^1.0.0","@audio/decode":"^3.15.0","@audio/speaker":"^2.3.3","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","linkedom":"^0.18.12","@audio/assert":"^0.2.0","@audio/pitch-yin":"^1.0.4","node-web-audio-api":"^1.0.8"},"peerDependencies":{"@audio/mic":"^1.1.3"},"peerDependenciesMeta":{"@audio/mic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-audio-api_1.5.5_1788371987551_0.6747535814082894","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"_id":"web-audio-api@1.5.6","bin":{"web-audio-api":"bin.js"},"bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"dist":{"shasum":"b67aae296f0e3867a1cedc0691a6208bb8bc34fc","tarball":"https://registry.npmjs.org/web-audio-api/-/web-audio-api-1.5.6.tgz","fileCount":146,"integrity":"sha512-GB2zRdnmVueX8leXRD+J2I3Judet8qVt3k+CUnJUBOfeIZXk9Pgl/anjrIWg8eA6bF6mqRKzi2Jt+vFlS9DREw==","signatures":[{"sig":"MEYCIQCizLJJDTrxbLn0DnKV1jr+aD61gt7m2BDZqeSMcykpwgIhAJSswK7QFjmOm5SHqJ5rSVyilZKtp3f0nh73g40rTn9v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFN4JVTIErn2L577nZHfPn4gp/Pe7DcB0oYnLBVF0CCSAiEAyhcZF4z3KZFYq82N597WCmggwuX/qnkZlZuhAdER1UY="}],"unpackedSize":604330},"name":"web-audio-api","type":"module","types":"./index.d.ts","author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"engines":{"node":">=18"},"exports":{".":"./index.js","./polyfill":"./polyfill.js"},"funding":"https://github.com/sponsors/audiojs","gitHead":"31a96478a37051cbbd4360dbf69a89f79e7417e9","license":"MIT","scripts":{"wpt":"node test/wpt-runner.js","test":"node test/index.js","bench":"node benchmark/run.js","bench:all":"node benchmark/run-all.js","test:site":"node test/site.test.js && node test/signal.test.js","site:build":"node scripts/build-site.mjs","site:serve":"python3 -m http.server 8080 --directory build/site","site:stage":"node scripts/build-site.mjs --stage","test:music":"node test/music.test.js","site:verify":"node scripts/build-site.mjs --verify --stage","wpt:parallel":"TST_PARALLEL=8 node test/wpt.test.js","bench:compare":"node benchmark/compare.js","prepublishOnly":"npm test","test:site:browser":"node test/site-browser.mjs"},"version":"1.5.6","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"homepage":"https://audiojs.dev/web-audio-api/","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"_npmVersion":"11.12.1","description":"Pure JavaScript Web Audio API for Node, CI, and servers","directories":{},"maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"sideEffects":false,"_nodeVersion":"25.9.0","contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"dependencies":{"pcm-convert":"^3.1.1","audio-buffer":"^7.3.0","audio-effect":"^1.0.0","@audio/decode":"^3.15.0","@audio/speaker":"^2.3.3","digital-filter":"^2.3.0","automation-events":"^7.1.19","fourier-transform":"^2.2.0","periodic-function":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tst":"^9.4.0","tone":"^15.1.22","esbuild":"^0.28.2","linkedom":"^0.18.12","playwright":"1.58.2","@audio/assert":"^0.2.0","@audio/pitch-yin":"^1.0.4","node-web-audio-api":"^1.0.8"},"peerDependencies":{"@audio/mic":"^1.1.3"},"peerDependenciesMeta":{"@audio/mic":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/web-audio-api_1.5.6_1788663837907_0.589305548636698"}}},"time":{"created":"2013-07-31T13:58:46.600Z","modified":"2026-09-06T03:03:58.186Z","0.1.0":"2013-07-31T13:58:53.646Z","0.1.1":"2013-08-08T16:21:33.887Z","0.1.2":"2013-08-16T20:54:58.185Z","0.1.3":"2013-09-03T16:57:26.474Z","0.1.4":"2013-09-05T09:14:42.205Z","0.1.5":"2013-09-10T18:32:39.600Z","0.2.0":"2014-12-15T09:15:21.477Z","0.2.1":"2014-12-16T09:04:15.680Z","0.2.2":"2015-10-28T08:41:28.402Z","1.0.0":"2026-03-19T16:21:46.055Z","1.1.1":"2026-03-20T15:10:00.781Z","1.2.0":"2026-03-20T16:37:43.344Z","1.3.0":"2026-03-31T13:16:39.346Z","1.3.1":"2026-03-31T14:10:31.649Z","1.3.2":"2026-03-31T14:22:21.646Z","1.3.3":"2026-04-09T13:05:10.973Z","1.3.4":"2026-04-25T11:24:29.878Z","1.4.0":"2026-04-29T18:49:58.762Z","1.5.0":"2026-05-02T13:44:44.943Z","1.5.1":"2026-05-09T20:58:46.741Z","1.5.2":"2026-07-10T23:33:19.438Z","1.5.3":"2026-07-11T01:08:14.058Z","1.5.4":"2026-08-28T23:33:33.668Z","1.5.5":"2026-09-02T17:59:47.660Z","1.5.6":"2026-09-06T03:03:58.018Z"},"bugs":{"url":"https://github.com/audiojs/web-audio-api/issues"},"author":{"name":"Sébastien Piquemal","email":"sebpiq@gmail.com"},"license":"MIT","homepage":"https://audiojs.dev/web-audio-api/","keywords":["audio","audiojs","sound","music","web audio","web audio api","waa","dsp"],"repository":{"url":"git+https://github.com/audiojs/web-audio-api.git","type":"git"},"description":"Pure JavaScript Web Audio API for Node, CI, and servers","contributors":[{"name":"Dmitry Iv","email":"df.creative@gmail.com"}],"maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"sebpiq","email":"sebpiq@gmail.com"},{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# <img src=\"assets/logo.svg\" width=\"28\" valign=\"middle\" alt=\"\"> web-audio-api [![W3C WPT](https://github.com/audiojs/web-audio-api/actions/workflows/wpt.yml/badge.svg)](https://github.com/audiojs/web-audio-api/actions/workflows/wpt.yml) [![platforms](https://github.com/audiojs/web-audio-api/actions/workflows/platforms.yml/badge.svg)](https://github.com/audiojs/web-audio-api/actions/workflows/platforms.yml) [![npm](https://img.shields.io/npm/v/web-audio-api)](https://npmjs.org/package/web-audio-api)\n\n[Web Audio API](https://audiojs.dev/web-audio-api/) pure JavaScript implementation. Useful for:\n\n* **Server-side rendering** – reuse Web Audio graphs with `OfflineAudioContext`.\n* **Audio in CI** – render and assert on samples in Node, Deno, and Bun.\n* **Audio analysis** – `decodeAudioData` for 20+ formats, `AnalyserNode` as in browser.\n* **Agents and bots** – write PCM to streams, no audio device needed.\n* **Compatibility testing** – a fully passing checked-in [WPT corpus under our Node runner](test/WPT.md).\n* **Tone.js and web audio libs** – `import 'web-audio-api/polyfill'` installs the globals.\n* **CLI audio scripting** – PCM in and out through stdio, 46 runnable examples.\n\n```\nnpm install web-audio-api\n```\n\n## Use\n\n```js\nimport { AudioContext } from 'web-audio-api'\n\nconst ctx = new AudioContext()\nawait ctx.resume()\n\nconst osc = ctx.createOscillator()\nosc.frequency.value = 440\nosc.connect(ctx.destination)\nosc.start()\n// → A440 through your speakers\n```\n\n[`@audio/speaker`](https://github.com/audiojs/speaker) provides device output through platform-specific backends, including native dependencies. The DSP engine itself is JavaScript.\n\n<details>\n<summary><b>How do I render offline, without speakers?</b></summary>\n\n```js\nimport { OfflineAudioContext } from 'web-audio-api'\n\nconst ctx = new OfflineAudioContext(2, 44100, 44100) // 1 second, stereo\nconst osc = ctx.createOscillator()\nosc.frequency.value = 440\nosc.connect(ctx.destination)\nosc.start()\n\nconst buffer = await ctx.startRendering()\n// buffer.getChannelData(0) → Float32Array of 44100 samples\n```\n\nRendering runs as fast as the graph and host allow and opens no audio device, so it can run in a test runner for asserting on samples. See [render-to-buffer.js](examples/render-to-buffer.js).\n\n</details>\n\n<details>\n<summary><b>How do I close an AudioContext?</b></summary>\n\n```js\nawait ctx.close()\n```\nOr with [explicit resource management](https://github.com/tc39/proposal-explicit-resource-management): `using ctx = new AudioContext()`\n\n</details>\n<details>\n<summary><b>Why does it start suspended?</b></summary>\n\n`AudioContext` starts suspended to match the [Web Audio lifecycle](https://webaudio.github.io/web-audio-api/#dom-audiocontext-audiocontext). In Node, call `await ctx.resume()`. Browsers may require that call inside a user gesture. `OfflineAudioContext` doesn't need it.\n\n</details>\n<details>\n<summary><b>Does it work with Tone.js?</b></summary>\n\nYes. Tone.js uses `standardized-audio-context`, which needs globals such as `window.AudioParam` for `instanceof` checks. Load the polyfill before Tone.js:\n\n```js\nimport 'web-audio-api/polyfill'\nconst Tone = await import('tone')\n\nTone.setContext(new AudioContext())\nconst synth = new Tone.Synth().toDestination()\nsynth.triggerAttackRelease('C4', '8n')\n```\n\nTone.js must use a dynamic `import()` because static imports run before the polyfill. Alternatively, use `--import`:\n\n```sh\nnode --import web-audio-api/polyfill app.js\n```\n\nThen static `import * as Tone from 'tone'` works in `app.js`.\n\n</details>\n<details>\n<summary><b>How do I decode audio files?</b></summary>\n\n```js\nconst buffer = await ctx.decodeAudioData(readFileSync('track.mp3'))\n```\n`decodeAudioData()` uses [@audio/decode](https://github.com/audiojs/decode) for MP3, WAV, Ogg Vorbis, Opus, FLAC, AAC, ALAC, AIFF, CAF, WebM, and other supported audio or video containers without FFmpeg or native bindings.\n\n</details>\n<details>\n<summary id=\"how-do-i-capture-audio-from-the-microphone\"><b>How do I capture audio from the microphone?</b></summary>\n\nIn Node, pair [`@audio/mic`](https://github.com/audiojs/mic) with `CustomMediaStreamTrack`:\n\n```sh\nnpm install @audio/mic\n```\n\n```js\nimport { AudioContext, MediaStreamAudioSourceNode, CustomMediaStreamTrack, MediaStream } from 'web-audio-api'\nimport mic from '@audio/mic'\n\nconst ctx = new AudioContext()\nawait ctx.resume()\n\nconst track = new CustomMediaStreamTrack({\n  kind: 'audio',\n  label: 'mic',\n  settings: { channelCount: 1, sampleSize: 16, sampleRate: ctx.sampleRate }\n})\nconst stream = new MediaStream([track])\n\nconst src = new MediaStreamAudioSourceNode(ctx, { mediaStream: stream })\nsrc.connect(ctx.destination) // live monitor\n\n// @audio/mic's read(cb) is single-shot; re-arm it inside the callback.\nconst read = mic({ sampleRate: ctx.sampleRate, channels: 1, bitDepth: 16 })\nconst pump = () => read((err, buf) => {\n  if (err || !buf) return\n  track.pushData(buf, { channels: 1, bitDepth: 16 })\n  pump()\n})\npump()\n```\n\n`track.pushData()` accepts `Float32Array`, `Float32Array[]`, or interleaved 8/16/32-bit integer PCM buffers. Integer PCM conversion uses `pcm-convert`. `CustomMediaStreamTrack` extends `MediaStreamTrack`. Prior art: `CanvasCaptureMediaStreamTrack`.\n\nSee [examples/mic.js](examples/mic.js) for a runnable demo with gain and VU meter. To record the graph to a buffer, use `OfflineAudioContext.startRendering()`. To capture live graph output as a stream, use `ctx.createMediaStreamDestination()`.\n\nIf the default microphone backend cannot open the device, pass `backend: 'process'` to use `sox`/`ffmpeg` instead: `mic({ ..., backend: 'process' })`. All bundled examples accept `backend=process` on the command line.\n\n</details>\n<details>\n<summary><b>How do I use it as a polyfill?</b></summary>\n\n```js\nimport 'web-audio-api/polyfill'\n// AudioContext, GainNode, etc. are now global\n```\n\nThe polyfill also installs `navigator.mediaDevices.getUserMedia({ audio: true })`, backed by the optional [`@audio/mic`](https://github.com/audiojs/mic) peer dependency. This lets browser mic-capture code run verbatim in Node:\n\n```js\nimport 'web-audio-api/polyfill'\n// npm install @audio/mic\n\nconst stream = await navigator.mediaDevices.getUserMedia({ audio: true })\nconst ctx = new AudioContext()\nconst src = ctx.createMediaStreamSource(stream)\nsrc.connect(ctx.destination)\n\n// stop capture\nstream.getAudioTracks()[0].stop()\n```\n\nWithout `@audio/mic` installed, `getUserMedia` rejects with a `NotFoundError` containing an install hint.\n\n</details>\n\n## Examples\n\n`node examples/<name>.js` runs each example with its defaults.\n`node examples/<name>.js --help` for every accepted argument, option, keyboard control, and alternate invocation.\n\n### Test signals\n\n* [tone.js](examples/tone.js): Reference pitch – `sine A4 2s`\n* [sweep.js](examples/sweep.js): Hear the audible range – `20..20k exp 3s`\n* [noise.js](examples/noise.js): White, pink, brown, blue, violet – `pink 2s`\n* [impulse.js](examples/impulse.js): Dirac click – `5 0.5s`\n* [dtmf.js](examples/dtmf.js): Dial a phone number – `5551234`\n* [stereo-test.js](examples/stereo-test.js): Left, right, center – `1k 1s`\n* [metronome.js](examples/metronome.js): Programmable stick click – `80..240 10m X-x-x-x-`\n* [tuner.js](examples/tuner.js): Guitar tuner – mic pitch in cents – `440` (requires [`@audio/mic`](https://github.com/audiojs/mic))\n* [latency-tester.js](examples/latency-tester.js): Round-trip latency: speakers → mic, in ms (requires [`@audio/mic`](https://github.com/audiojs/mic))\n* [level-meter.js](examples/level-meter.js): Mic RMS and peak in dBFS, fast or slow ballistics (requires [`@audio/mic`](https://github.com/audiojs/mic))\n\n### Illusions\n\n* [shepard.js](examples/shepard.js): Pitch that rises forever – `up 15s`\n* [risset-rhythm.js](examples/risset-rhythm.js): Beat that accelerates forever – `up 120 20s`\n* [binaural-beats.js](examples/binaural-beats.js): Third tone from two (headphones!) – `200 10 10s`\n* [missing-fundamental.js](examples/missing-fundamental.js): Your brain fills in the note – `100 3s`\n* [beating.js](examples/beating.js): Two close frequencies dance – `440 3 5s`\n* [octave-illusion.js](examples/octave-illusion.js): One tone jumps register and side (headphones!) – `400 800 2 12s`\n* [scale-illusion.js](examples/scale-illusion.js): Two scales split between ears, regrouped by pitch (headphones!) – `200 261.63 8s`\n* [tritone-paradox.js](examples/tritone-paradox.js): Up or down? Tritone pairs that refuse to decide – `0 8 1.2`\n* [continuity.js](examples/continuity.js): A tone sounds unbroken through noise bursts – `440 0.6 on 15s`\n* [streaming.js](examples/streaming.js): Two tones fuse into one stream or split into two – `240 4 15s`\n* [huggins-pitch.js](examples/huggins-pitch.js): A pitch that exists in neither ear (headphones!) – `600 20s`\n* [zwicker-tone.js](examples/zwicker-tone.js): An after-tone lingers where the notch was – `2000 3 2 20s`\n\n### Synthesis\n\n* [subtractive-synth.js](examples/subtractive-synth.js): Sawtooth → filter sweep → ADSR\n* [additive.js](examples/additive.js): Waveforms from harmonics – `square 220 16 3s`\n* [fm-synthesis.js](examples/fm-synthesis.js): DX7 frequency modulation – `440 2 5 3s`\n* [karplus-strong.js](examples/karplus-strong.js): A string plucked from noise – `A4 4s`\n* [wavetable.js](examples/wavetable.js): Fourier wavetables, crossfaded – `organ 220 0.3 6s`\n* [granular.js](examples/granular.js): Grain cloud from a seeded buffer – `0.08 15 4 10s`\n\n### Generative\n\n[Musical models, styles, and offline listening fixtures](examples/MUSIC.md).\n\n* [sequencer.js](examples/sequencer.js): Step sequencer – precise timing\n* [serial.js](examples/serial.js): Twelve-tone rows (Webern) – `72 30s`\n* [gamelan.js](examples/gamelan.js): Balinese kotekan – two parts, one melody – `120 20s`\n* [drone.js](examples/drone.js): Tanpura, pads, or cinematic strings – `voice=strings melody=pentatonic freq=D3 -d 30s`\n* [jazz.js](examples/jazz.js): Jazz in seven styles, modal first, lead on guitar, flute, harp, or piano – `style=ambient lead=harp`\n* [euclidean.js](examples/euclidean.js): Bjorklund rhythms, 2–3 voices – `120 16 3,5,7 20s`\n\n### API\n\n* [speaker.js](examples/speaker.js): Hello world\n* [lfo.js](examples/lfo.js): Tremolo via LFO\n* [spatial.js](examples/spatial.js): Sound moving through space\n* [worklet.js](examples/worklet.js): Custom AudioWorkletProcessor\n* [linked-params.js](examples/linked-params.js): One source controlling many gains\n* [fft.js](examples/fft.js): Frequency spectrum\n* [render-to-buffer.js](examples/render-to-buffer.js): Offline render → buffer\n* [process-file.js](examples/process-file.js): Audio file → EQ + compress → render\n* [pipe-stdout.js](examples/pipe-stdout.js): PCM to stdout – pipe to `aplay`, `sox`, etc.\n* [mic.js](examples/mic.js): Live microphone → speakers with RMS meter (requires [`@audio/mic`](https://github.com/audiojs/mic))\n* [recorder.js](examples/recorder.js): Record the mic to a WAV file, with a level meter (requires [`@audio/mic`](https://github.com/audiojs/mic))\n* [reverb.js](examples/reverb.js): Convolver with a seeded impulse response – `2 0.35 3s`\n\n## Performance\n\nRun `npm run bench:compare` for an offline-render comparison with `node-web-audio-api`. The runner alternates engines after warmup and reports median and p95 times over 50 renders. [Saved results](benchmark/results.json) include raw samples, hardware, and versions.\n\nThese are short offline graphs, not audio-device latency measurements or realtime guarantees. Measure your own graph and deployment host.\n\n## Architecture\n\nPull-based audio graph. `AudioDestinationNode` pulls upstream via `_tick()`, 128-sample render quanta per spec. AudioWorklet runs synchronously (no thread isolation). DSP kernels separated from graph plumbing for future WASM swap.\n\n```\nEventTarget ← Emitter ← DspObject ← AudioNode ← concrete nodes\n                                    ← AudioParam\nEventTarget ← Emitter ← AudioPort ← AudioInput / AudioOutput\n```\n\n## Node extensions\n\nBeyond the spec, for Node.js. Not portable to browsers.\n\n- **`addModule(fn)`** – register a processor via callback instead of URL, no file needed\n- **`sinkId: stream`** – pipe PCM to any writable: `new AudioContext({ sinkId: process.stdout })` then `node synth.js | aplay -f cd`\n- **`numberOfChannels`, `bitDepth`** – control output format in the constructor.\n- **`CustomMediaStreamTrack`** – extends `MediaStreamTrack` with a public constructor and `pushData(chunk, options)` to feed audio data (e.g. from a microphone). Prior art: `CanvasCaptureMediaStreamTrack`. See the [mic FAQ](#how-do-i-capture-audio-from-the-microphone).\n\n## Alternatives\n\n- **[node-web-audio-api](https://github.com/ircam-ismm/node-web-audio-api)** – Rust DSP with Node bindings and native prebuilds; its browser export uses native Web Audio. Compare on your graph, especially when realtime performance matters.\n- **[standardized-audio-context](https://github.com/chrisguttandin/standardized-audio-context)** – Browser-only. Normalizes cross-browser quirks.\n- **[web-audio-api-rs](https://github.com/orottier/web-audio-api-rs)** – Pure Rust / WASM.\n- **[web-audio-engine](https://github.com/mohayonao/web-audio-engine)** – Archived. Partial spec coverage.\n- **[react-native-audio-api](https://github.com/software-mansion/react-native-audio-api)** – React native partial implementation.\n\n## License\n\nMIT\n\n<p align=center><a href=\"https://github.com/krishnized/license/\">ॐ</a></p>\n","readmeFilename":"README.md","users":{"rchk":true,"swak":true,"errol":true,"nmante":true,"piranna":true,"theveil":true,"hollobit":true,"cstrelioff":true,"danielhopp":true,"thecharlie":true,"kareemfikry":true}}