(macro (trir args) (if (> (length args) 4) `(+ ,(caddr args) (* ,(cadddr args) (tri-wave (* TWOPI (+ beat ,(cadr args)) ,(car (cddddr args)))))) `(+ ,(cadr args) (* ,(caddr args) (tri-wave (* TWOPI beat ,(cadddr args)))))))