2023-12-21 20:17:27 +00:00
|
|
|
# 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.
|
|
|
|
```sh
|
|
|
|
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 fifo
|
|
|
|
* `fps`: Self explanatory
|
|
|
|
* `resolution`: Pixel width of bars
|
|
|
|
* `scale`: Bar height multiplier
|
|
|
|
* `color`: Bar color
|
|
|
|
* `bgcolor`: Background color
|
|
|
|
* `queue-size`: The size of the queue (minimum of 1), delays displaying bars by `queue-size` frames. Useful if desync is noticed
|
|
|
|
* `fft`: Whether or not to perform a fourier transform to show frequencies (like `spectrum` mode in most other visualizers)
|
|
|
|
* `smoothing`: Not implemented
|
|
|
|
* `smoothing-factor`: Not implemented
|
|
|
|
|
|
|
|
# Wishlist
|
2023-12-21 20:20:16 +00:00
|
|
|
* Native PulseAudio and PipeWire sources
|
2023-12-21 20:17:27 +00:00
|
|
|
* Smoothing
|
|
|
|
* Average over `resolution`
|
|
|
|
* Offload some calculations to the GPU
|
|
|
|
|
|
|
|
# Known issues
|
|
|
|
* 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
|