# Oscillator timbre

When working Nyquist, what should I do to really alter the “timbre” of the basic oscillators to make them sound interesting? Regular osc, saw, and tri tones obviously sound very boring. I’ve tried modifying them some, but I’m not sure how to really alter the timbre or texture of the sound.

It always depends on how far you wanna go.
Here’s a Little code example for additive Synthesis (like in an Hammond organ)

``````(defun init-organ()
(setf factor '(5 10 8 5 3 2 0 0 1))
(setf harm '(1 2 2.9966 4 5.9932 8 10.0794 11.9864 16))
(setq *table*  (maketable (simrep (overtone 9)
(scale (/ (nth overtone factor) 100.0)
(build-harmonic (nth overtone harm) 1000))))))
(defun organ (pitch dur)
(mult 4 (stretch (/ dur (get-duration 1)) (osc-note (+ pitch 12)    1 '(0.1 0 0.1 1 1 1)))))
;; main
(init-organ)
(scale-db -6 (organ a3 2))
``````

In init-organ we build a new table for the osc-functions (osc-note, hzosc, osc, just where table is in use)
It contains 9 harmonics (in harm are the Multipliers, i.e. when the pitch is 100 Hz, the last harmonic would be at 1600 Hz.
In factors we can define the Position of the draw bars (or simplier: the volume of each one in comparison).
more advanced techniques use AM- and FM-Synthesis to create Special timbres.

Plain oscillators sound “boring” because they are constant from start to end. To make a more interesting sound you could generate a sound that varies over time.
As a simple example, try running this in the Nyquist Prompt effect:

``````(abs-env
(comb
(mult
(sum 0.5 (mult 0.1 (ramp 3) (lfo 6 3 *sine-table* 90)))
(sim
(mult (osc 60 3 *tri-table*) (pwev 0.001 0.02 1 3 0.001))
(mult (osc 72 3)(pwlv 0.0 0.2 0.5 0.3 0.7 1 0.3 2 0.05 3 0.0))))
0.9
(* 1.3 (step-to-hz 60))))
``````

Comb filters can produce some interesting sounds:

``````(abs-env
(lp
(comb (noise 3) 0.9 62)
100))
``````

Also, some waveforms are just a bit more interesting than others:

``````(setq fundamental 100.0)
(setq harmonics 5)
(setq phase 0)
(setq h-gain 5)
(setq duration  10)

(abs-env
;; generate harmonics
(let ((output (osc (hz-to-step fundamental)
duration *sine-table* phase))
(gain 1))
(dotimes (i (1- harmonics))
(setq new-gain (db-to-linear (* h-gain (1+ i))))
(setq gain (+ gain new-gain))
(setf output
(sim output
(mult new-gain
(osc (hz-to-step (* (+ i 2.0) fundamental))
duration *sine-table* phase)))))
(mult (/ gain) output)))
``````

Another thing I’ve tried to play with are the physical models (Section 7.2.2.5 in the Nyquist Manual). How do I actually use the various instrument functions (clarinet, sax, flute, etc)? I’ve tried playing with the various parameters, but I just get a long, awful sounding tone.