Peter McKenzie Armstrong

Precompositional Algorithms
These texts present synopsies from pre-2001 computer code.  Subsequent
programs are described instead within the Notes page of individual scores.
____________________________________________________________________________

IntLens
A Quasi-Prismatic Pitch-Class Series Registrator
(4 versions, 1986-2001)

This program octave-complements &/or compounds the intervals of an input pitch-class series in all combinations of selection by interval class.

Ver. 1 (Pascal, 1986)
The selection cycle iterates for each of six ranges of expansion, defined as (starting level for all ICs) to (target level for selected ICs): class to complement, class to compound, class to both, complement to compound, complement to both, and compound to both.  Within each range and combination, series registrations are noted separately per mirror form (P,I,R,RI) and coordinate order (X/Y or Y/X).  Registrations total 48 times (2 to the power of half the octave modulus).

Ver. 2 (Forth, 1988)
Registrations are here examined as simultaneities, i.e., chromatic saturation chords.  Generation now specifies all expansions within a range of nine octaves.  The output for each is a half-page chart with graph and associated statistics, as for example:

     

A separate sort details relationships among these otherwise arbitrarily sequenced registrations. Up to sixteen criteria keys may be applied, independently ascending or descending and in user-specified priority:
                                          1) ExpLevel    5) Frame           9) MinInt         13) MinFreq
                                          2) RowNum    6) Gaps>OD   10) MaxInt       14)  MaxFreq
                                          3) Factor        7) NumClust    11) IntSpread   15) FrqSpread
                                          4) Range        8) MaxClust    12) IntsUsed    16) FrqsUsed


Version 2 and its student manual were included with Krikos (below) among curricular materials at National Chiao Tung University, Taiwan in 1989.

Ver. 3 (APL, 1989)
Expands filing of intermediate data for retrieval by independent compositional software.

Ver. 4 (J, 2001)
In APL's superset and successor, includes Csound-score building with facilities from Krikos.
____________________________________________________________________________

Krikos
Permutation of a Metered Pitch Series via Incremental Dot-graph Rotation
(APL, 1989-91)

Suppose that the serial "forms" were derived, not from horizontal/vertical mirroring, but from rotation in the plane.  As a rotating graph of point coordinates (X=order/Y=pitch-class), the sequence evolves whenever closely neighboring values swap relative positions.  For other than severely symmetrical starting series, the result yields many more than the four PIRRI forms, integrating symultaneity (at X/Y swap points) in the process.  "Krikos.ws" is an APL workspace embodying this process.  Given initial point coordinates, it generates all possible alignments, converts their specifications to musical parameter arrays, and formats scores for Csound.  It provided the data for Krikoi on the opening of Schoenberg's Opus 33a (1992).
____________________________________________________________________________

Markov
Generation of Pitch/Duration Cycles via Modular Additive Sequences
(C, 1986)

Given a Markov-order number of seeds (maximally 6), the program proceeds to generate each next number by summing as many just-previous terms.  Each generation, constrained by an input modulus, ends when the modular cycle is complete.  There are two moduli: initially 12, yielding pitch-class values; then 6 against the result, giving values for corresponding octave-registrations.   Each resulting pitch is tallied, with its tally total's reciprocol then assigned as that pitch's constant duration.  Accordingly within any cycle, the collective duration for all instances of any given pitch is exactly 1.  This program generated the data underlying Cycles for Synclavier (1984).  It is quoted with sample output in Winsor & Delisa, Computer Music in C, Windcrest (1990).
____________________________________________________________________________

SetTrans_P
Generalized Multiplicative Transform via Prime-Only Octave Dimensions
(1985)

If a tone series' octave dimension is prime, all multiplicative-transform factors (not just 5) yield the full chromatic.  Freed from its dodecaphonic substatus as a special case, this transform now becomes a generative principle.  Given prime-tone series input, SetTrans_P specifies the data for all transform levels, outputting to Csound for pitch specification.  The program's essential functions were later incorporated into IntLens version 2, described above.
____________________________________________________________________________

AIR
All-Interval Row Generator
(Forth, 1984)

Generates a permutation of the integers modulo-N (pitch classes) such that all possible unique successive differences (interval classes) are represented in absolute value twice each.  If the modulus is even, signs modifying the instances of a given IC are opposite; if it is odd, they are the same, with a final value redundancy.  The number of array positions separating member instances of each IC are unique for odd moduli and nearly so (one exception) for even.  Three arrays are output per example found: the pitch-class series, its intervals as signed classes, and the position separations per interval-class pair.
____________________________________________________________________________