The layout for a bars-across, dB-DOWN plot, as pure maths: beat and seconds-at-a-tempo mappings across the time axis, bar/beat/subdivision tick enumerations, a one-sided dB axis with 0 dB pinned at the top and reduction drawn downward, gutter labels that print the axis floor as -∞ rather than a number, and a clamped ceiling line for a hard budget. The x axis is piano-roll-geometry's — built on the same createLaneLayout and pinned against it in the tests — so a beat grid, a drum lane and a piano roll place beat 3 at the same fraction of their plot. The dB axis is restated rather than reused because response-geometry's is a symmetric ±range around a centred zero, which is the right shape for a filter curve and the wrong one for gain reduction. No React, no DOM — testable in Node and safe to lay out on the server.
pnpm dlx shadcn@latest add "https://pluginui.com/r/core-beat-grid-geometry.json"No files included in this item.