modern config for cava

This commit is contained in:
2026-02-18 14:58:56 +01:00
parent faf7dfe345
commit 890a0a2ed9

View File

@@ -1,7 +1,13 @@
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. ## Configuration file for CAVA.
## Modified by benChile for Mabox
# Lines starting with ; show config parameters and default values.
# Remove the ; to change parameters.
[general] [general]
# Auto reload config if the configuration file has changed. 1 = on, 0 = off.
; live-config = 0
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 # Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
; mode = normal ; mode = normal
@@ -16,52 +22,82 @@ framerate = 144
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. # Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
# 200 means double height. Accepts only non-negative values. # 200 means double height. Accepts only non-negative values.
sensitivity = 100 ; sensitivity = 100
# The number of bars (0-200). 0 sets it to auto (fill up console). # The number of bars (0-512). 0 sets it to auto (fill up console).
# Bars' width and space between bars in number of characters. # Bars' width and space between bars in number of characters.
; bars = 0 ; bars = 0
bar_width = 3 bar_width = 2
bar_spacing = 1 bar_spacing = 1
# bar_height is only used for output in "noritake" format
; bar_height = 32
# For SDL width and space between bars is in pixels, defaults are:
; bar_width = 20
; bar_spacing = 5
# sdl_glsl have these default values, they are only used to calculate max number of bars.
; bar_width = 1
; bar_spacing = 0
# ceter bars in terminal, if there is space.
; center_align = 1
# max height of bars in terminal, in percent of terminal height.
; max_height = 100
# Lower and higher cutoff frequencies for lowest and highest bars # Lower and higher cutoff frequencies for lowest and highest bars
# the bandwidth of the visualizer. # the bandwidth of the visualizer.
# Note: there is a minimum total bandwidth of 43Mhz x number of bars. # Note: there is a minimum total bandwidth of 43Mhz x number of bars.
# Cava will automatically increase the higher cutoff if a too low band is specified. # Cava will automatically increase the higher cutoff frequency if needed to satisfy the minimum bandwidth.
; lower_cutoff_freq = 50 ; lower_cutoff_freq = 50
; higher_cutoff_freq = 10000 ; higher_cutoff_freq = 10000
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and # Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
# only check for input once per second. Cava will wake up once input is detected. 0 = disable. # only check for input once per second. Cava will wake up once input is detected. 0 = disable.
sleep_timer = 4 ; sleep_timer = 0
[input] [input]
# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' # Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem'
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. # Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with.
# On Mac it defaults to 'portaudio' or 'fifo'
# On windows this is automatic and no input settings are needed.
# #
# All input methods uses the same config variable 'source' # All input methods uses the same config variable 'source'
# to define where it should get the audio. # to define where it should get the audio.
# #
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink # For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). # (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
# #
# For pipewire 'source' will be the object name or object.serial of the device to capture from.
# Both input and output devices are supported. To capture the monitor source of a sink node, append '.monitor' to the sink's object name.
#
# For alsa 'source' will be the capture device. # For alsa 'source' will be the capture device.
# For fifo 'source' will be the path to fifo-file. # For fifo 'source' will be the path to fifo-file.
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address # For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
method = pulse #
# For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'.
# README.md contains further information on how to setup CAVA for sndio.
#
# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device.
# README.md contains further information on how to setup CAVA for OSS on FreeBSD.
#
# For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'.
# README.md contains further information on how to setup CAVA for JACK.
#
; method = pulse
; source = auto ; source = auto
method = pipewire
source = auto
; method = alsa ; method = alsa
; source = hw:Loopback,1 ; source = hw:Loopback,1
; method = fifo ; method = fifo
; source = /tmp/mpd.fifo ; source = /tmp/mpd.fifo
; sample_rate = 44100
; sample_bits = 16
; method = shmem ; method = shmem
; source = /squeezelite-AA:BB:CC:DD:EE:FF ; source = /squeezelite-AA:BB:CC:DD:EE:FF
@@ -69,30 +105,93 @@ method = pulse
; method = portaudio ; method = portaudio
; source = auto ; source = auto
; method = sndio
; source = default
; method = oss
; source = /dev/dsp
; method = jack
; source = default
# The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods:
# sample_rate: fifo, pipewire, sndio, oss
# sample_bits: fifo, pipewire, sndio, oss
# channels: sndio, oss, jack
# autoconnect: jack
# Other methods ignore these settings.
# For pipewire, sample_rate will default to 48000, for all other input methods, sample_rate will default to 44100.
#
# For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported
# by the chosen audio device, the device will use other supported values instead.
# Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it
# will use 44100, 16 and 1.
#
#
# The 'pipewire' input method has three options to control linking and mixing:
# active: Force the node to always process. Useful for monitoring sources when no other application is active.
# remix: Allow pipewire to remix audio channels to match cava's channel count. Useful for surround sound.
# virtual: Set the node to virtual, to avoid recording notifications from the DE.
#
; sample_rate = 44100
; sample_bits = 16
; channels = 2
; autoconnect = 2
; active = 1
; remix = 1
; virtual = 1
[output] [output]
# Output method. Can be 'ncurses', 'noncurses' or 'raw'. # Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl'
# 'noncurses' uses a custom framebuffer technique and draws only changes # or 'sdl_glsl'.
# from frame to frame. 'ncurses' is default if supported # 'noncurses' (default) uses a buffer and cursor movements to only print
# changes from frame to frame in the terminal. Uses less resources and is less
# prone to tearing (vsync issues) than 'ncurses'.
# #
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data # 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
# stream of the bar heights that can be used to send to other applications. # stream of the bar heights that can be used to send to other applications.
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. # 'raw' defaults to 1024 bars stereo (512 bars mono), which can be adjusted in the 'bars' option above.
method = ncurses #
# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display
# in graphic mode. It only support the 3000 series graphical VFDs for now.
#
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or
# use one of the predefined ones.
; method = noncurses
# Orientation of the visualization. Can be 'bottom', 'top', 'left', 'right' or
# 'horizontal'. Default is 'bottom'. 'left and 'right' are only supported on sdl
# and ncruses output. 'horizontal' (bars go up and down from center) is only supported
# on noncurses output.
# Note: many fonts have weird or missing glyphs for characters used in orientations
# other than 'bottom', which can make output not look right.
; orientation = bottom
# Visual channels. Can be 'stereo' or 'mono'. # Visual channels. Can be 'stereo' or 'mono'.
# 'stereo' mirrors both channels with low frequencies in center. # 'stereo' mirrors both channels with low frequencies in center.
# 'mono' outputs left to right lowest to highest frequencies. # 'mono' outputs left to right lowest to highest frequencies.
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. # 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
# set 'reverse' to 1 to display frequencies the other way around.
channels = mono channels = mono
mono_option = average mono_option = average
; reverse = 0
# Raw output target. A fifo will be created if target does not exist. # Only valid if orientation is set to 'horizontal'.
# Set 'horizontal_stereo' to 1 to have left channel bars at top and right channel at bottom.
# Set 'left_bottom' to 0 to have right channel at top and left channel at bottom.
; horizontal_stereo = 0
; left_bottom = 1
# Raw output target.
# On Linux, a fifo will be created if target does not exist.
# On Windows, a named pipe will be created if target does not exist.
; raw_target = /dev/stdout ; raw_target = /dev/stdout
# Raw data format. Can be 'binary' or 'ascii'. # Raw data format. Can be 'binary' or 'ascii'.
data_format = binary ; data_format = binary
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
; bit_format = 16bit ; bit_format = 16bit
@@ -105,19 +204,79 @@ data_format = binary
; bar_delimiter = 59 ; bar_delimiter = 59
; frame_delimiter = 10 ; frame_delimiter = 10
# sdl window size and position. -1,-1 is centered.
; sdl_width = 1024
; sdl_height = 512
; sdl_x = -1
; sdl_y= -1
; sdl_full_screen = 0
# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none'
# 'frequency' displays the lower cut off frequency of the bar above.
# Only supported on ncurses and noncurses output.
; xaxis = none
# enable synchronized sync. 1 = on, 0 = off
# removes flickering in alacritty terminal emulator.
# defaults to off since the behaviour in other terminal emulators is unknown
; synchronized_sync = 0
# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders
; vertex_shader = pass_through.vert
# Default spectrum shader
# default value: bar_spectrum.frag
; fragment_shader = bar_spectrum.frag
# other styles shaders
; fragment_shader = eye_of_phi.frag
; fragment_shader = northern_lights.frag
; fragment_shader = spectrogram.frag
; fragment_shader = winamp_line_style_spectrum.frag
# Orion shaders (use with: method = sdl_glsl)
# Static Orion
; fragment_shader = orion_circle.frag
# Rotating Orion
; fragment_shader = orion_circle_rotate.frag
# Orion saturn subring
; fragment_shader = orion_saturn_subring.frag
# Orion saturn core
; fragment_shader = orion_saturn_core.frag
# For glsl output mode, keep rendering even if no audio. 1 = on, 0 = off. Default: 0
# Enable for animated shaders so time-based effects keep updating.
; continuous_rendering = 0
# SDL_GLSL only: gain applied to bar amplitudes before sending to shaders, in percent. Default: 100
# 0 = mute, 100 = unchanged, >100 = amplify (shader input is clamped to the [0..1] range).
; sdl_glsl_gain = 100
# disable console blank (screen saver) in tty. 1 = on, 0 = off. Default: 0
# (Not supported on FreeBSD)
; disable_blanking = 0
# show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off
; show_idle_bar_heads = 1
# show waveform instead of frequency spectrum, 1 = on, 0 = off
; waveform = 0
[color] [color]
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. # a terminal that can change color definitions such as Gnome-terminal or rxvt.
# if supported, ncurses mode will be forced on if user defined colors are used.
# default is to keep current terminal color # default is to keep current terminal color
; background = white ; background = default
foreground = '#DDDDDD' foreground = '#00FF00'
# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, # SDL and sdl_glsl only support hex code colors, these are the default:
; background = '#111111'
; foreground = '#33ffff'
# Gradient mode, only hex defined colors are supported,
# background must also be defined in hex or remain commented out. 1 = on, 0 = off. # background must also be defined in hex or remain commented out. 1 = on, 0 = off.
# You can define as many as 8 different colors. They range from bottom to top of screen # You can define as many as 8 different colors. They range from bottom to top of screen
gradient = 1 gradient = 1
@@ -127,30 +286,69 @@ gradient_color_2 = '#FFFF00'
gradient_color_3 = '#FF0000' gradient_color_3 = '#FF0000'
; gradient = 0
; gradient_color_1 = '#59cc33'
; gradient_color_2 = '#80cc33'
; gradient_color_3 = '#a6cc33'
; gradient_color_4 = '#cccc33'
; gradient_color_5 = '#cca633'
; gradient_color_6 = '#cc8033'
; gradient_color_7 = '#cc5933'
; gradient_color_8 = '#cc3333'
# Horizontal is only supported on noncurses output.
# Only one color will be calculated per bar.
; horizontal_gradient = 0
; horizontal_gradient_color_1 = '#c45161'
; horizontal_gradient_color_2 = '#e094a0'
; horizontal_gradient_color_3 = '#f2b6c0'
; horizontal_gradient_color_4 = '#f2dde1'
; horizontal_gradient_color_5 = '#cbc7d8'
; horizontal_gradient_color_6 = '#8db7d2'
; horizontal_gradient_color_7 = '#5e62a9'
; horizontal_gradient_color_8 = '#434279'
# If both vertical and horizontal gradient is enabled, vertical will be blended in this direction.
# Can be 'up', 'down', 'left' or 'right'. 'up' means the vertical gradient will be blended in from
# bottom to top. I.e. the bottom will be only the horizontal
# and top will be only the color of the vertical gradient.
; blend_direction = 'up'
# use theme file instead of defining colors in this file
# themes are located in $HOME/.config/cava/themes
; theme = 'none'
[smoothing] [smoothing]
# Percentage value for integral smoothing. Takes values from 0 - 100. # Percentage value for integral smoothing. Takes values from 0 - 100.
# Higher values means smoother, but less precise. 0 to disable. # Higher values means smoother, but less precise. 0 to disable.
integral = 70 # DEPRECATED as of 0.8.0, use noise_reduction instead
; integral = 77
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. # Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
monstercat = 1 ; monstercat = 0
; waves = 0 ; waves = 0
# Set gravity percentage for "drop off". Higher values means bars will drop faster. # Set gravity percentage for "drop off". Higher values means bars will drop faster.
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". # Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
gravity = 400 # DEPRECATED as of 0.8.0, use noise_reduction instead
; gravity = 100
# In bar height, bars that would have been lower that this will not be drawn. # In bar height, bars that would have been lower that this will not be drawn.
# DEPRECATED as of 0.8.0
; ignore = 0 ; ignore = 0
# Noise reduction, int 0 - 100. default 77
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
# 100 will be very slow and smooth, 0 will be fast but noisy.
noise_reduction = 77
[eq] [eq]
# This one is tricky. You can have as much keys as you want. # This one is tricky. You can have as much keys as you want.
# Remember to uncomment more then one key! More keys = more precision. # Remember to uncomment more than one key! More keys = more precision.
# Look at readme.md on github for further explanations and examples. # Look at readme.md on github for further explanations and examples.
; 1 = 1 # bass ; 1 = 1 # bass
; 2 = 1 ; 2 = 1