- demo_oscilloscope_mod.py: 15 FPS for smooth human viewing
- Uses cursor positioning instead of full clear to reduce flicker
- ModulatedOscillator class for LFO modulation chain
- Shows both modulator and modulated waveforms
- Supports modulation depth and frequency control
Usage:
# Simple LFO (slow, smooth)
uv run python scripts/demo_oscilloscope_mod.py --lfo
# LFO modulation chain: modulator modulates main oscillator
uv run python scripts/demo_oscilloscope_mod.py --modulate --lfo --mod-depth 0.3
# Square wave modulation
uv run python scripts/demo_oscilloscope_mod.py --modulate --lfo --mod-waveform square
Related to #46