Commit Graph

6 Commits

Author SHA1 Message Date
rolandnsharp
fb3a0cb77b Remove ffmpeg subprocess fallback
Only two paths now: libav via dlopen, or demo signal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 19:36:58 +10:00
rolandnsharp
3fc7ed1c4e Use direct libav bindings via dlopen instead of ffmpeg subprocess
Loads libavformat + libavdevice at runtime — no dev packages, no
subprocess, no pipe buffering. Falls back gracefully to ffmpeg
subprocess then demo mode if .so files aren't present.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 19:33:52 +10:00
rolandnsharp
3c9a9c7c89 Add MIT license 2026-04-05 14:10:18 +10:00
rolandnsharp
94d5b2cf63 Rename crt → osc throughout
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 13:43:15 +10:00
rolandnsharp
7ceac6c91f Add README with demo GIF
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 12:47:30 +10:00
rolandnsharp
448b303eba Terminal oscilloscope with CRT phosphor physics
- CRT boot/shutdown animations (ported from AetherTune)
- Y-T (time-domain) and X-Y (Lissajous) display modes
- Phosphor persistence with bloom and decay
- Half-block rendering for 2x vertical resolution
- Live audio capture via ffmpeg/PulseAudio monitor
- Gain and time/div controls, grid toggle, freeze

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 12:43:48 +10:00