Skip to content

feat: Album art visualizer, universal macOS binary, Oklch improvements#4

Merged
WeekendSuperhero merged 6 commits intomainfrom
weekendsuperhero/oklch-return
Mar 17, 2026
Merged

feat: Album art visualizer, universal macOS binary, Oklch improvements#4
WeekendSuperhero merged 6 commits intomainfrom
weekendsuperhero/oklch-return

Conversation

@WeekendSuperhero
Copy link
Collaborator

@WeekendSuperhero WeekendSuperhero commented Mar 17, 2026

Summary

  • Album art visualizer: Press N in visualizer view to extract colors from the currently playing track's album art (Spotify and Apple Music via ScriptingBridge + osascript fallback). Auto-updates on song change via background watcher thread.
  • TUI enhancements: Shows "Now playing: track title" and color swatches of the active palette in the visualizer view.
  • Color extraction: Uses auto-palette crate with Oklch lightness filtering to extract the 4 most dominant album art colors, filtering out near-black colors that can't be represented on panels.
  • Even color distribution: Palette colors spread evenly across all panels instead of padding the last color to fill remaining slots.
  • Universal macOS binary: Added Makefile with make universal target (lipo x86_64 + aarch64) and updated CI to build universal binary on macOS.
  • Pre-commit hook: Added .githooks/pre-commit running cargo fmt + cargo clippy to catch issues before they reach CI.

Test plan

  • Play a track on Spotify, enter visualizer (V), press N — verify album art colors appear on panels and in TUI
  • Play a track on Apple Music, press N — verify artwork extracted via ScriptingBridge or osascript fallback
  • Change songs while album art mode is active — verify colors auto-update within ~3 seconds
  • Press a number key (1-0) to switch back to a named palette — verify watcher stops
  • Verify color swatches display correctly in TUI for both named and album art palettes
  • Run make universal on macOS — verify fat binary is produced
  • CI passes on all platforms (ubuntu, macos, windows)

WeekendSuperhero and others added 3 commits March 16, 2026 21:27
…r distribution

- Add now-playing integration via ScriptingBridge (Spotify, Apple Music)
  with osascript fallback — extracts album art colors for the visualizer
- Press N in visualizer view to use album art colors; auto-updates on
  song change via background watcher thread
- Show track title and color swatches in the TUI visualizer view
- Use auto-palette crate with Oklch lightness filtering to extract the
  4 most dominant colors, skipping near-black
- Distribute palette colors evenly across panels instead of padding
  with the last color
- Add Makefile with universal binary target (lipo x86_64 + aarch64)
- Update CI to build universal binary on macOS
- Fix cargo fmt formatting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Convert module doc to //! style in now_playing.rs
- Collapse nested if statements (audio.rs, utils.rs, now_playing.rs)
- Use sort_by_key with Reverse instead of sort_by
- Use &mut [f32] instead of &mut Vec<f32> in visualizer
- Use is_err() instead of if let Err(_)
- Add .githooks/pre-commit that runs cargo fmt + clippy

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@WeekendSuperhero WeekendSuperhero changed the title Weekendsuperhero/oklch return feat: Album art visualizer, universal macOS binary, Oklch improvements Mar 17, 2026
WeekendSuperhero and others added 3 commits March 17, 2026 00:50
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@WeekendSuperhero WeekendSuperhero merged commit 50f666f into main Mar 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant