Write your own shaders for cava!
cava can use SDL/OpenGL to render custom glsl shaders.
The shader files are loaded from the folder $HOME/.config/cava/shaders
under [output] set method to 'sdl_glsl'
use the config options vertex_shader and fragment_shader to select file.
look in the bar_spectrum.frag shader for how the shaders interact with cava.
the custom shaders will use some of the same config parameters as the other output modes, like number of bars.
feel free to commit your own shaders (or improvements to the sdl_glsl output mode) and create pull request.
To add a shader to the cava repo do the following:
- Copy or create your shader in the
$HOME/.config/cava/shadersfolder and load it via the config file. - When done writing the shader copy it to the
output/shadersfolder in the cava source code - In
config.c:- Increment
NUMBER_OF_SHADERSdefine - Add it to the
INCTXT,IDRlists as well as thedefault_shader_dataand thedefault_shader_namearrays at the top of theconfig.c. The orders of the arrays is important! There are twodefault_shader_dataarrays one for windows and one for linux.
- Increment
- Add it to
cava_win/cava/cava.rc
The shader will then be compiled into the bionary and written to the $HOME/.config/cava/shaders folder on runtime (if it is not already there).