My production framework is recent (2011) but it abstracts the
stages of production first introduced with Protocol in 1981.
Although the framework does not include any explicitly musical entities, I have never used it for any purpose other than composition.
Statistical feedback has become so pervasive in my work that it has now become fully incorporated into the production framework,
specifically in the State class, the StateContext class and in the decision-making engines supporting
the Problem class.
At the top of the production hierarchy stands a Product.
The content of a Product is generated using one or more Stages.
Each Stage implements an executable.
Stages are organized into a dependency tree; file output from earlier executables feeds into later executables.
I cannot run any Stage until the executables it depends upon have all completed successfully.
For example, there might be an early stage to generate rhythm, and a later, dependent stage to select pitches.
Each Stage solves one or more Problems.
For example, there might be several motifs, with one Problem to generate the content of each motif.
Each Problem defines one or State Contexts, and
in certain search modes, some number of Scaffolds.
A Problem also maintains a collection of Decisions.
The Problem class has three defined subclasses, each of which implements a different decision engine.
These subclasses are HeuristicSearch, ExhaustiveSearch, and BeautyContest.
State Contexts are groups of Decisions which track State usage statistics.
Thus when a Decision chooses to employ a State, that State's usage statistic will be incremented.
States identify resources that a State Context strives to keep in balance.
In pitch-selection Problems, States typically correspond to degrees of the chromatic scale.
Scaffolds are also groups of Decisions, and they enable certain search engines to dynamically control the order in which
these Decisions will be considered.
Each Decision chooses from one or more Options. Thus the goal of a Problem is to
choose an Options for every Decision in a mutually compatible way.
An Option contains one or more values. Each value references
a State. For example, an option might identify a chord with several
pitches. The State associated with each pitch might correspond to
the pitch's chromatic number.
|© Charles Ames
||Page created: 2013-09-17
||Last updated: 2015-08-25