Conversation
…enhances tempo control and MIDI export features, and improves documentation with new API examples.
…xport options, settings UI, and refactoring of the settings modal, while removing console logs and stabilizing tests.
There was a problem hiding this comment.
Pull request overview
This is a major release (v0.3.0) that introduces significant new features including solo mode for single MIDI visualization, tempo control improvements, MIDI export functionality, and VS Code extension support. The PR includes extensive refactoring of settings UI, tempo handling, and audio synchronization.
Key Changes
- Added Appearance API and solo mode for simplified single-file MIDI visualization
- Implemented tempo control with popover UI and MIDI export with File System Access API support
- Enhanced piano roll with pitch hover indicators and improved visual feedback
- Refactored settings modal and tempo handling across the codebase
Reviewed changes
Copilot reviewed 53 out of 55 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Version bumped to 0.3.0, updated Vite dependency, changed sideEffects to true |
| CHANGELOG.md | New file documenting release history and changes |
| README.md | Enhanced documentation with API examples, VS Code extension info, and citation |
| src/lib/core/midi/tempo-event-bus.ts | New event bus for tempo synchronization solving race conditions |
| src/lib/core/file/midi-export.ts | New MIDI export functionality with File System Access API support |
| src/lib/components/ui/controls/tempo.ts | Refactored to popover-based BPM control |
| src/lib/components/ui/controls/volume.ts | Refactored to vertical popup slider design |
| src/lib/components/player/wave-roll/player.ts | Added Appearance API and solo mode support |
| src/lib/core/visualization/piano-roll/piano-roll.ts | Added pitch hover indicator and improved piano key visuals |
| test/* | Updated and stabilized tests for new functionality |
| .github/workflows/release.yml | New automated release workflow from tags |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| // }); | ||
| } catch {} | ||
|
|
||
| const prevBpm = this.state.tempo; |
There was a problem hiding this comment.
Unused variable prevBpm.
| }); | ||
|
|
||
| it("should clamp end to duration when end exceeds duration", () => { | ||
| const result = loopManager.setLoopPoints(2, 15, 10, defaultState as any); |
There was a problem hiding this comment.
Unused variable result.
| }); | ||
|
|
||
| it("should set end to duration when end <= start", () => { | ||
| const result = loopManager.setLoopPoints(5, 3, 10, defaultState as any); |
There was a problem hiding this comment.
Unused variable result.
| }); | ||
|
|
||
| it("should clamp B to duration", () => { | ||
| const result = loopManager.setLoopPoints(null, 15, 10, defaultState as any); |
There was a problem hiding this comment.
Unused variable result.
Added
wave-roll-solo) for viewing MIDI files directly in the editorChanged
Refactored