g-chord
seed chord-low chord-high transp-low transp-high pattern
The function g-chord enables the composer to generate chords from a symbol melody or row. The size of the chord generated will lie between chord-low and chord-high parameters. The optional transposition of symbol elements can also be set to lie between transp-low and transp-high parameters.
The function works with symbols and intervals.
Intervals
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | (setq op.31-var-for-orch '(1 7 9 6 8 0 5 4 10 11 2 3)) (setq interval-list (get-interval :all op.31-var-for-orch)) --> (6 2 -3 2 -8 5 -1 6 1 -9 1) (g-chord .25 1 2 0 0 interval-list) --> (6 2 (-3 2) -8 5 (-1 6) (1 -9) 1) (i-convert 1 -5 43 (g-chord .25 1 2 0 0 interval-list)) --> (b h j gi a f ek lc d) (setq interval-lists (rotate-f interval-list)) --> ((6 2 -3 2 -8 5 -1 6 1 -9 1) (2 -3 2 -8 5 -1 6 1 -9 1 6) (-3 2 -8 5 -1 6 1 -9 1 6 2) (2 -8 5 -1 6 1 -9 1 6 2 -3) (-8 5 -1 6 1 -9 1 6 2 -3 2) (5 -1 6 1 -9 1 6 2 -3 2 -8) (-1 6 1 -9 1 6 2 -3 2 -8 5) (6 1 -9 1 6 2 -3 2 -8 5 -1) (1 -9 1 6 2 -3 2 -8 5 -1 6) (-9 1 6 2 -3 2 -8 5 -1 6 1) (1 6 2 -3 2 -8 5 -1 6 1 -9)) (i-convert 1 -5 43 (g-chord .25 1 4 0 0 interval-lists)) --> ((b hjgi a fekl cd) (fc e-e bagh -c-bf) (ce -eb ag h-c-bf h) (jb gf lm de kmj) (b gf lm de km jl) (qp v wn ou wt vn) (mstk lrtq skp) (vwno uwt vn sr) (sjkq sp rj on t) (kl r tq sk pou v) (w]_ \ ^v[ z`a x)) |
Symbols
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | (g-chord nil 2 5 0 2 '(a b c d e f g)) --> (cde fg gh) or ... (g-chord 0.24 2 3 -5 11 '(a b c d e f g)) --> (de cde mn) (g-chord 0.32 2 3 0 24 '(a b c d e f g)) --> (mn jk nop) (g-chord 0.25 1 3 0 0 (g-cluster .34 's -6 6 7 9)) --> (ef g h i-d-c -ba) (g-chord 0.56 3 4 2 3 (g-cluster .23 's 0 0 '(4 5 7 9) '(6 7 7 8))) --> ((hijk kl) (ijkl mno) (jklm ode) (mnod def g)) (g-chord 0.23 3 4 -11 11 (g-cluster .23 's 0 0 '(4 5 7 9) '(6 7 7 8))) --> ((nop efg) (lmn bcde) (ijkl b-k-j) (stu -d-c-b kl)) |
In the following example notice how the function enables a sequence of identical outputs from the gen-repeat to be processed as unique sequences of chords. Normally, this sort of process would only be possible with the function gen-collect.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | (g-chord .23 1 4 -5 45 (gen-repeat 12 (list '(a b c d e f g h i j k l)))) --> ((z[\] fgh pq wxy) (rstu mnop klm o) (vwx -c _`ab i ` ij) (-f-e-d-c nop vwxy q) (s c -d-c i c fg pqrs) (efgh w g bc m g jk) (efg vwxy i d no i) (ij wx k lm bcd lm) ([\ wx [\ nopq tu) (-c-bab ijk z[\ lm) (-d ef yz pqrs t \ ^) (d qrst defg nop)) |
g-cluster
seed type transp-low transp-high rotate-number cluster-number
0-based
type: c s r
rotate-number: 0 to 11
cluster-number: 0 to 11
c =cluster, s =step-melody, r =random
rotate-number from 0 to 11, cluster-number from 0 to 11
Rotation plays an important role in classic serial composition strategies. The function cluster should be seen as a means of generating clusters or chromatic-step row of symbols capabale of sequential rotation prior to further transformation procedures.
1 2 3 4 5 | (g-cluster 0.34 'c 0 0 0 3) --> (abc) (g-cluster 0.34 's 0 0 3 3) --> (d e f) |
Random transposition in range 0 3.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | (g-cluster 0.34 'c 0 3 3 3) --> (efg) (g-cluster 0.34 's -6 6 7 9) --> (e f g h i -d -c -b a) (g-cluster 0.34 's nil nil 7 9) --> (h i j k l a b c d) (g-cluster nil '(c s c s) -12 12 '(4 5 7 9) '(6 5 7 8)) --> ((mnopqr) (b c d e f) (tuvwxmn) (r s t i j k l m)) (g-cluster nil 'r -12 12 '(4 5 7 9) '(6 5 7 8)) --> ((klmnop) (-f-e-d-c-b) (f g h i j -c -b) (-d-c-b-m-l-k-j-i)) |
g-cluster2
seed type transp-low transp-high cluster-number
type: c = cluster, s = step (melody), r = random
1 2 3 4 5 | (g-cluster2 0.34 'c 0 0 3) --> (abc) (g-cluster2 0.34 's 0 3 3) --> (d e f) |
Random transposition in range 0 3.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | (g-cluster2 0.34 'c 0 3 3) --> (def) (g-cluster2 0.34 's -6 6 9) --> (g h i j k l m n o) (g-cluster2 0.34 's nil nil 13) --> (a b c d e f g h i j k l m) (g-cluster2 nil '(c s c s) -12 12 '(6 5 7 8)) --> ((-h-g-f-e-d-c) (-c -b a b c) (ijklmno) (l m n o p q r s)) (g-cluster2 0.3571 'r -12 12 '(6 5 7 8)) --> ((k l m n o p) (m n o p q) (m n o p q r s) (m n o p q r s t)) |