Skylar "The Cobra" Widulski
357df0bbfa
Signed-off-by: Skylar "The Cobra" Widulski <cobra@vern.cc> |
||
---|---|---|
yammer | ||
.gitignore | ||
COPYING | ||
README.md | ||
config.example.scm | ||
yammer.c | ||
yammer.h | ||
yammer.scm |
README.md
Yammer
Audio visualizer thing in guile scheme
Build
Dependencies
guile-sdl2
, fftw
Compiling the library
You need to compile the yammer.c file because it has wrappers around fftw functions.
gcc -shared yammer.c -o libyammer.so -Wall -Wextra -Werror -fPIC -shared -lfftw3 -lm -O3 -ggdb
Configuration
Copy config.example.scm
to config.scm
Below is a list of values and what they do
fifo-file
: The MPD fifofps
: Self explanatoryresolution
: Pixel width of barsscale
: Bar height multipliercolor
: Bar colorbgcolor
: Background colorqueue-size
: The size of the queue (minimum of 1), delays displaying bars byqueue-size
frames. Useful if desync is noticedfft
: Whether or not to perform a fourier transform to show frequencies (likespectrum
mode in most other visualizers)smoothing
: Smoothing mode. Possible values are:#f
: No smoothingmoving-average
: Moving average
moving-average-block-size
: Size of the moving average window. Higher is smoother.
Running
Either install libyammer.so and yammer.h to their respective systemwide locations, or do the following:
export LD_LIBRARY_PATH=.
Then, run yammer.
guile -L . yammer.scm
Wishlist
- Native PulseAudio and PipeWire sources
- More smoothing modes
- Average over
resolution
- Offload some calculations to the GPU
Known issues
- Sometimes the read gets misaligned and just becomes noise
- When MPD is paused or the program is sleeping for the next frame, the UI doesn't update so you can't exit
- The surface can't be transparent