| I am currently writing a thesis that involves providing background
information on Csound, ie, discussing how it works. I haven't been able
to find anything that goes into detail on how Csound actually compiles a
sound file, so I wanted to post my own theory of it's operation to the
group. Please add corrections and take away what I've got all wrong!
Csound is based on the C-programming language. It actually generates
16-bit samples of audio information via algorithms that produce
wavetables. Csound uses gen routines to produce these wavetables by
allowing the user to give such information as spectral content, harmonic
phase information, and time-domain information. The gen routine
produces one cycle of the wave when making the wavetable. Then, the
.sco file repeats the wavetable until the samples completely fill the
specified durations of the notes. The .orc file can to used to further
mathematically manipulate the wavetable. The combination of these
mathematical manipulations along with all the different gen routines
allows almost any imaginable sound to be created! Changes can be made
to the samples at different rates...the sampling rate, control rate, and
at intialization. In this way, a sound doesn't remain static but can be
changed as specified by the user at any of the above rates. The given
sampling rate, as specified in the .orc file, shows how many samples a
second a wavetable is required to fill. The size of the wavetable is
determined by the number of points it's requested to be in the .sco
file. (I'm assuming the higher a sampling rate you choose, the greater
number of points that will be desired to make up a wavetable. Is this
correct? I'm a little fuzzy on this part.) The .orc files are
considered to be the source of the sound, which takes the wavetables
created and uses them for either audio signals, or envelope signals.
These "controllers of the wavetables" in the .orc file range from
oscillators to filters, and allow for many other types of sounds such as
granular synthesis.
I know there's a lot more to Csound, but I would appreciate any guidance
to get me on the right track.
thanks in advance,
Joel Wilder |