Files
test/effects/ascii_zones.sexp
gilesb 406cc7c0c7 Initial commit: video effects processing system
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>
2026-01-19 12:34:45 +00:00

34 lines
1.1 KiB
Common Lisp

;; ASCII zones effect - region-based ASCII rendering
;; Usage: python3 plan.py effects/ascii_zones.sexp -p char_size=10 | python3 execute.py - -d . -o output.mp4
;;
;; Parameters:
;; char_size: character cell size in pixels (4 to 20, default: 10)
(recipe "ascii_zones"
:version "1.0"
:encoding (:codec "libx264" :crf 20 :preset "medium" :audio-codec "aac" :fps 30)
(effect ascii_zones :path "sexp_effects/effects/ascii_zones.sexp")
(analyzer energy :path "../artdag-analyzers/energy/analyzer.py")
;; Default parameter (overridden by -p char_size=N)
(def char_size 10)
(def video (source :path "monday.webm"))
(def clip (-> video (segment :start 0 :duration 10)))
(def audio (source :path "dizzy.mp3"))
(def audio-clip (-> audio (segment :start 60 :duration 10)))
;; Analyze just the audio clip - times are 0-10s relative to clip
(def energy-data (-> audio-clip (analyze energy)))
;; char_size bound to energy - no offset needed since analysis is on clip
(def result (-> clip
(effect ascii_zones
:char_size (bind energy-data values :range [2 32]))))
(mux result audio-clip))