;; Scanlines effect - VHS-style horizontal line shifting (require-primitives "core") (define-effect scanlines :params ( (amplitude :type int :default 10 :range [0 100]) (frequency :type int :default 10 :range [1 100]) (randomness :type float :default 0.5 :range [0 1]) ) (map-rows frame (lambda (y row) (let* ((sine-shift (* amplitude (sin (/ (* y 6.28) (max 1 frequency))))) (rand-shift (core:rand-range (- amplitude) amplitude)) (shift (floor (lerp sine-shift rand-shift randomness)))) (roll row shift 0)))))