- Add stream_sexp_generic.py: fully generic sexp interpreter
- Add streaming primitives for video sources and audio analysis
- Add config system for external sources and audio files
- Add templates for reusable scans and macros
- Fix video/audio stream mapping in file output
- Add dynamic source cycling based on sources array length
- Remove old Python effect files (migrated to sexp)
- Update sexp effects to use namespaced primitives
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ascii_dual_blend.sexp: blends two ASCII-processed videos synced to audio
- Fix blend.sexp: add require-primitives, fix params syntax
- Fix layer.sexp: add require-primitives
- Use consistent (effect blend ...) syntax instead of special form
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements ascii_fx_zone effect that allows applying arbitrary sexp effects
to each character cell via cell_effect lambdas. Each cell is rendered as a
small image that effects can operate on.
Key changes:
- New ascii_fx_zone effect with cell_effect parameter for per-cell transforms
- Zone context (row, col, lum, sat, hue, etc.) available in cell_effect lambdas
- Effects are now loaded explicitly from recipe declarations, not auto-loaded
- Added effects_registry to plan for explicit effect dependency tracking
- Updated effect definition syntax across all sexp effects
- New run_staged.py for executing staged recipes
- Example recipes demonstrating alternating rotation and blur/rgb_split patterns
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add S-expression based video effects pipeline with modular effect
definitions, constructs, and recipe files.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>