{"_id":"@audio/loudness-replaygain","_rev":"7-8c6d9fa42be4938fc285f1fe77326b0d","name":"@audio/loudness-replaygain","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@audio/loudness-replaygain","version":"1.0.0","keywords":["audio","dsp","loudness","replaygain"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/loudness-replaygain@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":"254231185bba193bc10e4973182c5ea9db9bac36","tarball":"https://registry.npmjs.org/@audio/loudness-replaygain/-/loudness-replaygain-1.0.0.tgz","fileCount":2,"integrity":"sha512-+RRATMLJgrBCKlINh6SDe3UeIvJvDHMwkv4QZOobDP1zQ0XlKMoAwdnLY09LophFf1z7ZvAhu90+CpuTOubTGQ==","signatures":[{"sig":"MEQCIF2TRypxp5THVuqcfMCJVzxNlTVbsrLU1Kn+lz1AHFPMAiBcM53QkO6E8DPDw/s5F9y/NVSqpO9Wg5Xw5sNBWjQCuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1238},"main":"replaygain.js","type":"module","engines":{"node":">=18"},"exports":{".":"./replaygain.js","./package.json":"./package.json"},"gitHead":"57f912670580667ee3cdf589f74c1d0da6b2fd8d","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"ReplayGain 2.0 — track gain to the −18 LUFS reference","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/loudness-lufs":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/loudness-replaygain_1.0.0_1783540308425_0.2263007554910661","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@audio/loudness-replaygain","version":"1.1.0","keywords":["audio","dsp","loudness","replaygain"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/loudness-replaygain@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":"259a1d69cb9c31439508a1098fab7d1e21f71cb6","tarball":"https://registry.npmjs.org/@audio/loudness-replaygain/-/loudness-replaygain-1.1.0.tgz","fileCount":3,"integrity":"sha512-z0FDMlKRTwqwgkSQ/WlizQuLjPPdua1WPjDl2ByX11vpB1IkQwMIB2mjImuC/kbaVfP8AD04R5EStsYUmzA7jg==","signatures":[{"sig":"MEUCIQC6bCRlrjTjllC8tFJsqds6K3ufNSic9lf42p4pdyfGTgIgHJLQQvUdYNNHeTrWYpuwZdJA38df35Wt99UYWR1b0Cg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1710},"main":"replaygain.js","type":"module","engines":{"node":">=18"},"exports":{".":"./replaygain.js","./stat":"./stat.js","./package.json":"./package.json"},"gitHead":"59b7fab5a0251b492134f3fbcc8fd9b2ea32dad8","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"ReplayGain 2.0 — track gain to the −18 LUFS reference","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/loudness-lufs":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/loudness-replaygain_1.1.0_1783635205077_0.26467339086912567","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@audio/loudness-replaygain","version":"1.1.1","keywords":["audio","dsp","loudness","replaygain"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/loudness-replaygain@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":"e6d15e6f6dddf96b4eab5f857d0359a43526bfbc","tarball":"https://registry.npmjs.org/@audio/loudness-replaygain/-/loudness-replaygain-1.1.1.tgz","fileCount":3,"integrity":"sha512-8wvplNlFU90eaE027rE+aFeXIZLV+fp1dknUf9I6bbYuuQvsU8duLe+CXnXLMnEzYeSZye/vqLBJREPvK24JCg==","signatures":[{"sig":"MEQCID2071wdlF+CEbtg25XFsm+FDTHcOpV6u1o7+L33iLxJAiAEJ5ZjGLIhs+F3ix0d8EsmBqkmK1Ienvbe5H8J/bpu9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1738},"main":"replaygain.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./replaygain.js","./audio":"./audio.js","./package.json":"./package.json"},"gitHead":"158a5506cc97179e6c26624e123eb3477ef0c4fc","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"ReplayGain 2.0 — track gain to the −18 LUFS reference","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/loudness-lufs":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/loudness-replaygain_1.1.1_1783645086684_0.088232291880596","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@audio/loudness-replaygain","version":"1.1.2","keywords":["audio","dsp","loudness","replaygain"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/loudness-replaygain@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":"26825862649256b777e502d56e7d6acce5e30b49","tarball":"https://registry.npmjs.org/@audio/loudness-replaygain/-/loudness-replaygain-1.1.2.tgz","fileCount":4,"integrity":"sha512-7t/4Dhg7VqWQq8j3fbVq3RLqvkR9poDyPVghPAbc378Lp2Ua0NeKH509Ted6i5zCP76wKK8DIROnR4CQkWNd7Q==","signatures":[{"sig":"MEQCIDqy1UflY6b/WabVzE8x5l0TetYWUmWq9yuinNiENp2wAiBVccr2YommpDcv2EnGkYSSvwH+6VpK242gPVsk1PcElA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2831},"main":"replaygain.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./replaygain.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"5e020a9f267b93903da1a1f8bf3060637e35ad95","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"ReplayGain 2.0 — track gain to the −18 LUFS reference","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/loudness-lufs":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/loudness-replaygain_1.1.2_1783701745545_0.24084260049184136","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@audio/loudness-replaygain","version":"1.1.3","keywords":["audio","dsp","loudness","replaygain"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/loudness-replaygain@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/loudness#readme","bugs":{"url":"https://github.com/audiojs/loudness/issues"},"dist":{"shasum":"1bd4617f0c16215e24c31c4e4d6e26792f638acb","tarball":"https://registry.npmjs.org/@audio/loudness-replaygain/-/loudness-replaygain-1.1.3.tgz","fileCount":6,"integrity":"sha512-DGEtrIZRlpnhD9YrfMQNZORJZlA7i5GjNhTPVLvYsa7F6TLwTlY3Vd0oJlEr9+zxBHom32SkVhXBhYDmxu1XBQ==","signatures":[{"sig":"MEUCIQDawUodjfphKrCkYiaqnagFZ62yyts8udRE5jPElGz9lwIgcLotEa60Jar7JvUrnjcQQy4nmKJ+iRqGXRLopp22lI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5537},"main":"replaygain.js","type":"module","audio":"./audio.js","types":"index.d.ts","engines":{"node":">=18"},"exports":{".":"./replaygain.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"funding":"https://github.com/sponsors/audiojs","gitHead":"54e53fc3ef0ffbcb2c428053a323bef99715a825","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/loudness.git","type":"git","directory":"packages/loudness-replaygain"},"_npmVersion":"11.12.1","description":"ReplayGain 2.0 — track gain to the −18 LUFS reference","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/loudness-lufs":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/loudness-replaygain_1.1.3_1783731628427_0.9208374316668277","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@audio/loudness-replaygain","version":"1.2.0","keywords":["audio","dsp","loudness","replaygain"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/loudness-replaygain@1.2.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audiojs/loudness#readme","bugs":{"url":"https://github.com/audiojs/loudness/issues"},"dist":{"shasum":"2a1c686850885f5fb6e6f711097f5f06bd2b643f","tarball":"https://registry.npmjs.org/@audio/loudness-replaygain/-/loudness-replaygain-1.2.0.tgz","fileCount":6,"integrity":"sha512-WHGllCViIsT248mHXDFW+HYAHBEPC+oRBdyTWZKedah2aMIE4JmfVFVk/mhRNROLnwdaMqPA+futoTYoZ4D+4g==","signatures":[{"sig":"MEUCIQCyFEOA7uusbm9bUnPW/ALsyxiJVaA88wIrZNZSOy4jtAIgIq3kMDc9Q+l2vUe/pBLijL7I5siKPbfGplSwNPV58bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7653},"main":"replaygain.js","type":"module","audio":"./audio.js","types":"index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.d.ts","default":"./replaygain.js"},"./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"funding":"https://github.com/sponsors/audiojs","gitHead":"095c2c3d8c55523252e4ac64a90aa98ee3616bfe","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audiojs/loudness.git","type":"git","directory":"packages/loudness-replaygain"},"_npmVersion":"11.12.1","description":"ReplayGain 2.0 — track gain to the −18 LUFS reference","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/loudness-lufs":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/loudness-replaygain_1.2.0_1787019264870_0.6936971509441636","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"_id":"@audio/loudness-replaygain@1.2.1","bugs":{"url":"https://github.com/audiojs/loudness/issues"},"dist":{"shasum":"b584d747fcdbf7a4595663c8bf4b72941588cba9","tarball":"https://registry.npmjs.org/@audio/loudness-replaygain/-/loudness-replaygain-1.2.1.tgz","fileCount":6,"integrity":"sha512-wBYBnKaShH8EnEKG4CkO/Ta+0JLOL9To0bmoDpDTKr4TgnMOP6Gn7QblOeN/xQIdkQ//a8mlm7lLAi7Jw/KMQw==","signatures":[{"sig":"MEQCICh5c0mEVp9vZVi6OwU4kltry4v1PRjpaFtdaFyPVi6vAiAWj4lu3o7gT1HRhYSo0hSHwLrJUSfApshtPQKv5gYYVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICBIyDe8Cb1X4Yvle9KOEofRaYvSXzPj6pPWDnmRAPZAAiAI+ewENtAKrqE56K5POhxgWwxMVV0aW920vPhXWdXs2Q=="}],"unpackedSize":7763},"main":"replaygain.js","name":"@audio/loudness-replaygain","type":"module","audio":"./audio.js","types":"index.d.ts","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"engines":{"node":">=18"},"exports":{".":{"types":"./index.d.ts","default":"./replaygain.js"},"./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"funding":"https://github.com/sponsors/audiojs","gitHead":"01f9389dd1c05baa5163bd983be2ab66f7b1675b","license":"MIT","version":"1.2.1","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"homepage":"https://github.com/audiojs/loudness#readme","keywords":["audio","dsp","loudness","replaygain"],"repository":{"url":"git+https://github.com/audiojs/loudness.git","type":"git","directory":"packages/loudness-replaygain"},"_npmVersion":"11.12.1","description":"ReplayGain 2.0 — track gain to the −18 LUFS reference","directories":{},"maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@audio/loudness-lufs":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/loudness-replaygain_1.2.1_1790633801615_0.5631077740667361"}}},"time":{"created":"2026-07-08T19:51:48.211Z","modified":"2026-09-28T22:16:41.899Z","1.0.0":"2026-07-08T19:51:48.554Z","1.1.0":"2026-07-09T22:13:25.219Z","1.1.1":"2026-07-10T00:58:06.814Z","1.1.2":"2026-07-10T16:42:25.679Z","1.1.3":"2026-07-11T01:00:28.579Z","1.2.0":"2026-08-18T02:14:25.022Z","1.2.1":"2026-09-28T22:16:41.711Z"},"bugs":{"url":"https://github.com/audiojs/loudness/issues"},"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","homepage":"https://github.com/audiojs/loudness#readme","keywords":["audio","dsp","loudness","replaygain"],"repository":{"url":"git+https://github.com/audiojs/loudness.git","type":"git","directory":"packages/loudness-replaygain"},"description":"ReplayGain 2.0 — track gain to the −18 LUFS reference","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/loudness-replaygain [![npm](https://img.shields.io/npm/v/@audio/loudness-replaygain)](https://www.npmjs.com/package/@audio/loudness-replaygain) [![MIT](https://img.shields.io/badge/MIT-%E0%A5%90-white)](https://github.com/krishnized/license)\n\nReplayGain 2.0 — track gain to the −18 LUFS reference\n\n```\nnpm install @audio/loudness-replaygain\n```\n\n```js\nimport replaygain from '@audio/loudness-replaygain'\n```\n\nTrack gain per [ReplayGain 2.0](https://wiki.hydrogenaud.io/index.php?title=ReplayGain_2.0_specification), which adopted BS.1770 integrated loudness as its measurement basis: `gain = -18 LUFS − measured`. Delegates the loudness measurement to `@audio/loudness-lufs` (ITU-R BS.1770-4 K-weighted gated loudness) and subtracts from the −18 LUFS RG2 reference.\n\n```js\nreplaygain(channels, { fs: 48000 })   // { gain, lufs, peak }\n```\n\n| Param | Default | |\n|---|---|---|\n| `fs` | `48000` | Sample rate, Hz |\n| `weights` | BS.1770-4 Table 3 | Per-channel gain array. Defaults by channel count assuming SMPTE/WAV/Web Audio order: 1/2ch all `1.0`, 4ch `[1,1,1.41,1.41]`, 5ch `[1,1,1,1.41,1.41]`, 6ch `[1,1,1,0,1.41,1.41]` (LFE excluded), 8ch `[1,1,1,0,1,1,1.41,1.41]` (7.1, Table 4). Other counts default to `1.0` per channel — pass explicitly for layouts in a different order |\n\nAccepts `Float32Array` (mono) or `Float32Array[]` (multichannel). Returns `{ gain, lufs, peak }` — `gain` in dB to reach −18 LUFS, `lufs` the measured integrated loudness, `peak` the linear sample peak — or `null` for silence / fully-gated input (same conditions under which `loudness-lufs` returns `null`).\n\n`peak` is the maximum absolute sample across every channel, including any the loudness measurement excludes (LFE), since it describes what clips on playback rather than weighted loudness. It is `0..1` for unclipped material and can exceed `1` for sources that overshoot. RG2 tags carry sample peak, which is what this is; for 4x-oversampled dBTP use [`@audio/loudness-truepeak`](https://www.npmjs.com/package/@audio/loudness-truepeak).\n\nThe pair is what makes the gain safe to apply: a player raising a track by `gain` dB should clamp so that `peak` stays below full scale.\n\n**Use when:** computing per-track/per-album normalization gain for players and tag writers targeting the RG2 −18 LUFS reference — `gain` and `peak` map directly onto the `REPLAYGAIN_TRACK_GAIN` / `REPLAYGAIN_TRACK_PEAK` tag pair.\n\nPer the ReplayGain 2.0 specification (BS.1770-based loudness, −18 LUFS reference), built on `@audio/loudness-lufs`.\n\n---\n\nPart of [@audio/loudness](https://github.com/audiojs/loudness) — the loudness family umbrella. Documented from the reference implementation.\n\nMIT © [audiojs](https://github.com/audiojs)\n","readmeFilename":"README.md"}