{"_id":"@audio/mir-multif0","_rev":"6-2a207207aeb85d830d24408911b6c33d","name":"@audio/mir-multif0","dist-tags":{"latest":"1.1.4"},"versions":{"1.0.0":{"name":"@audio/mir-multif0","version":"1.0.0","keywords":["audio","dsp","mir","multif0"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-multif0@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":"1a12f8e018f1c9a087d1bc965353ba0df2d22b30","tarball":"https://registry.npmjs.org/@audio/mir-multif0/-/mir-multif0-1.0.0.tgz","fileCount":3,"integrity":"sha512-CsHyusppRiu2QBe1MVSgqKvim68DaWgRcN+uQweDA7stGcmgCdx7ZmnGA8Ctn4TAEb8deRJdJ4qhiOkZEMmENQ==","signatures":[{"sig":"MEQCIAxN5TKkJhmYay2OYdvrdDPKstaXaFn9F70b7HZM9zEUAiAyijYpgnl4yUnGXs6PNJsK+pZ8uArlcvzxAFnInlTVEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4672},"main":"multif0.js","type":"module","engines":{"node":">=18"},"exports":{".":"./multif0.js","./package.json":"./package.json"},"gitHead":"3fa448fe0cd6bd1a997bb33703b4b99e684ba8cb","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Multiple F0 estimation — all simultaneous pitches per frame (polyphonic)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-multif0_1.0.0_1783548392237_0.29966349596904096","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@audio/mir-multif0","version":"1.1.0","keywords":["audio","dsp","mir","multif0"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-multif0@1.1.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"f3c54bbc7b4f03ffc258802ea3c3069d35e1d518","tarball":"https://registry.npmjs.org/@audio/mir-multif0/-/mir-multif0-1.1.0.tgz","fileCount":4,"integrity":"sha512-1tt2P8N+EQO7f6Q4NHs7pu51+i8Gmjtlspa6c6K2EOhwtbHGzQYrdyKmtQ8M+zV8yxJ+IZi+f5xiVV+Wrus79Q==","signatures":[{"sig":"MEQCIFd45S2syyHXgSRC5MltBkzfHNGE+msF8MHevOws1fslAiAPSf92L1Z2v4C3JYQ1Jx1C64pZ2pxztx17TvztaJHvQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5207},"main":"multif0.js","type":"module","engines":{"node":">=18"},"exports":{".":"./multif0.js","./stat":"./stat.js","./package.json":"./package.json"},"gitHead":"6623c86ac3c629314143d5df1ec488783d26bdc9","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Multiple F0 estimation — all simultaneous pitches per frame (polyphonic)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-multif0_1.1.0_1783635231146_0.10369370630673003","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@audio/mir-multif0","version":"1.1.1","keywords":["audio","dsp","mir","multif0"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-multif0@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":"16de81272b6cff955a9670813917a1e55fafbd72","tarball":"https://registry.npmjs.org/@audio/mir-multif0/-/mir-multif0-1.1.1.tgz","fileCount":4,"integrity":"sha512-2mBbefod1WOX+/57kLVbEJLnQFdcVIRKGp2j4camRIYSkPEu7bHoFOUGEmtIKIo2k4gMLaBlfgZu+tckD2/nPg==","signatures":[{"sig":"MEUCIQDZkfU66d8kF4MJkkgw7ed1nj/HP1djOVPbbS8l/00Z0wIgT/d6893C3QRoYCGjqO/SAbWddoTvG7xa36JNMrY4UNE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5235},"main":"multif0.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./multif0.js","./audio":"./audio.js","./package.json":"./package.json"},"gitHead":"c8329c9ec6cd79f0a16a922bd8270de827441a84","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Multiple F0 estimation — all simultaneous pitches per frame (polyphonic)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-multif0_1.1.1_1783644983008_0.7514897011085002","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@audio/mir-multif0","version":"1.1.2","keywords":["audio","dsp","mir","multif0"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-multif0@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":"0dbdc2d7cde3fcdad45c8455e806049baaf14751","tarball":"https://registry.npmjs.org/@audio/mir-multif0/-/mir-multif0-1.1.2.tgz","fileCount":5,"integrity":"sha512-DQKHI0QjRP7hiOey14B7N7XwkCSr7eYxcwlPmN7cBuY1mT5N3NqyeaCkGsVggNQlB76a07NOcj9HPZunqD882g==","signatures":[{"sig":"MEUCIDFO2klQfOKYlM6QPdNZGT8vB+r9hYrnJ1jXF/TiMRfYAiEAqfCjvISf0hYdnYLmlADca3DWg1xVM14e/fozORTZJLw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6316},"main":"multif0.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./multif0.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"d4fe4b5049989b7900c4b734f72dfd381ad8c23f","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Multiple F0 estimation — all simultaneous pitches per frame (polyphonic)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-multif0_1.1.2_1783701764197_0.9749389296603601","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@audio/mir-multif0","version":"1.1.3","keywords":["audio","dsp","mir","multif0"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/mir-multif0@1.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/mir#readme","bugs":{"url":"https://github.com/audiojs/mir/issues"},"dist":{"shasum":"3ab107f9b7e042ef9a2fa27bbae81b7da47c1a59","tarball":"https://registry.npmjs.org/@audio/mir-multif0/-/mir-multif0-1.1.3.tgz","fileCount":5,"integrity":"sha512-+SC0OkNgw6SDTcJdnkLD1vKc9fL05MP6NDiWk0jkx+YzaWKdiZ4K+oUVb+ZqAiKNahXf3QgDfmXLH9potyz5Tg==","signatures":[{"sig":"MEQCICJ8D/B0SkvAuKJt7ghgzl7BtH693+aqDOzghry3F+3TAiBEDhzxGvTCUOhGxyJNenZ2aoBtYlX8S4x1QRcFB5jbaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7213},"main":"multif0.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./multif0.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"93085dd0c0423a8e35b609771c07d7c146aeb66e","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/mir.git","type":"git","directory":"packages/mir-multif0"},"_npmVersion":"11.12.1","description":"Multiple F0 estimation — all simultaneous pitches per frame (polyphonic)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"fourier-transform":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mir-multif0_1.1.3_1783726308667_0.47206291886663476","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@audio/mir-multif0","version":"1.1.4","description":"Multiple F0 estimation — all simultaneous pitches per frame (polyphonic)","type":"module","sideEffects":false,"keywords":["audio","dsp","mir","multif0"],"license":"MIT","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"engines":{"node":">=18"},"main":"multif0.js","exports":{".":"./multif0.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"dependencies":{"fourier-transform":"^2.3.0"},"publishConfig":{"access":"public"},"audio":"./audio.js","repository":{"type":"git","url":"git+https://github.com/audiojs/mir.git","directory":"packages/mir-multif0"},"funding":"https://github.com/sponsors/audiojs","types":"index.d.ts","gitHead":"92646d93d32b77e5219d245361ffbcb361ff683e","_id":"@audio/mir-multif0@1.1.4","bugs":{"url":"https://github.com/audiojs/mir/issues"},"homepage":"https://github.com/audiojs/mir#readme","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-kMYCvTCBfoxktWCHK2K4jZJ3Bu1W76TVnkm7VcZMyO8uYqFyoSLu6ubpDdzjIaC39QYTxwjC+BpQUBXiAO8GpQ==","shasum":"4dbc3825a960ea17c5c3f1afad3930c7d1a55e80","tarball":"https://registry.npmjs.org/@audio/mir-multif0/-/mir-multif0-1.1.4.tgz","fileCount":6,"unpackedSize":8245,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBDVZ1yRbAVsvcEaviHruKn3XBqYT6XSqhKs1Tj+RRPBAiEA1QKXAzVQt8szou0AZSWSbmtD0IzVhk9yzbq6juYkcCI="}]},"_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/mir-multif0_1.1.4_1783731686238_0.10224807955979487"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T22:06:32.084Z","modified":"2026-07-11T01:01:26.509Z","1.0.0":"2026-07-08T22:06:32.401Z","1.1.0":"2026-07-09T22:13:51.308Z","1.1.1":"2026-07-10T00:56:23.146Z","1.1.2":"2026-07-10T16:42:44.334Z","1.1.3":"2026-07-10T23:31:48.814Z","1.1.4":"2026-07-11T01:01:26.381Z"},"bugs":{"url":"https://github.com/audiojs/mir/issues"},"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","homepage":"https://github.com/audiojs/mir#readme","keywords":["audio","dsp","mir","multif0"],"repository":{"type":"git","url":"git+https://github.com/audiojs/mir.git","directory":"packages/mir-multif0"},"description":"Multiple F0 estimation — all simultaneous pitches per frame (polyphonic)","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/mir-multif0\n\n> Multiple-F0 estimation — Klapuri (2006) iterative spectral subtraction: whiten the magnitude spectrum, find the maximum-salience F0, subtract its harmonic pattern, repeat until salience collapses.\n\n`npm install @audio/mir-multif0`\n\n```js\nimport multif0 from '@audio/mir-multif0'\n\nlet frames = multif0(data, { fs: 44100 })\n// Array<{ time, pitches: Array<{ freq, salience }> }>\n```\n\nOptions: - `fs` — sample rate (default 44100, Hz) · `frameSize` — analysis window, samples (default 4096) · `hopSize` — frame hop, samples (default `frameSize / 2`) · `minFreq`/`maxFreq` — pitch search range (default 60/1200, Hz) · `maxPitches` — pitches per frame (default 6) · `harmonics` — partials scored per candidate (default 12) · `threshold` — fraction of the frame's top salience a pitch must reach (default 0.4)\n\nAlso exported as an `audio.js` stat manifest (`./audio`).\n\nPart of [@audio/mir](https://github.com/audiojs/mir).\n","readmeFilename":"README.md"}