diff options
| author | JaKooLit <jimmielovejay@gmail.com> | 2024-05-10 02:03:31 +0900 |
|---|---|---|
| committer | JaKooLit <jimmielovejay@gmail.com> | 2024-05-10 02:03:31 +0900 |
| commit | d7ff1c1dea16619a38f35536a5c00685d848abce (patch) | |
| tree | f5c9ea6aeca1fb713d31a1d2d3069c5b9830ddc0 /config/cava | |
| parent | a3994cc8edd41fa42dfe1a6f22754dcdcc3d1e51 (diff) | |
Initial Push - Moving to Wallust from Pywal
Diffstat (limited to 'config/cava')
| -rw-r--r-- | config/cava/config | 368 | ||||
| -rw-r--r-- | config/cava/shaders/northern_lights.frag | 34 |
2 files changed, 218 insertions, 184 deletions
diff --git a/config/cava/config b/config/cava/config index 36e47610..be63be12 100644 --- a/config/cava/config +++ b/config/cava/config @@ -1,184 +1,184 @@ -# Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. - - -[general] - -# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 -; mode = normal - -# Accepts only non-negative values. -; framerate = 60 - -# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off -# new as of 0.6.0 autosens of low values (dynamic range) -# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 -; autosens = 1 -; overshoot = 20 - -# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. -# 200 means double height. Accepts only non-negative values. -; sensitivity = 100 - -# The number of bars (0-200). 0 sets it to auto (fill up console). -# Bars' width and space between bars in number of characters. -; bars = 0 -; bar_width = 2 -; bar_spacing = 1 - -# For SDL width and space between bars is in pixels, defaults are: -; bar_width = 20 -; bar_spacing = 5 - - -# Lower and higher cutoff frequencies for lowest and highest bars -# the bandwidth of the visualizer. -# 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. -; lower_cutoff_freq = 50 -; higher_cutoff_freq = 10000 - - -# 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. -; sleep_timer = 0 - - -[input] - -# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' -# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. -# -# All input methods uses the same config variable 'source' -# 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 -# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). -# -# For alsa 'source' will be the capture device. -# 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 -method = pulse -source = auto - -; method = alsa -; source = hw:Loopback,1 - -; method = fifo -; source = /tmp/mpd.fifo -; sample_rate = 44100 -; sample_bits = 16 - -; method = shmem -; source = /squeezelite-AA:BB:CC:DD:EE:FF - -; method = portaudio -; source = auto - - -[output] - -# Output method. Can be 'ncurses', 'noncurses', 'raw' or 'sdl'. -# 'noncurses' uses a custom framebuffer technique and prints only changes -# from frame to frame in the terminal. 'ncurses' is default if supported. -# -# '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. -# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. -# -# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. -; method = ncurses - -# Visual channels. Can be 'stereo' or 'mono'. -# 'stereo' mirrors both channels with low frequencies in center. -# 'mono' outputs left to right lowest to highest frequencies. -# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. -; channels = stereo -; mono_option = average - -# Raw output target. A fifo will be created if target does not exist. -; raw_target = /dev/stdout - -# Raw data format. Can be 'binary' or 'ascii'. -; data_format = binary - -# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). -; bit_format = 16bit - -# Ascii max value. In 'ascii' mode range will run from 0 to value specified here -; ascii_max_range = 1000 - -# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. -# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). -; bar_delimiter = 59 -; frame_delimiter = 10 - -# sdl window size and position. -1,-1 is centered. -; sdl_width = 1000 -; sdl_height = 500 -; sdl_x = -1 -; sdl_y= -1 - -[color] - -# 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 -# ncurses output method and 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 -; background = default -; foreground = default - -# SDL only support hex code colors, these are the default: -; background = '#111111' -; foreground = '#33cccc' - - -# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, -# 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 -# In the [color] section - -[color] - -gradient = 1 - -gradient_color_1 = '#94e2d5' -gradient_color_2 = '#89dceb' -gradient_color_3 = '#74c7ec' -gradient_color_4 = '#89b4fa' -gradient_color_5 = '#cba6f7' -gradient_color_6 = '#f5c2e7' -gradient_color_7 = '#eba0ac' -gradient_color_8 = '#f38ba8' - - - -[smoothing] - -# Percentage value for integral smoothing. Takes values from 0 - 100. -# Higher values means smoother, but less precise. 0 to disable. -; integral = 77 - -# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. -; monstercat = 0 -; waves = 0 - -# 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". -; gravity = 100 - - -# In bar height, bars that would have been lower that this will not be drawn. -; ignore = 0 - - -[eq] - -# This one is tricky. You can have as much keys as you want. -# Remember to uncomment more then one key! More keys = more precision. -# Look at readme.md on github for further explanations and examples. -; 1 = 1 # bass -; 2 = 1 -; 3 = 1 # midtone -; 4 = 1 -; 5 = 1 # treble +## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
+
+
+[general]
+
+# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
+; mode = normal
+
+# Accepts only non-negative values.
+; framerate = 60
+
+# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
+# new as of 0.6.0 autosens of low values (dynamic range)
+# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
+; autosens = 1
+; overshoot = 20
+
+# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
+# 200 means double height. Accepts only non-negative values.
+; sensitivity = 100
+
+# The number of bars (0-200). 0 sets it to auto (fill up console).
+# Bars' width and space between bars in number of characters.
+; bars = 0
+; bar_width = 2
+; bar_spacing = 1
+
+# For SDL width and space between bars is in pixels, defaults are:
+; bar_width = 20
+; bar_spacing = 5
+
+
+# Lower and higher cutoff frequencies for lowest and highest bars
+# the bandwidth of the visualizer.
+# 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.
+; lower_cutoff_freq = 50
+; higher_cutoff_freq = 10000
+
+
+# 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.
+; sleep_timer = 0
+
+
+[input]
+
+# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem'
+# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
+#
+# All input methods uses the same config variable 'source'
+# 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
+# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
+#
+# For alsa 'source' will be the capture device.
+# 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
+method = pulse
+source = auto
+
+; method = alsa
+; source = hw:Loopback,1
+
+; method = fifo
+; source = /tmp/mpd.fifo
+; sample_rate = 44100
+; sample_bits = 16
+
+; method = shmem
+; source = /squeezelite-AA:BB:CC:DD:EE:FF
+
+; method = portaudio
+; source = auto
+
+
+[output]
+
+# Output method. Can be 'ncurses', 'noncurses', 'raw' or 'sdl'.
+# 'noncurses' uses a custom framebuffer technique and prints only changes
+# from frame to frame in the terminal. 'ncurses' is default if supported.
+#
+# '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.
+# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
+#
+# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
+; method = ncurses
+
+# Visual channels. Can be 'stereo' or 'mono'.
+# 'stereo' mirrors both channels with low frequencies in center.
+# 'mono' outputs left to right lowest to highest frequencies.
+# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
+; channels = stereo
+; mono_option = average
+
+# Raw output target. A fifo will be created if target does not exist.
+; raw_target = /dev/stdout
+
+# Raw data format. Can be 'binary' or 'ascii'.
+; data_format = binary
+
+# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
+; bit_format = 16bit
+
+# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
+; ascii_max_range = 1000
+
+# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
+# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
+; bar_delimiter = 59
+; frame_delimiter = 10
+
+# sdl window size and position. -1,-1 is centered.
+; sdl_width = 1000
+; sdl_height = 500
+; sdl_x = -1
+; sdl_y= -1
+
+[color]
+
+# 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
+# ncurses output method and 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
+; background = default
+; foreground = default
+
+# SDL only support hex code colors, these are the default:
+; background = '#111111'
+; foreground = '#33cccc'
+
+
+# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported,
+# 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
+# In the [color] section
+
+[color]
+
+gradient = 1
+
+gradient_count = 8
+gradient_color_1 = '#010102'
+gradient_color_2 = '#9E2517'
+gradient_color_3 = '#0E714C'
+gradient_color_4 = '#08BCB1'
+gradient_color_5 = '#CDF5B1'
+gradient_color_6 = '#0AE59C'
+gradient_color_7 = '#0AFAEC'
+gradient_color_8 = '#CDF5B1'
+
+[color]
+[smoothing]
+
+# Percentage value for integral smoothing. Takes values from 0 - 100.
+# Higher values means smoother, but less precise. 0 to disable.
+; integral = 77
+
+# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
+; monstercat = 0
+; waves = 0
+
+# 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".
+; gravity = 100
+
+
+# In bar height, bars that would have been lower that this will not be drawn.
+; ignore = 0
+
+
+[eq]
+
+# This one is tricky. You can have as much keys as you want.
+# Remember to uncomment more then one key! More keys = more precision.
+# Look at readme.md on github for further explanations and examples.
+; 1 = 1 # bass
+; 2 = 1
+; 3 = 1 # midtone
+; 4 = 1
+; 5 = 1 # treble
diff --git a/config/cava/shaders/northern_lights.frag b/config/cava/shaders/northern_lights.frag new file mode 100644 index 00000000..ecd859a7 --- /dev/null +++ b/config/cava/shaders/northern_lights.frag @@ -0,0 +1,34 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) + +uniform vec3 u_resolution; // window resolution, not used here + +//colors, configurable in cava config file +uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here +uniform vec3 fg_color; // foreground color, not used here + +void main() +{ + // find which bar to use based on where we are on the x axis + int bar = int(bars_count * fragCoord.x); + + float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0; + float y = (bars[bar]) * bar_y; + + float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count; + float bar_r = 1.0 - abs((bar_x - 0.5)) * 2; + + bar_r = bar_r * bar_r * 2; + + // set color + fragColor.r = fg_color.x * y * bar_r; + fragColor.g = fg_color.y * y * bar_r; + fragColor.b = fg_color.z * y * bar_r; +} |
