samer@1: (load "props.scm") samer@1: samer@1: (import "samer.core.types.*") samer@1: samer@1: (push-properties "scope.props") samer@1: (put "canvas.background" Color.black$) samer@1: (put "canvas.foreground" (Color. 60 220 120)) samer@1: (put "trace.background" Color.black$) samer@1: samer@1: (define C (node "canvas" (Plotter.))) samer@1: (expose C "canvas") samer@1: (.exposeMaps C) samer@1: samer@1: (define (oscillator nm freq) samer@1: (define o (Oscillator. freq)) samer@1: (VParameter. nm (.getFrequencyModel o)) samer@1: ; (Product. (Constant. 256.0) o) samer@1: o samer@1: ) samer@1: samer@1: (tasks) samer@1: samer@1: (define x (VDouble. "x")) samer@1: (define y (VDouble. "y")) samer@1: samer@1: (addtasks samer@1: (GenerateDouble. x (oscillator "fx" 0.1)) samer@1: (GenerateDouble. y (oscillator "fy" 0.1)) samer@1: (SilkTask. samer@1: (let ((P (.getPen C))) samer@1: (.moveto P 0 0) samer@1: (lambda () samer@1: (.activate P) samer@1: (.line (.abs P (.value$ x) (.value$ y))) samer@1: (.move P) samer@1: ) samer@1: )) samer@1: ) samer@1: samer@1: (expose)