SOUNDLAB: Lazy signal combinators Max Rottenkolber May 29, 2013 i Table of Contents 1 HOW DOES THIS WORK? 1 2 SIGNAL COMBINATORS 4 3 OVERVIEW OF THE LIBRARY 6 4 USING SOUNDLAB 8 1.1 Whats a signal? . . . . . . . . . . . . . . . . . . . . . . 1.2 Recording sound . . . . . . . . . . . . . . . . . . . . . . ii 2 3 1 HOW DOES THIS WORK? The workow. 1 1.1 Whats a signal? The sum of sines, e.g. Sine. Sine noise. A function which maps time to amplitude (-1..1) e.g. #'SIN. 2 1.2 Recording sound Sampling simplied. 3 2 SIGNAL COMBINATORS (defun chord (&rest signals) (lambda (x) (/ (loop for signal in signals sum (funcall signal x)) (length signals))) (divide (apply #'add signals) (flatline (length signals))) Implementing CHORD. 4 (FUNCTION (&REST (FUNCTION (REAL) REAL)) (FUNCTION (REAL) REAL)) A common interface for time and amplitude modulation. 5 3 OVERVIEW OF THE LIBRARY 6 Library overview. 7 4 USING SOUNDLAB 8 What we are going to do. 9 Voice envelope. 10 Phaser envelope. 11