# Ideas

## Playback Features

- **Crossfade** — Configurable crossfade between tracks (e.g. 3s overlap with volume ramp), building on the existing gapless preloading pipeline.
- **A/B Loop** — Mark two points and loop between them. Useful for musicians and language learners.
- **Playback speed control** — 0.5x–2.0x, especially useful for podcasts.
- **Sleep timer** — Auto-pause/quit after N minutes.
- **ReplayGain / Volume normalization** — Read ReplayGain tags and auto-adjust volume so all tracks play at similar levels.

## Integrations

- **Last.fm scrobbling** — Scrobble plays to Last.fm (currently only scrobbles to Navidrome).
- **Discord Rich Presence** — Show "Listening to X by Y" in Discord via IPC socket.
- **Tidal / Deezer provider** — Expand beyond Spotify/YouTube to other streaming services.
- **Podcast RSS feeds** — Subscribe to RSS feeds, track episode progress, resume where you left off.
- **Waybar/Polybar status output** — Write now-playing to a file or socket so desktop bars can display it (beyond MPRIS).

## UI / UX

- **Album art** — Display cover art in terminals that support images (Kitty graphics protocol, Sixel).
- ~~**Recently played / history**~~ — Done. Persisted to `~/.config/cliamp/history.toml`, browsable as the virtual "Recently Played" entry in the Local Playlists provider. See [docs/history.md](https://developers.contextowl.co/w/cliamp/recently-played).
- **Favorites / quick bookmark** — Star a track with a single key, stored separately from playlists.
- **M3U/PLS playlist export** — Export playlists to standard formats (currently only imports).

## Audio Engine

- **Audio effects** — Reverb, stereo widening, or spatial audio as additional DSP processors in the pipeline.
- **Headless / daemon mode** — Run without TUI, controlled via a Unix socket or REST API for scripting and integration.
- **Chromecast / DLNA casting** — Cast the current stream to network speakers.

## Developer / Quality

- **More tests** — Expand test coverage beyond jump, seek, and config tests. The player pipeline and playlist logic are very testable.
- **Plugin system** — Let users write providers or visualizers as Go plugins or external processes.
