Skip to content

release v0.3.0#9

Merged
crescent-stdio merged 17 commits intomainfrom
feature/wave-roll-solo-vsc
Dec 2, 2025
Merged

release v0.3.0#9
crescent-stdio merged 17 commits intomainfrom
feature/wave-roll-solo-vsc

Conversation

@crescent-stdio
Copy link
Owner

Added

  • Appearance API and solo mode for single MIDI visualization
  • Tempo control with popover input for precise BPM adjustment
  • Flexible MIDI export options
  • Pitch hover indicator to piano roll
  • VS Code extension support (wave-roll-solo) for viewing MIDI files directly in the editor
  • GitHub Actions workflow for automated release creation from tags

Changed

  • Improved MIDI export and settings UI
  • Improved audio synchronization and tempo handling
  • Improved tempo handling for multi-MIDI playback
  • Enhanced piano roll pitch hover and piano key visuals
  • Improved UI controls and audio handling

Refactored

  • Refactored settings modal
  • Removed console logs and stabilized the tests

@crescent-stdio crescent-stdio self-assigned this Dec 2, 2025
@crescent-stdio crescent-stdio added enhancement An improvement to an existing feature. feature A new feature or request core Issues related to core logic and data structures labels Dec 2, 2025
@crescent-stdio crescent-stdio merged commit 594b496 into main Dec 2, 2025
5 checks passed
@crescent-stdio crescent-stdio deleted the feature/wave-roll-solo-vsc branch December 2, 2025 06:44
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused variable prevBpm.

Copilot uses AI. Check for mistakes.
});

it("should clamp end to duration when end exceeds duration", () => {
const result = loopManager.setLoopPoints(2, 15, 10, defaultState as any);
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused variable result.

Copilot uses AI. Check for mistakes.
});

it("should set end to duration when end <= start", () => {
const result = loopManager.setLoopPoints(5, 3, 10, defaultState as any);
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused variable result.

Copilot uses AI. Check for mistakes.
});

it("should clamp B to duration", () => {
const result = loopManager.setLoopPoints(null, 15, 10, defaultState as any);
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused variable result.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Issues related to core logic and data structures enhancement An improvement to an existing feature. feature A new feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant