velxio/frontend/src
ciegovolador b06f500ad6 fix(sim): mature the buzzer — per-note oscillators, sim-time scheduling, ramps + metronome tests
Builds on the previous commit; reworks the buzzer audio for glitch-free,
cross-browser playback and adds a metronome quality suite.

- Per-note oscillators with short attack/release ramps, instead of one
  long-lived oscillator gated by gain: a fresh fixed frequency per note and no
  gain/frequency automation on a persistent node — Firefox in particular clicks
  and glitches the pitch otherwise.
- Schedule onsets by their SIMULATED inter-onset spacing (exact, even) with a
  light latency hold, instead of a wall-clock average. Turning a control (BPM,
  K…) re-locks immediately and the rhythm stays even — no bursts, no overlaps,
  no audio drifting away from the display.
- Place each note-off relative to its own onset, preserving the exact click
  length from the simulation (the onset scheduler now tracks onsets only).
- Poll PWM every 256 cycles (was 64): finer than any audible pulse, lighter on
  the frame loop.
- New src/__tests__/buzzer-metronome.test.ts: drives the buzzer as a metronome
  against a controllable audio clock and asserts even spacing, one oscillator
  per click with no overlap, correct pitch per metric level, burst absorption,
  and a clean re-lock on tempo change.

All simulation-parts + metronome tests pass (57).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 09:22:57 -03:00
..
__pro_stub__
…
__tests__ fix(sim): mature the buzzer — per-note oscillators, sim-time scheduling, ramps + metronome tests 2026-06-09 09:22:57 -03:00
assets
…
components feat(library-manager): collapse to a single unified tab with state-aware row actions 2026-06-08 15:51:34 +02:00
data feat(examples): declare library manifests for the two lib-using AVR examples (P2.4-arduino examples) 2026-06-08 04:24:02 +02:00
desktop
…
hooks
…
i18n chore(pricing): free tier shows 20 daily AI credits (up to 600/month) 2026-06-02 05:37:57 +02:00
lib
…
pages feat(library-manifest): per-board manifests + autocomplete 2026-06-07 06:07:48 +02:00
services feat(P2.2c): show per-user custom libs in the Library Manager + autocomplete 2026-06-07 19:58:13 +02:00
simulation fix(sim): mature the buzzer — per-note oscillators, sim-time scheduling, ramps + metronome tests 2026-06-09 09:22:57 -03:00
store feat(library-manifest): per-board manifests + autocomplete 2026-06-07 06:07:48 +02:00
tokens
…
types feat(library-manifest): per-board manifests + autocomplete 2026-06-07 06:07:48 +02:00
utils feat(library-manifest): per-board manifests + autocomplete 2026-06-07 06:07:48 +02:00
velxio-elements
…
App.css
…
App.tsx
…
entry-server.tsx
…
index.css
…
main.tsx feat(motors): fix stepper rotation + add A4988 driver (real Fritzing SVG) 2026-05-31 16:28:34 -03:00
seoRoutes.ts
…
vite-env.d.ts
…