You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+14-63Lines changed: 14 additions & 63 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,11 +60,9 @@ Lookas captures **microphone input, system audio, or both**, converts the signal
60
60
<details> <summary><b>How</b></summary>
61
61
<br/>
62
62
63
-
It runs a low-latency audio pipeline designed for visual stability first.
64
-
65
63
Audio is captured from the microphone, system loopback, or both. The signal is windowed with a Hann function to reduce spectral leakage, then transformed via FFT into frequency bins. These bins are remapped onto a mel-scale filterbank so the visualization aligns with human loudness perception rather than linear frequency spacing.
66
64
67
-
Frequency balance is handled by A-weighting (IEC61672:2003), which models the human ear's actual sensitivity curve across frequency. This keeps the display proportional to what you hear rather than what a meter would measure.
65
+
Frequency balance is handled by [A-weighting](http://cdn.standards.iteh.ai/samples/10880/e138f40fd9e84af8906910f4b6d8a4df/IEC-61672-2-2003.pdf), which models the human ear's actual sensitivity curve across frequency. This keeps the display proportional to what you hear rather than what a meter would measure.
68
66
69
67
Dynamic range is managed continuously using percentile tracking instead of fixed scaling. A noise gate suppresses background hiss.
70
68
@@ -78,73 +76,26 @@ On modern Linux, this yields a stable 60+ FPS experience with audio-to-visual la
78
76
79
77
</details>
80
78
81
-
<details>
82
-
<summary><strong>How is this different than CAVA?</strong></summary>
83
-
<br/>
84
-
On the surface it may look like just another CAVA clone/reinvent the wheel situation.
85
-
86
-
**It's not.**
87
-
88
-
They may look similar in static screenshots. But they feel completely different in motion.
89
-
90
-
Here's the difference:
91
-
92
-
**CAVA** is the battle-tested, Swiss-army-knife visualizer (de facto standard, cross-platform, insanely configurable).
93
-
94
-
**Lookas** is opinionated, perception-first tool that deliberately throws away raw linear-FFT twitchiness and replaces it with human-hearing-aligned physics so the bars _feel_ like real sound instead of a nervous digital meter.
95
-
96
-
### Philosophy
97
-
98
-
-**CAVA**: Makes pretty, responsive dancing bars that work everywhere with maximum flexibility. No deep claims about biology or physics.
99
-
100
-
-**Lookas**: Fixes the core issue that most visualizers feel disconnected from how humans actually _hear_ sound. Goal = biological/perceptual alignment + physical weight. Mel-scale + spring-damper + lateral energy diffusion = a visualization that has _intentional_ heft instead of jitter.
<details><summary><b>How both differ?</b></summary>
118
84
119
-
- CAVA: Extremely flexible (PipeWire, PulseAudio, ALSA loopback, JACK, FIFO/MPD, Sndio, OSS, PortAudio, shared memory, Windows default). You can wire almost anything.
120
-
121
-
- Lookas: Deliberately minimal: Mic (1), System loopback (2), or Mix (3). Hotkey swap + auto-fallback. Low-latency pipeline tuned for stability, not maximum flexibility. Linux-only (Rust-only for now). Extended in future versions.
122
-
123
-
**Output**
124
-
125
-
- CAVA: Terminal (noncurses/ncurses), **SDL desktop window with GLSL shaders**, raw data (pipe to anything). Multiple orientations, bar widths, gradients, etc.
126
-
127
-
- Lookas: Terminal-only. Optimized Unicode-block renderer (single clear per frame + contiguous writes -> zero flicker, buttery-smooth gradients).
128
-
129
-
### Config & User Experience
130
-
131
-
CAVA: Huge, heavily commented INI file. You can tweak everything (bars, sensitivity, cutoffs, EQ, colors, framerate, sleep timer, etc.). Live reload with SIGUSR1/SIGUSR2.
132
-
133
-
Lookas: **Zero-config by default**. Tiny optional TOML (`~/.config/lookas.toml`) with only the perceptual knobs and env vars overrides. Keyboard controls built-in. Ships with sane defaults so it just works.
134
-
135
-
### Performance & Feel
136
-
137
-
Both run 60+ FPS on modern hardware and are very light on CPU.
138
-
The difference is in the **_feel_**.
139
-
140
-
CAVA gives you crisp, responsive dancing bars.
85
+
<br/>
141
86
142
-
Lookas gives you bars that have **mass, momentum, and perceptual weight**, they move like real sound propagating through air.
0 commit comments