From 9599855766091ee3cce81ffbd6bb477080384ae9 Mon Sep 17 00:00:00 2001 From: rolandnsharp Date: Sun, 5 Apr 2026 19:41:39 +1000 Subject: [PATCH] Clean up stale comments and README Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 8 ++------ src/osc.nim | 5 ++--- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 95ec100..dff24cf 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,7 @@ A terminal-based oscilloscope with CRT phosphor physics, written in Nim using [i - **Y-T and X-Y modes** — time-domain waveform or Lissajous figures - **Phosphor persistence** — beam bloom, decay trails, intensity-based shading - **Half-block rendering** — 2x vertical resolution using Unicode `▀▄█` characters -- **Live audio capture** — visualises system audio via ffmpeg/PulseAudio monitor -- **Demo mode** — built-in synthesised waveforms when no audio source is available +- **Live audio capture** — direct libav bindings via dlopen, zero dependencies ## Install @@ -33,14 +32,11 @@ nimble build | `]` / `[` | Zoom in / out time axis | | `g` | Cycle grid: full → crosshair → off | | `space` | Freeze display | -| `d` | Cycle demo frequency presets | | `q` | Quit (with CRT shutdown effect) | ## Audio -Captures system audio automatically using `ffmpeg` with the PulseAudio/PipeWire monitor of your default output sink. Falls back to `parec` if available, or a built-in demo signal. - -No extra packages needed — just `ffmpeg` (pre-installed on most Linux systems). +Captures system audio by opening the PulseAudio/PipeWire monitor of your default output sink directly via libavformat and libavdevice. Libraries are loaded at runtime with `dlopen` — no dev packages, no subprocess, no extra dependencies. ## Credits diff --git a/src/osc.nim b/src/osc.nim index f66bcbb..7162168 100644 --- a/src/osc.nim +++ b/src/osc.nim @@ -1,11 +1,10 @@ -## CRT Oscilloscope — terminal-based oscilloscope with phosphor physics. +## Terminal oscilloscope with CRT phosphor physics. ## -## Features: ## - 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 2× vertical resolution -## - Live audio capture via ffmpeg/PulseAudio or demo signal +## - Live audio via libavdevice (dlopen, zero dependencies) import illwill, os import osc/[effects, phosphor, scope, audio]