Bendik Aagaard LynghaugandClaude Opus 4.8 3dbe5c4ddd CI: fix Arch-registry publish (use makepkg --packagelist; !strip for cross-arch repack)
The runner's PKGEXT is .pkg.tar.xz, so the .zst glob never matched;
--packagelist yields the exact filename, and options=('!strip') lets the
foreign-arch binary be packaged on the aarch64 host without stripping.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GLUwWE2KmFPzhKaf67tWbx
2026-09-13 11:05:36 +02:00
2025-04-10 13:04:20 +02:00
2026-06-22 16:17:53 +02:00
2026-06-23 21:51:22 +02:00
2026-06-22 13:56:41 +02:00

spectrust

A terminal audio spectrum analyzer written in Rust. Visualizes PCM audio in real time using block characters — reads from PipeWire, a file, or stdin.

▁▂▃▄▅▆▇█▇▆▅▄▃▂▁▁▂▃▄▅▆▇█▇▆▅▄▃▂▁▁▂▃▄▅▆▇█

Installation

Arch Linux (AUR)

paru -S spectrust

From source

cargo install --path .

Requires Rust 1.70+. PipeWire (pw-record) is only needed for the -p capture mode.

Usage

spectrust [OPTIONS]
Option Default Description
-f, --fps <N> 60 Target frames per second
-p, --pipewire — Capture audio directly from PipeWire
-i, --input <FILE> — Read PCM from a file (stdin if omitted)
-l, --log-power <N> 1.4 Frequency scaling power (0.5–3.0); higher values give more space to bass
-d, --drop-off <N> 0.75 Bar drop-off factor per frame (0.0 = instant, 1.0 = no drop)
--rate <HZ> 48000 Sample rate — must match the audio source
--channels <N> 2 Channel count — must match the audio source

Input modes

PipeWire — capture system audio directly:

spectrust -p

stdin — pipe from any recorder:

pw-record --format=s16 --rate=48000 --channels=2 --raw - | spectrust
arecord -f S16_LE -r 48000 -c 2 | spectrust

File — replay a raw PCM file:

spectrust -i recording.pcm

Runtime controls

Key Action
q / Ctrl+C Quit
[ / ] Decrease / increase drop-off speed
, / . Decrease / increase log frequency scaling
- / + Decrease / increase sensitivity

Notes

  • Input is expected as signed 16-bit little-endian PCM (s16le). This matches pw-record --format=s16 --raw and arecord -f S16_LE.
  • If --rate or --channels don't match the actual source the visualization will be distorted.
  • The sensitivity control scales bar heights at render time; it has the most noticeable effect on quiet signals.

License

MIT

S
Description
A spectrum analyser for your terminal written in rust
Readme MIT
103 KiB
v0.2.9
Latest
2026-09-13 09:44:22 +00:00
Languages
Rust 96.4%
Shell 3.6%