{"_id":"@audio/measure-align","_rev":"2-5dba2aef9250b84822a40c92e3b489e9","name":"@audio/measure-align","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@audio/measure-align","version":"1.0.0","keywords":["audio","dsp","measurement","align"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/measure-align@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":"1e853be25a685487d1f84ef7ad29bc589c1e2fef","tarball":"https://registry.npmjs.org/@audio/measure-align/-/measure-align-1.0.0.tgz","fileCount":2,"integrity":"sha512-59c0jPvrE6m0W6pfCGcY+GqRItBzfJFtc0aRIi9wjXuR8EoV/5Ij1TkIe6we0yrxNYzWZAH9x8VgpCWGF/hvHQ==","signatures":[{"sig":"MEYCIQCStJBBMPGWENVNZnn2QfP/y7Mf9aN725iK0FUiQqnNvgIhANBfAHRL5bPBxMvkiF9p5+XeLwnIpiD8OxIXP+HxN1/V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1831},"main":"align.js","type":"module","engines":{"node":">=18"},"exports":{".":"./align.js","./package.json":"./package.json"},"gitHead":"daf713bfbd560c7730c8492bb420abffdbfebcf8","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Multi-mic phase/time alignment — signed cross-correlation delay + polarity (Auto-Align class)","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/measure-ir":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/measure-align_1.0.0_1783540369509_0.7313663283837852","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@audio/measure-align","version":"1.0.1","description":"Multi-mic phase/time alignment — signed cross-correlation delay + polarity (Auto-Align class)","type":"module","sideEffects":false,"main":"align.js","exports":{".":"./align.js","./package.json":"./package.json"},"dependencies":{"@audio/measure-ir":"^1.0.0"},"keywords":["audio","dsp","measurement","align"],"license":"MIT","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/audiojs/measure.git","directory":"packages/measure-align"},"types":"index.d.ts","funding":"https://github.com/sponsors/audiojs","gitHead":"9dcc57aa1a8a1dc669478cc4c9b25f3d28d1dfc0","_id":"@audio/measure-align@1.0.1","bugs":{"url":"https://github.com/audiojs/measure/issues"},"homepage":"https://github.com/audiojs/measure#readme","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-pxaft4v45fKnHk0Ge2IGOHTnYHvjunR3jzhKaTSxt80axi9d/0dBjfjwNOFOPxyvpyqIAN8HslLhPbNzX67oRg==","shasum":"d8fce3f46d49b6d70e7867eaeac2840e7104affa","tarball":"https://registry.npmjs.org/@audio/measure-align/-/measure-align-1.0.1.tgz","fileCount":4,"unpackedSize":4530,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD2hA/14b4s9OqGiAH2Pqk2kioQfLQmVlzvt08OTcfOJwIhAMcjfMmdHlIzSe5X5QsawYyNGqNnCSHKUsoexXtt+qIH"}]},"_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/measure-align_1.0.1_1783731637532_0.1846268097764423"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T19:52:49.361Z","modified":"2026-07-11T01:00:37.776Z","1.0.0":"2026-07-08T19:52:49.642Z","1.0.1":"2026-07-11T01:00:37.657Z"},"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","keywords":["audio","dsp","measurement","align"],"description":"Multi-mic phase/time alignment — signed cross-correlation delay + polarity (Auto-Align class)","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/measure-align [![npm](https://img.shields.io/npm/v/@audio/measure-align)](https://www.npmjs.com/package/@audio/measure-align) [![MIT](https://img.shields.io/badge/MIT-%E0%A5%90-white)](https://github.com/krishnized/license)\n\nMulti-mic phase/time alignment — signed cross-correlation delay + polarity (Auto-Align class)\n\n```\nnpm install @audio/measure-align\n```\n\n```js\nimport align from '@audio/measure-align'\n```\n\nSigned cross-correlation peak between two channels gives the delay and polarity of `b` relative to `a`; pass `apply: true` to also get `b` shifted into alignment and polarity-corrected.\n\n```js\nalign(a, b, { fs })                       // { delay, seconds, polarity }\nalign(a, b, { fs, apply: true })           // + { aligned }\n```\n\n| Param | Default | |\n|---|---|---|\n| `a` | — | reference channel (`Float32Array`) |\n| `b` | — | channel to align (`Float32Array`) |\n| `fs` | `44100` | sample rate |\n| `apply` | `false` | when `true`, also return `aligned`: `b` shifted by `delay` and polarity-flipped |\n\nReturns:\n\n| Field | | |\n|---|---|---|\n| `delay` | `number` | samples `b` lags `a` (signed) |\n| `seconds` | `number` | `delay / fs` |\n| `polarity` | `1 \\| -1` | polarity of `b` relative to `a` |\n| `aligned?` | `Float32Array` | present only when `apply: true` |\n\n**Use when:** multi-mic recordings (drum overheads, DI + amp blend, room + close mics) need per-channel delay and polarity correction before summing — comb-filtering from misaligned mics is inaudible per-track and destructive on sum.\n\n---\n\nPart of [@audio/measure](https://github.com/audiojs/measure) — the measure family umbrella.\n\nMIT © [audiojs](https://github.com/audiojs)\n","readmeFilename":"README.md","homepage":"https://github.com/audiojs/measure#readme","repository":{"type":"git","url":"git+https://github.com/audiojs/measure.git","directory":"packages/measure-align"},"bugs":{"url":"https://github.com/audiojs/measure/issues"}}