Spectral Modelling
(load "/user/j/juan/Pub/Ats/all")This loads all the ATS functions and a couple of already analyzed sounds into the Lisp environment.
(with-sound (:scaled-to 0.707)(osc-synth 0.0 tb-a1))This reconstructs the sound of a Trombone pedal tone (A1). We can transpose the spectrum of the trombone using the function trans-sound:
(trans-sound 'tb-a1 0.5 :name 'tb-a0) (with-sound (:scaled-to 0.707)(osc-synth 0.0 tb-a0))Transformations can be dynamic. Lets transpose the other example, "voice-phrase", gradually a little down. First we can synthesize the original:
(with-sound (:scaled-to 0.707)(osc-synth 0.0 voice-phrase))Now we transform it:
(trans-sound 'voice-phrase '((0 1 1 0.8)) :name 'voice-phrase-trans) (with-sound (:scaled-to 0.707)(osc-synth 0.0 voice-phrase-trans))We can cumulate transformations on a same sound. For example, we stretch voice-phrase-trans gradually and keep the result in a new sound called "voice-phrase-trans-stretch":
(stretch-sound 'voice-phrase-trans '((0 1 1 1.5)) :name 'voice-phrase-trans-stretch) (with-sound (:scaled-to 0.707)(osc-synth 0.0 voice-phrase-trans-stretch))
(open-controls 2048)Now we have to start the GUI on an xterm:
/user/j/juan/Pub/Ats/Synth/rt_synth_lnx &To call the instrument we use with-psound:
(with-psound ()(rt-synth tb-a1)) or: (with-psound ()(rt-synth voice-phrase))We can sinthesize only a group of partials using a list:
(with-psound () (rt-synth voice-phrase :par (loop for i from 0 below (ats-sound-partials voice-phrase) by 2 collect i)))