opmo Posted March 20, 2016 Share Posted March 20, 2016 New functions: find-ambitus sequence &key type series section [Function] Arguments and Values: sequence omn-form list or list of pitches. type :integer or :pitch. The default is :integer. series NIL or T. The default is NIL. section an integer or list of integers. Selected list or lists to process. Description: The function FIND-AMBITUS returns the ambitus (low high) values of the entire or specified section of the sequence. (setf omn-seq '((s cs5 p g6 mp mf -) (s cs5 f e g3 ff s p) (s cs5 mp g6 mf f -) (-s cs5 ff e g3 p) (s g3 mp - e cs5 mf) (s g6 f ff e cs5 p) (s g3 mp mf e cs5 f) (s g6 ff p cs5 mp g3 mf) (e g3 f s cs5 ff g6 p) (e g6 mp -s cs5 mf) (e g3 f -s g3 ff) (s cs5 p e g6 mp s mf))) (find-ambitus omn-seq) => (-5 31) (find-ambitus omn-seq :type :pitch) => (g3 g6) Example: Variationen Fuer Klavier Op.27, I (setf sequence '((-s) (e f4e5 pp -s db5) (-s) (-s eb4 pp c4d5 -) (-s) (-s c4d5 pp eb4 -) (-s) (e db5 pp -s f4e5) (-s) (s gb4f5 p a5 -) (s d4ab4db5 p bb4 -) (-s a5 p gb4f5) (-s) (s b5 f gb4g5 -) (s a3bb4 f ab4 -) (s c4d5 f> eb4 -) (s db5 f> f4e5 -) (-s) (s gb4f5 p a5 d4ab4db5 bb4 -) (-s) (-s a5 pp gb4f5) (-s) (-t b2 f e3 bb3 - d5 c4eb4) (-s) (s db3 f - s. g5 -t) (s gb4f5 p) (-t a3 mp ab3 mf -s. t db5f5 f c4 -) (s e3e4 p) (-t s. d2 f -s ab5 mf) (-s) (t gb4a4 p g3 mp - b2 f e3 bb3 e3 a3 eb4 - g5 mf f4ab4 mp) (-s) (s f2 f - s. c6 -t) (s b2bb3 p) (-s t db5 mp -s. t gb5bb5 f4 f -) (t a3 f ab2 - ab2 a3) (-t f4 f gb5bb5 mf) (-t a3 mp d4ab4 c4 p bb5db6 mf) (-t b2 f3 b2 -) (t bb5db6 c5 f d4ab4 a3 p) (-s) (t b4eb5 p bb3 -) (t d4 p db3 - db3 d4) (-t bb3 p b4eb5) (-s) (-s eb5 p bb3b4 -) (-s) (e d4db5 p -s c5) (-s) (e c5 p -s d4db5) (-s) (-s bb3b4 p eb5 -) (-s) (-s ab3g4 p e4 mf) (-s c4gb4b4 f5) (-s db5 mp bb3a4) (-s) (-s eb4d5 p gb4) (-s e4 p f3g4) (-s b3 p a2bb3) (-s c5db6 pp ab5) (-s) (-s e5eb6 p g5 c4f4b4 p> gb4) (-s) (-e) (e d5ab5db6 pp))) (find-ambitus sequence) => (-22 27) With keyword :type :pitch the function will return the ambitus list in pitch values. (find-ambitus sequence :type :pitch) => (d2 eb6) With keyword :series T the function will return a list of ambitus values for every sublist (bar) of the sequence: (find-ambitus sequence :series t) => (nil (5 16) nil (0 14) nil (0 14) nil (5 16) nil (6 21) (2 13) (6 21) nil (6 23) (-3 10) (0 14) (5 16) nil (2 21) nil (6 21) nil (-13 14) nil (-11 19) (6 17) (-4 17) (-8 4) (-22 20) nil (-13 19) nil (-19 24) (-13 -2) (5 22) (-16 -3) (5 22) (-3 25) (-13 -7) (-3 25) nil (-2 15) (-11 2) (-2 15) nil (-2 15) nil (2 13) nil (2 13) nil (-2 15) nil (-4 7) (0 17) (-2 13) nil (3 14) (-7 7) (-15 -1) (12 25) nil (0 27) nil nil (14 25)) The NIL means no pitch values are found in the sublist. Here we get the ambitus from the section (bar) 30: (find-ambitus sequence :section 30) => (-13 19) ------------------------------------------------------------------ 12tone-analysis row set &key order note [Function] Arguments and Values: row a list of integers or pitches (must be a 12-tone row). set a list of integers or pitches. order NIL or T. The default is NIL. note a string. Annotation. Description: The function 12TONE-ANALYSIS analyses all 48 forms of a row matrix to find the given pitch-class set. When found, it will return all the Forms that contain the pitch-class set in any order. The initial row is known as THE ORIGINAL PRIME ORDER. There are four basic forms to a row: P - Prime: Left to Right I - Inversion: Top to BottomR - Retrograde: Right to Left RI - Retrograde-Inversion: Bottom to Top (12tone-analysis '(3 11 10 2 1 0 6 4 7 5 9 8) '(2 1 5 3 6 4)) => Original Prime Order: (3 11 10 2 1 0 6 4 7 5 9 8) Pitch Row: (eb4 b4 bb4 d4 cs4 c4 fs4 e4 g4 f4 a4 gs4) Set: (2 1 5 3 6 4) Pitch Set: (d4 cs4 f4 eb4 fs4 e4) Complement: (0 7 8 9 10 11) Pitch Complement: (c4 g4 gs4 a4 bb4 b4) PCS: (6-1 6-1) Form: (P3 ((6 2 1 5 4 3) (9 7 10 8 0 11))) (RI4 ((2 1 5 3 6 4) (10 9 8 0 11 7))) (I10 ((1 5 6 2 3 4) (10 0 9 11 7 8))) (R9 ((5 6 2 4 1 3) (9 10 11 7 8 0))) (P9 ((0 8 7 11 10 9) (3 1 4 2 6 5))) (RI10 ((8 7 11 9 0 10) (4 3 2 6 5 1))) (I4 ((7 11 0 8 9 10) (4 6 3 5 1 2))) (R3 ((11 0 8 10 7 9) (3 4 5 1 2 6))) With the keyword order T the result of the search will return Form in the given pitch-class set order. (12tone-analysis '(3 11 10 2 1 0 6 4 7 5 9 8) '(2 1 5 3 6 4) :order t) => Original Prime Order: (3 11 10 2 1 0 6 4 7 5 9 8) Pitch Row: (eb4 b4 bb4 d4 cs4 c4 fs4 e4 g4 f4 a4 gs4) Set: (2 1 5 3 6 4) Pitch Set: (d4 cs4 f4 eb4 fs4 e4) Complement: (0 7 8 9 10 11) Pitch Complement: (c4 g4 gs4 a4 bb4 b4) PCS: (6-1 6-1) Form: (RI4 ((2 1 5 3 6 4) (10 9 8 0 11 7))) Example: Schoenberg 'Opus 37' 12-tone row taken from the Opusmodus library: (setf opus-37 (library 'vienna 'schoenberg 'r24)) => (d4 cs4 a4 bb4 f4 eb4 e4 c4 gs4 g4 fs4 b4) (12tone-analysis opus-37 '((2 1 9 10 5 3) (7 8 0 11 4 6)) :note "Schoenberg Opus 37, Fourth String Quartet") => Schoenberg Opus 37, Fourth String Quartet Original Prime Order: (2 1 9 10 5 3 4 0 8 7 6 11) Pitch Row: (d4 cs4 a4 bb4 f4 eb4 e4 c4 gs4 g4 fs4 b4) Set: ((2 1 9 10 5 3) (7 8 0 11 4 6)) Pitch Set: ((d4 cs4 a4 bb4 f4 eb4) (g4 gs4 c4 b4 e4 fs4)) PCS: (6-16 6-16) Form: (P0 ((2 1 9 10 5 3) (4 0 8 7 6 11))) (RI5 ((10 3 2 1 9 5) (6 4 11 0 8 7))) (I5 ((7 8 0 11 4 6) (5 9 1 2 3 10))) (R0 ((11 6 7 8 0 4) (3 5 10 9 1 2))) Let us test the result of the above: (12tone-forms opus-37 :note "Schoenberg Opus 37, Fourth String Quartet") => Schoenberg Opus 37, Fourth String Quartet Original Prime Order: (2 1 9 10 5 3 4 0 8 7 6 11) Pitch: (d4 cs4 a4 bb4 f4 eb4 e4 c4 gs4 g4 fs4 b4) I 0 11 7 8 3 1 2 10 6 5 4 9 0 2 1 9 10 5 3 4 0 8 7 6 11 1 3 2 10 11 6 4 5 1 9 8 7 0 5 7 6 2 3 10 8 9 5 1 0 11 4 4 6 5 1 2 9 7 8 4 0 11 10 3 9 11 10 6 7 2 0 1 9 5 4 3 8 P 11 1 0 8 9 4 2 3 11 7 6 5 10 R 10 0 11 7 8 3 1 2 10 6 5 4 9 2 4 3 11 0 7 5 6 2 10 9 8 1 6 8 7 3 4 11 9 10 6 2 1 0 5 7 9 8 4 5 0 10 11 7 3 2 1 6 8 10 9 5 6 1 11 0 8 4 3 2 7 3 5 4 0 1 8 6 7 3 11 10 9 2 RI The hexachordally combinatorial pairs: (12tone-analysis '(0 8 7 11 10 9 3 1 4 2 6 5) '(5 1 0 4 3 2)) => Original Prime Order: (0 8 7 11 10 9 3 1 4 2 6 5) Pitch Row: (c4 gs4 g4 b4 bb4 a4 eb4 cs4 e4 d4 fs4 f4) Set: (5 1 0 4 3 2) Pitch Set: (f4 cs4 c4 e4 eb4 d4) Complement: (6 7 8 9 10 11) Pitch Complement: (fs4 g4 gs4 a4 bb4 b4) PCS: (6-1 6-1) Form: (P5 ((5 1 0 4 3 2) (8 6 9 7 11 10))) (RI6 ((1 0 4 2 5 3) (9 8 7 11 10 6))) (I0 ((0 4 5 1 2 3) (9 11 8 10 6 7))) (R11 ((4 5 1 3 0 2) (8 9 10 6 7 11))) (P11 ((11 7 6 10 9 8) (2 0 3 1 5 4))) (RI0 ((7 6 10 8 11 9) (3 2 1 5 4 0))) (I6 ((6 10 11 7 8 9) (3 5 2 4 0 1))) (R5 ((10 11 7 9 6 8) (2 3 4 0 1 5))) The trichordal combinatoriality: (12tone-analysis '(0 4 5 2 3 7 1 9 8 11 10 6) '((0 4 5) (2 3 7) (1 9 8) (11 10 6))) => Original Prime Order: (0 4 5 2 3 7 1 9 8 11 10 6) Pitch Row: (c4 e4 f4 d4 eb4 g4 cs4 a4 gs4 b4 bb4 fs4) Set: ((0 4 5) (2 3 7) (1 9 8) (11 10 6)) Pitch Set: ((c4 e4 f4) (d4 eb4 g4) (cs4 a4 gs4) (b4 bb4 fs4)) PCS: (3-4 3-4 3-4 3-4) Form: (P0 ((0 4 5) (2 3 7) (1 9 8) (11 10 6))) (R6 ((0 4 5) (2 3 7) (1 9 8) (11 10 6))) (RI1 ((7 3 2) (5 4 0) (6 10 11) (8 9 1))) (I7 ((7 3 2) (5 4 0) (6 10 11) (8 9 1))) (RI7 ((1 9 8) (11 10 6) (0 4 5) (2 3 7))) (I1 ((1 9 8) (11 10 6) (0 4 5) (2 3 7))) (P6 ((6 10 11) (8 9 1) (7 3 2) (5 4 0))) (R0 ((6 10 11) (8 9 1) (7 3 2) (5 4 0))) More examples: (12tone-analysis '(0 4 5 2 3 7 1 9 8 11 10 6) '((0 4 5) (2 3 7))) => Original Prime Order: (0 4 5 2 3 7 1 9 8 11 10 6) Pitch Row: (c4 e4 f4 d4 eb4 g4 cs4 a4 gs4 b4 bb4 fs4) Set: ((0 4 5) (2 3 7)) Pitch Set: ((c4 e4 f4) (d4 eb4 g4)) Complement: (1 6 8 9 10 11) Pitch Complement: (cs4 fs4 gs4 a4 bb4 b4) PCS: (3-4 3-4 6-8) Form: (P0 ((0 4 5) (2 3 7) (1 9 8 11 10 6))) (R6 ((0 4 5 2 3 7) (1 9 8) (11 10 6))) (RI1 ((7 3 2 5 4 0) (6 10 11) (8 9 1))) (I7 ((7 3 2) (5 4 0) (6 10 11 8 9 1))) (P6 ((6 10 11) (8 9 1) (7 3 2 5 4 0))) (RI7 ((1 9 8 11 10 6) (0 4 5) (2 3 7))) (I1 ((1 9 8) (11 10 6) (0 4 5 2 3 7))) (R0 ((6 10 11 8 9 1) (7 3 2) (5 4 0))) Example with smaller segments: (12tone-analysis '(0 6 1 5 2 4 3 7 11 8 10 9) '((0 6) (1 5) (2 4) (3) (7 11) (8 10) (9))) => Original Prime Order: (0 6 1 5 2 4 3 7 11 8 10 9) Pitch Row: (c4 fs4 cs4 f4 d4 e4 eb4 g4 b4 gs4 bb4 a4) Set: ((0 6) (1 5) (2 4) (3) (7 11) (8 10) (9)) Pitch Set: ((c4 fs4) (cs4 f4) (d4 e4) (eb4) (g4 b4) (gs4 bb4) (a4)) PCS: (2-6 2-4 2-2 singleton 2-4 2-2 singleton) Form: (P0 ((0 6) (1 5) (2 4) (3) (7 11) (8 10) (9))) (P6 ((6 0) (7 11) (8 10) (9) (1 5) (2 4) (3))) (I0 ((0 6) (11 7) (10 8) (9) (5 1) (4 2) (3))) (I6 ((6 0) (5 1) (4 2) (3) (11 7) (10 8) (9))) (P3 ((3 9) (4 8) (5 7) (6) (10 2) (11 1) (0))) (RI0 ((3) (2 4) (1 5) (9) (8 10) (7 11) (6 0))) (I3 ((3 9) (2 10) (1 11) (0) (8 4) (7 5) (6))) (R6 ((3) (4 2) (5 1) (9) (10 8) (11 7) (0 6))) (P9 ((9 3) (10 2) (11 1) (0) (4 8) (5 7) (6))) (RI6 ((9) (8 10) (7 11) (3) (2 4) (1 5) (0 6))) (I9 ((9 3) (8 4) (7 5) (6) (2 10) (1 11) (0))) (R0 ((9) (10 8) (11 7) (3) (4 2) (5 1) (6 0))) ------------------------------------------------------------------ 12tone-forms row &key type note [Function] Arguments and Values: row a list of integers or pitches (must be a 12-tone row). type :integer or :pitch. The default is :integer. note a string. Annotation. Description: The function 12TONE-FORMS displays all 48 forms of the row at a glance and is an invaluable tool when composing or analysing twelve-tone music. The initial row is known as THE ORIGINAL PRIME ORDER. There are four basic forms to a row: P - Prime: Left to Right I - Inversion: Top to BottomR - Retrograde: Right to Left RI - Retrograde-Inversion: Bottom to Top (12tone-forms '(3 11 10 2 1 0 6 4 7 5 9 8)) => Original Prime Order: (3 11 10 2 1 0 6 4 7 5 9 8) Pitch: (eb4 b4 bb4 d4 cs4 c4 fs4 e4 g4 f4 a4 gs4) I 0 8 7 11 10 9 3 1 4 2 6 5 0 3 11 10 2 1 0 6 4 7 5 9 8 4 7 3 2 6 5 4 10 8 11 9 1 0 5 8 4 3 7 6 5 11 9 0 10 2 1 1 4 0 11 3 2 1 7 5 8 6 10 9 2 5 1 0 4 3 2 8 6 9 7 11 10 P 3 6 2 1 5 4 3 9 7 10 8 0 11 R 9 0 8 7 11 10 9 3 1 4 2 6 5 11 2 10 9 1 0 11 5 3 6 4 8 7 8 11 7 6 10 9 8 2 0 3 1 5 4 10 1 9 8 0 11 10 4 2 5 3 7 6 6 9 5 4 8 7 6 0 10 1 11 3 2 7 10 6 5 9 8 7 1 11 2 0 4 3 RI Matrix in pitch: (12tone-forms '(3 11 10 2 1 0 6 4 7 5 9 8) :type :pitch) => Original Prime Order: (3 11 10 2 1 0 6 4 7 5 9 8) Pitch: (eb4 b4 bb4 d4 cs4 c4 fs4 e4 g4 f4 a4 gs4) I 0 8 7 11 10 9 3 1 4 2 6 5 0 eb4 b4 bb4 d4 cs4 c4 fs4 e4 g4 f4 a4 gs4 4 g4 eb4 d4 fs4 f4 e4 bb4 gs4 b4 a4 cs4 c4 5 gs4 e4 eb4 g4 fs4 f4 b4 a4 c4 bb4 d4 cs4 1 e4 c4 b4 eb4 d4 cs4 g4 f4 gs4 fs4 bb4 a4 2 f4 cs4 c4 e4 eb4 d4 gs4 fs4 a4 g4 b4 bb4 P 3 fs4 d4 cs4 f4 e4 eb4 a4 g4 bb4 gs4 c4 b4 R 9 c4 gs4 g4 b4 bb4 a4 eb4 cs4 e4 d4 fs4 f4 11 d4 bb4 a4 cs4 c4 b4 f4 eb4 fs4 e4 gs4 g4 8 b4 g4 fs4 bb4 a4 gs4 d4 c4 eb4 cs4 f4 e4 10 cs4 a4 gs4 c4 b4 bb4 e4 d4 f4 eb4 g4 fs4 6 a4 f4 e4 gs4 g4 fs4 c4 bb4 cs4 b4 eb4 d4 7 bb4 fs4 f4 a4 gs4 g4 cs4 b4 d4 c4 e4 eb4 RI Example: Schoenberg 'Opus 23' 12-tone row taken from the Opusmodus library: (setf opus-23 (library 'vienna 'schoenberg 'r01)) => (cs4 a4 b4 g4 gs4 fs4 as4 d4 e4 ds4 c4 f4) Example with annotation: (12tone-forms opus-23 :note "Schoenberg Opus 23") => Schoenberg Opus 23 Original Prime Order: (1 9 11 7 8 6 10 2 4 3 0 5) Pitch: (cs4 a4 b4 g4 gs4 fs4 bb4 d4 e4 eb4 c4 f4) I 0 8 10 6 7 5 9 1 3 2 11 4 0 1 9 11 7 8 6 10 2 4 3 0 5 4 5 1 3 11 0 10 2 6 8 7 4 9 2 3 11 1 9 10 8 0 4 6 5 2 7 6 7 3 5 1 2 0 4 8 10 9 6 11 5 6 2 4 0 1 11 3 7 9 8 5 10 P 7 8 4 6 2 3 1 5 9 11 10 7 0 R 3 4 0 2 10 11 9 1 5 7 6 3 8 11 0 8 10 6 7 5 9 1 3 2 11 4 9 10 6 8 4 5 3 7 11 1 0 9 2 10 11 7 9 5 6 4 8 0 2 1 10 3 1 2 10 0 8 9 7 11 3 5 4 1 6 8 9 5 7 3 4 2 6 10 0 11 8 1 RI lviklund 1 Link to comment Share on other sites More sharing options...
Recommended Posts