Commit Graph

2 Commits

Author SHA1 Message Date
f1fc803b0e style: clarify tempo unit labels to show millisecond durations
Update musical note unit labels to include "(ms)" suffix to make it
clear that values represent durations in milliseconds, not counts.

Before: "120 BPM = 2,000 Whole Notes" (confusing - sounds like a count)
After: "120 BPM = 2,000 Whole Note (ms)" (clear - it's a duration)

Changes:
- All note units now show "(ms)" in both singular and plural forms
- Triplet labels shortened for brevity (e.g., "Quarter Triplet (ms)")
- Makes the conversion meaning immediately clear to users

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 13:50:14 +01:00
75f895284f feat: add custom tempo/BPM converter with musical note units
Add comprehensive tempo conversion system supporting:
- BPM (beats per minute) as base unit
- Musical note durations: whole, half, quarter, eighth, sixteenth, thirty-second
- Dotted notes (1.5x duration): dotted-half, dotted-quarter, dotted-eighth, dotted-sixteenth
- Triplet notes (2/3 duration): quarter-triplet, eighth-triplet, sixteenth-triplet
- Time units: milliseconds, seconds, Hertz

Technical implementation:
- Created lib/tempo.ts with custom measure definition
- Extended lib/units.ts with tempo integration and reciprocal conversion logic
- Added tempo category color (orange #F97316) to globals.css
- Conversion formula: milliseconds per beat = 60000 / BPM
- Special handling for BPM ↔ time unit conversions using reciprocal relationship

The tempo converter integrates seamlessly with existing UX:
- Appears as "Tempo / BPM" category in category selector
- Supports all features: search, favorites, history, visual comparison, draggable bars
- Enables musicians to convert between BPM and note durations for tempo calculations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:53:50 +01:00