Digital Sound, Additive and Wavetable Synthesis
A series of gif images of the lecture slides... (only accesible from within Stanford University)
- Sound representation
- ADC and DAC converters
- Sampling theorem (Nyquist)
Additive and Wavetable Synthesis
Periodic waveform synthesis
f(t)=sum,k=0,...(Ak*sin(kwt+Qk)) [Moore 210]
Partial based synthesis
f(t)=sum,k=0,...(Ak*sin(wkt+Qk)) [Moore 210]
Time varying synthesis
- A very simple wavetable instrument (wavetable.ins)
- A very simple three partial additive instrument (additive.ins)
- The frequency sweep instrument used for the aliasing examples (sweep.clm)
Examples from the clm distribution:
For a very entertaining example of what you can do with a few sine waves take a look at the following instruments and note lists:
- The "complete add" clm example instrument from the clm distribution (add.ins)
- This instrument accepts an array of envelopes for the frequency of the partials and another array of envelopes for the amplitude of the partials. With both arrays you can generate completely arbitrary sounds (at the heavy price of having to specify everything in complete detail!).
- Facier additive synthesis instrument (badd.ins)
- This one also includes controls for vibrato...
Copy these two instruments to your own area and compile and load them into lisp. After you are done load this clm score into lisp: bird.clm (remember you can type "q" followed by "return" to halt playback of the resulting soundfile). Load the soundfile into "snd" and take a look at the spectrum in "sonogram" mode... each bird song has its own set of pitch "inflections". You can incorporate a whole forest full of birds into your piece!
Another fancy example that uses additive synthesis (and some frequency modulation):
Copy these three instruments to your own area and compile and load them into lisp. After you are done load this clm score into lisp: bag.clm. It will take half a minute or so for the note list to compile... it _is_ loud so be careful. Have fun!
To probe further
Create a CLM instrument that can interpret and play the steady state spectral data that is part of "/usr/ccrma/lisp/src/clm/spectr.clm".