Skip to content

feat: Media Player Visualizer (cava integration)#542

Open
ashlcx wants to merge 8 commits into
MalpenZibo:mainfrom
ashlcx:MediaPlayerVisualizer
Open

feat: Media Player Visualizer (cava integration)#542
ashlcx wants to merge 8 commits into
MalpenZibo:mainfrom
ashlcx:MediaPlayerVisualizer

Conversation

@ashlcx
Copy link
Copy Markdown

@ashlcx ashlcx commented Mar 23, 2026

Feature addition of a cava visualizer to media player. Only shows media is playing through the active player.
Includes configuration options for the following:

Field Type Default Description
show_visualizer bool false Enable or disable the visualizer.
visualizer_bar_count integer 8 Number of frequency bars to display.
visualizer_framerate integer 60 Target framerate for CAVA output.
visualizer_padding integer 3 Horizontal padding around the visualizer canvas (px).
visualizer_color color "Text" Bar colour — see Color below.
visualizer_channels string "Stereo" "Stereo" or "Mono".
visualizer_mono_option string "Average" Mono mix mode: "Average", "Left", or "Right".

Example Config:

[media_player]
show_visualizer = true
visualizer_bar_count = 32
visualizer_color =  { low = "#a6e3a1", mid = "#f9e2af", high = "#f38ba8" }
visualizer_channels = "Mono"
visualizer_mono_option = "Average"
image

Comment thread src/config.rs
Comment on lines +473 to +477
Gradient {
low: HexColor,
mid: Option<HexColor>,
high: HexColor,
},
Copy link
Copy Markdown
Owner

@MalpenZibo MalpenZibo Mar 30, 2026

Choose a reason for hiding this comment

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

What if we declare this like optional values? I mean, the user could simply specify gradient and use the base palette (Success -> warn (right now we use a weak danger for this, but after the iced update, there will be a dedicated value) -> danger) and only if necessary override the specific color.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants