soundscrape

A programmatic framework for modular synthesis:
Scheme in the front, C in the back!
< | ^ | > | :>

modulation

We've seen examples of passing numbers in as the arguments. The whole idea behind modular synthesis, however, is that the input to a given module can come from anywhere, even another module in the network. This is the case in soundscrape as well.

;; Let's control the amplitude of the sine wave with an LFO.
(play (audio sine
             800
             :mul (control sine ;; oftentimes modulation is more
                                ;; suitable to control rate than audio
                                ;; rate
                           2    ;; Twice a second
                           0.5  ;; varying by 0.5 each way
                           0.5)))  ;; centered about 0.5

;; You can do amplitude modulation if you use an audio rate modulator
;; linked to the :mul input of a generator. Frequency modulation happens
;; if you connect to the :frequency input:
(play (audio sine
             (audio sine
                    60          ;; 60 Hz
                    50          ;; 2*50 = 100 Hz bandwidth (checkme!)
                    200)))      ;; centered about 200 Hz
< | ^ | > | :>