; ambientprocesses.cm
; by Anthony M. Kozar Jr.
; May 8, 2001
; On the web at
; Email
; (C) 2001, Anthony M. Kozar Jr. All rights reserved.
; The author grants to you a license to use
; this Lisp source code under the terms of the
; Creative Commons Attribution-ShareAlike License.
; If you do not accept the terms of this license,
; then you are not permitted to copy, distribute,
; perform, broadcast, or make derivative works of
; this work. Contact me if you want to license
; this work under different terms.
; To view a copy of the CC license, visit
; http://creativecommons.org/licenses/by-sa/2.0/
; or send a letter to
; Creative Commons
; 559 Nathan Abbott Way
; Stanford, California 94305, USA.
(defprocess noteloop (thepitch looptime endtime)
(process
until (> (now) endtime)
do
(output (new midi time (now)
amplitude (* .01 (between 50 70))
duration 2
keynum thepitch
)
)
(wait looptime)
)
)
(defprocess eno-ambient (pitches length dur-lower dur-upper)
(process
for i in pitches
do
(sprout (noteloop i (+ dur-lower (* .001 (between 0 (* 1000 (- dur-upper dur-lower))))) length)
(now))
(wait (* .1 (between 4 50)))
)
)
#| example invocations
(events (eno-ambient '(d2 a2 c3 d3 f3 g3 a3 b3 d4 e4) 60 4 10) "ambient1.midi")
(events (eno-ambient '(d1 a1 f2 c3 d2 e3 d3 e4 f4 a3 g3 b4 c5 d5 a5) 1200 5 16) "ambient2.midi")
(events (eno-ambient '(c3 d3 e3 fs3 g3) 120 5 16) "ambient3.midi")
(events (eno-ambient '(bf1 f2 c3 d3 g3 c4 e4 f4 bf4 d5 e5 g5 c6 c7) 600 3 8) "ambient4-1.midi")
(events (eno-ambient '(c3 d3 g3 e4 f2 c4 d5 e5 bf1 c6 g5 f4 bf4 c7) 600 4 20) "ambient4-2.midi")
(events (eno-ambient '(c3 d3 g3 e4 f2 c4 d5 e5 bf1 c6 g5 f4 bf4 c7) 600 4 12) "ambient4-3.midi")
|#