- Three Pre-compositional Algorithms
- __________________________________________________________________________
- IntLens: A Quasi-Prismatic Pitch-Class Series Registrator (1986..2001)
- Version 1, 1986 (Pascal)
- IntLens octave-complements &/or compounds the intervals of an input pitch-class series in all
- combinations of selection by interval class. The selection cycle iterates for each of six ranges
- of expansion, defined as <starting level for all ICs> to <target level for selected ICs>. These
- are: class to complement, class to compound, class to both; complement to compound, com-
- plement to both; compound to both. Within each range and combination, series registrations
- are calculated separately per mirror form (P,I,R,RI) and coordinate order (X/Y, Y/X). These
- registrations total (48 times (2 to the power of half the octave modulus)). Each is output as a
- pitch series array of signed integers beginning with 0.
- Version 2, 1988 (Forth)
- Generation is expanded to specify for each Version 1 array all multiples within a range of nine
- octaves. The registrations are now examined as simultaneities, i.e., as chromatic saturation
- chords. Output for each is a half-page chart with graph and associated statistics, e.g.:
SIF +1: 2 2 2 0 2 UrPC: 0 5 6 2 4 7 4 1 8 9 3 OD-Base 11
-1: 0 0 1 2 0 IC: 5 1 -4 2 3 3 2 -4 1 5 -3
SIF +1: 2 2 2 0 2 NwPC: 0 5 6 2 4 7 A 1 8 9 3 X/ C*1 O*1
-1: 0 0 1 2 0 IC: 5 1 -4 2 3 3 2 -4 1 5 -3 Prime R:0
TICs : 1 - - 4 - RfrP: A 19 0 13 17 22 28 31 44 26 35 S->T # 9
Rfr1: A-19 13 4 6 6 4 13-19 A Factor 2
| | | | |
*---------*---*---*-*---*---*-*---*---*---------*
2 0 3 4 1 5 9 6 7 A 8
Timbre:
P: 0 A 13 17 19 22 26 28 31 35 44 Range 44
I: 10 4 4 2 4 4 2 4 4 10 Transp 33
Timbre Int: 2 3 4 5 6 7 8 9 A
Occur Freq: 2 6 2
TI: Min-Max 2- A Spread 9 Used 3 > OD: 0
OF: 2- A 5 2
Frame: 9 A 10 11 12 Clusters: 3 4 5 6 7 8 9 A 10
OF : 8 1 OF : [240]
- A separate sort, available also outside the main loop, details relationships among these other-
- wise arbitrarily sequenced registrations. Up to sixteen criteria keys are applied, independently
- ascending or descending and in user-specified priority. Output is a vector-graph cascade with
- a sidebar of key values. The criteria are:
- 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
- This version was optimized for prime-number octave dimensions through routines incorporated
- from SetTrans_P, below. "AllDeg", one of IntLens 's secondary functions, was fully developed
- later and separately as KRIKOS, score generator for several pieces of that name. Its algorithm
- is described in their scores. IntLens 2 has a separate manual. Phil Winsor of UNT included
- the package in Summer 1989 curricular materials at National Chiao Tung University, Taiwan.
- Version 3, 1989 (APL)
- Initially a development environment port, producing the first dependable output graphs from
- function SORT, this version expanded IntLens's filing of intermediate data for subsequent
- retrieval by external compositional software.
- Version 4, 2001 (J)
- A final port, more fully absorbing its precursors and in a contemporary APL incarnation, this
- version anticipates its use as an external function with Csound-score building and related
- facilities incorporated from KRIKOS.
- __________________________________________________________________________
- AIR: All-Interval-Row Generator (1988)
- An old utility written in eight screens of Forth. Many fewer screens (or one line of APL) could
- deliver all that the subtitle promises. But its logic extends to emphasize further constraints.
- Quoting the documentation:
- Generate a permutation of the integers modulo-n (pitch classes), such that all
- possible unique successive differences are represented in absolute value (i.e.,
- as interval classes) twice each. If the modulus is even, then signs modifying the
- instances of a given interval class must be opposite; if it is odd, they must be
- the same, but with a final value redundancy. The number of array positions sep-
- arating the members of each interval class pair must be 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 IC-pair inner position separations.
- __________________________________________________________________________
- SetTrans_P: Generalized Multiplicative Transform via Prime-only Octave Dimensions (1985)
- Otherwise a standard PIRRI-matrix generator, this program assumed any octave mod-
- ulus (from its input-array dimension) and issued separate outputs per coordinate order
- and interval-multiplicative factor, to explore and document the following perspective:
- If the multiplicative transform is applied to a series whose octave dimension
- is evenly divisible, a full cycle of permutations preserving the total chromatic
- cannot be had. It is for this reason alone that our 12-tone system yields not
- five such transformations (via factors 6,5,4,3,2) but just :one (via factor 5).
- A 6-tone system yields none, but not because of its smallness. The mere
- 7-tone yields already two (via 3,2) and the 11-tone, four (5,4,3,2). These
- occur simply because 7 and 11 are not divisible, as they are prime.
- If octave dimension is prime and the multiplicative transform is applied via all
- factors (cardinally &/or ordinally, leading to I, R or RI), all intermediate permu-
- tations preserve the full chromatic. Further, each end series is seen integrally
- with them in a continuous generation. Freed from its special-case constraint,
- the transform now acts as a generative principle.
- This context integrates simple augmentation as well. Before its reduction
- in-modulo, any series multiple "refracts" as-it-were the series in expansions
- ranging another octave &/or durations-cycle for each factor increment.
- The program's essential functions were later subsumed by IntLens 2, described above.
- __________________________________________________________________________
- PMA