Skip to content

feat(music): music speed, an even volume curve and optional crossfade - #184

Merged
A-EDev merged 6 commits into
mainfrom
feat/music-audio-controls
Oct 25, 2026
Merged

A-EDev merged 6 commits into
mainfrom
feat/music-audio-controls

Conversation

@A-EDev

@A-EDev A-EDev commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

Part 7 of 22 of the music player plan (Android parity). Stacked on feat/music-equalizer (PR #183); review and merge in order.

  • Music speed 0.5x to 2x with the pitch kept (music_playback_speed); on Linux the rate is written only when it changes.
  • The volume slider follows a perceptual curve, with a one-time conversion of the saved value.
  • Loudness is measured in Android's order (perceptual first) and never cuts more than 20 dB.
  • Optional crossfade, 1 to 12 s, off by default; same-album pairs and repeat-one stay gapless.
  • The music audio graph is built on the next play instead of at settings load.

Related issue

Change type

  • Bug fix
  • Feature
  • Refactor or maintenance
  • Documentation
  • Build, packaging, or CI

Validation

  • pnpm test: 509 tests passed, 0 failed
  • pnpm build: passed
  • cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check: clean
  • cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets --all-features: no new warnings against main (compared at the top of the stack)
  • cargo test --manifest-path src-tauri/Cargo.toml --all-targets --all-features: 784 passed, 0 failed (all sync_* suites included)
  • I smoke-tested the affected desktop behavior. macOS, combined build: speed 1.5 reaches the element with pitch kept.
  • OS/device: device testing by the owner. The checks above ran on macOS 27 (Apple Silicon MacBook Pro, 120 Hz) in a dev build of the whole stack; Windows and Linux were not run.

Screenshots or recordings

Risk and compatibility

  • No new secrets, private data, telemetry, or broad Tauri permissions were introduced.
  • User-facing documentation was updated where needed (changelog entry in v0.1.0-beta3.txt).
  • Dependency and lockfile changes are intentional and limited to this PR. No dependency changes.
  • Breaking changes and upgrade steps are clearly documented. No breaking changes.

Copilot AI balanced review requested due to automatic review settings October 24, 2026 14:18

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@A-EDev
A-EDev force-pushed the feat/music-equalizer branch from 772ade2 to 3cdd23c Compare October 25, 2026 19:30
@A-EDev
A-EDev force-pushed the feat/music-audio-controls branch from 3a99c11 to c1fe821 Compare October 25, 2026 19:30
@A-EDev
A-EDev changed the base branch from feat/music-equalizer to main October 25, 2026 19:30
@A-EDev
A-EDev changed the base branch from main to perf/music-frame-discipline October 25, 2026 19:31
@A-EDev
A-EDev changed the base branch from perf/music-frame-discipline to main October 25, 2026 19:31
@A-EDev
A-EDev merged commit 9187db6 into main Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants