catnip
^ click for a fun videoterminal audio visualizer for linux/unix/macOS/windows*
it supports audio backends
- ALSA (linux FFmpeg)
- AVFoundation (macOS FFmpeg)
- DirectShow (windblows FFmpeg)
- Pipewire (pw-cat)
- PortAudio (linux/macOS/windblows (maybe))
- PulseAudio (parec/FFmpeg)
it depends on
-
go modules
- github.com/nsf/termbox-go
- github.com/integrii/flaggy
- github.com/pkg/errors
- github.com/noisetorch/pulseaudio
- gonum.org/v1/gonum
-
binaries
- ffmpeg (required for FFmpeg backends)
- parec (required for PulseAudio backend with parec)
- pw-cat, pw-link (required for Pipewire backend)
-
c libraries (optional, requires CGO -
CGO_ENABLED=1
)- fftw (fftw3) (enable with
-tags fftw
) - portaudio (portaudio-2.0) (enable with
-tags portaudio
)
- fftw (fftw3) (enable with
get it
# get source
git clone https://github.com/noriah/catnip.git
# cd to dir
cd catnip
# build and install catnip
go install ./cmd/catnip
# with portaudio
go install ./cmd/catnip -tags portaudio
# with fftw3
go install ./cmd/catnip -tags fftw
# with both portaudio and fftw3
go install ./cmd/catnip -tags portaudio,fftw
run it
- use
catnip list-backends
to show available backends - use
catnip -b {backend} list-devices
to show available devices - use
catnip -b {backend} -d {device}
to run - use the full device name - use
catnip -h
for information on several more customizations