Next: Examples and Results
Up: Synthesis Method
Previous: The Synthesis Paradigm
  Contents
A language was developed for specification of the synthesis
hierarchy5.2.
For every layer of the parameter definition, one defines
a seed5.3,
which itself is a collection of structures, and pointers to objects for
production of the end result. These latter objects are responsible for
mapping the developed parameters to the desired output (e.g., soundfiles,
scores for other systems, or graphical pictures). Structures are a
collection of
points. Points are a collection of factors and
options and a pointer
to a seed, which defines their lower content. Some of the normally
used factors are
``time'', ``frequency'', ``amplitude'', and ``channel values''
(for multi-channel synthesis.)
The program first starts with the seed called ``mainseed'', which
has a point as its initial starting value. Then, according
to the factors found in the points in the structure of ``mainseed'',
it re-writes the initial ``main'' as a series of seeds. This
procedure is repeated recursively
until the duration of a cell is smaller than the ``stop recursion''
value.
At every level for every seed an output production service
routine is called, with the seed value (which is represented as a
point) as its argument. The factors for points can
either be double precision values, or expressions.
One is able to access all the values of the higher levels by using
expressions.
A single value used as a factor, for example ,
without an expression is a
shorthand notation for the expression:
where represents the value of the factor at level
.
The production objects can have a single table and a single
window attached
to them. In the sound production object, the table is used as a
lookup table with increments defined by the frequency factor, while
the window is used as an amplitude window for the duration of
the cell. Every point can as well have a table and a
window which override those in the production objects.
The language itself is rather simple to understand once one
understand the connection between different objects. Its syntax is
very close to structure declaration of the C language, and in fact, every
score is passed through the C language preprocessor, so that comments and
C style macros can be used in the score.
Rather than explaining every detail of the language, we will go through a few
examples, and shall explain the scores and the synthesis method in more
detail while discussing the results.
Next: Examples and Results
Up: Synthesis Method
Previous: The Synthesis Paradigm
  Contents
Shahrokh Yadegari
2001-03-01