Meter: proper clipping indicators
- Dedicated clip LED at the hot end (default on): lights when the
signal reaches clipThreshold (default max), holds for clipHold ms or
latches until clicked ('latch'); clipColor, onClip callback,
data-clipped root attribute, data-part=clip for CSS
- clipValue prop: separate signal for clip detection so the bar can
show RMS while the LED watches sample peaks, like real meters
- Synth: analyser loop now computes sample peaks alongside RMS and
feeds them to the clip detector - overdriving the synth genuinely
trips the LED
- Gallery meter demo throws occasional hot transients to exercise it;
API docs and README updated
This commit is contained in:
parent
d54eecaeaf
commit
509032f257
5 changed files with 88 additions and 11 deletions
|
|
@ -108,9 +108,11 @@ const MeterDemo: React.FC = () => {
|
|||
let t = 0;
|
||||
const id = setInterval(() => {
|
||||
t += 0.09;
|
||||
// Occasional hot transient so the clip LED gets to do its job.
|
||||
const spike = Math.random() < 0.04 ? 9 : 0;
|
||||
setLevels([
|
||||
-13 + Math.sin(t) * 6 + Math.random() * 7,
|
||||
-14 + Math.sin(t * 1.3 + 1) * 6 + Math.random() * 7,
|
||||
-13 + Math.sin(t) * 6 + Math.random() * 7 + spike,
|
||||
-14 + Math.sin(t * 1.3 + 1) * 6 + Math.random() * 7 + spike,
|
||||
]);
|
||||
}, 90);
|
||||
return () => clearInterval(id);
|
||||
|
|
@ -341,7 +343,7 @@ export const Gallery: React.FC = () => (
|
|||
</div>
|
||||
</Card>
|
||||
|
||||
<Card title="Meter" desc="Read-only LED metering with peak hold — the display sibling of LEDFader." tag="<Meter peakHold={1200} />">
|
||||
<Card title="Meter" desc="Read-only LED metering with peak hold and a latching clip LED — click it to clear." tag="<Meter clipHold={1500} />">
|
||||
<MeterDemo />
|
||||
</Card>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue