February 2, 20197 yr Hello, Somewhat stupid question but I do not find a function that would allow me to reorder a sequence of pitches. Let me explain, on a forum where Messiaen's limited transposition modes are discussed, I wanted to show that with Opumodus we could very easily analyze the modes and recreate them. I have no problem with those who are in total symmetry and divisible by two, but if I take the mode 3: (c4 d4 eb4 e4 gb4 g4 ab4 bb4 b4), using the function pitch-transpose-start I get in the end the mode but according to the postponement of the intervallic structure on c4 d4 ab4 is => ((c4 e4 gs4) (d4 fs4 bb4) (eb4 g4 b4)). I tried to reorder with the function pcs-normal-order the mode is reordered but with however the c4 in last position: (d4 eb4 e4 fs4 g4 gs4 bb4 b4 c4). Now, I suppose there is a function that makes it possible to obtain the right disposition. What is it ? (setf modmessiaen3 '(c4 d4 eb4 e4 gb4 g4 ab4 bb4 b4)) (setf SIMessiaenMod3 (pitch-to-interval modmessiaen3)) ; => (2 1 1 2 1 1 2 1) (setf mod3divide (gen-divide 3 modmessiaen3)) (setf firstmodmessiaen3 (filter-first 3 modmessiaen3)) (setf report3 '(c4 e4 ab4)) (setf rep3 (gen-repeat 3 (list report3))) (setf pch3 (modus (flatten (pitch-transpose-start firstmodmessiaen3 rep3)))) (setf MessiaenMod3 (pcs-normal-order pch3 :pitch)) (setf SIMessiaenMod3a (pitch-to-interval MessiaenMod3)) ; => (1 1 2 1 1 2 1 -11) (setf mod3chordsM (melodize '((c4eb4gb4) (d4gb4bb4) (eb4gb4bb4) (e4g4b4) (gb4bb4db5) (g4b4d5) (ab4b4d5) (bb4gb5) (b4d5gb5)))) (setf analysechords3 (pcs-analysis (integer-to-pitch (modus mod3chordsM)))) In particular, this distorts the analysis of the interstellar structure of mode 3: of (2 1 1 2 1 1 2 1) I get (1 1 2 1 1 2 1 -11) Besides, there is probably a more efficient script than the one I tried? Best. Didier PS : In fact, I realize that the function pcs-normal-order is not adapted at all according to the modes.
February 2, 20197 yr Author I would like to get the mode in the right order: '(c4 d4 eb4 e4 gb4 g4 ab4 bb4 b4)) and not '(d4 eb4 e4 gb4 g4 ab4 bb4 b4 c4)) Hence this question: is there a function to get an ascending order in a list rather than using pcs-normal-order? (setf modmessiaen3 '(c4 d4 eb4 e4 gb4 g4 ab4 bb4 b4)) (setf pch3 ( ? (flatten (pitch-transpose-start firstmodmessiaen3 rep3)))) => ((c4 e4 gs4) (d4 fs4 bb4) (eb4 g4 b4)) => (c4 e4 gs4 d4 fs4 bb4 eb4 g4 b4) ? If I go look for mode 3 in the library OPMO I have this: (setf Messiaen3 (pitch-transpose 0 (expand-chord-name (library 'modes 'messiaen 'messiaen-mode3) :type :pitch))) => (c4 d4 eb4 e4 fs4 g4 gs4 bb4 b4) (expand-chord-name (library 'modes 'messiaen 'messiaen-mode3) :type :interval) => (2 1 1 2 1 1 2 1) In the result with pitch-transpose-start : (c4 e4 gs4 d4 fs4 bb4 eb4 g4 b4) and => (4 4 -6 4 4 -7 4 4) => The music notes are correct but permuted. and with pcs-normal-order : (d4 eb4 e4 fs4 g4 gs4 bb4 b4 c4) => (1 1 2 1 1 2 1 -11) => The music notes are correct but permuted. I get the intervallic structure is shifted. Thanks in advance Janusz.
February 3, 20197 yr Why you use the PITCH-TRANSPOSE-START function and what is the goal. What about PCS-PRIME-FORM. Should this be generated or given by hand: (setf mod3chordsM (melodize '((c4eb4gb4) (d4gb4bb4) (eb4gb4bb4) (e4g4b4) (gb4bb4db5) (g4b4d5) (ab4b4d5) (bb4gb5) (b4d5gb5)))) I can't find the thought in your progression.
February 3, 20197 yr Simpler: (setf mod3chordsM (melodize '((c4eb4gb4) (d4gb4bb4) (eb4gb4bb4) (e4g4b4) (gb4bb4db5) (g4b4d5) (ab4b4d5) (bb4gb5) (b4d5gb5)))) (setf analysechords3 (pcs-analysis mod3chordsM)) In general your code could be much simpler.
February 3, 20197 yr Author I wish to analyse process of Messiaen's modes of limited transpositions. I choose one of the modes, say the 3, from OPMO's "modes" library, which gives me the mode : (c4 d4 eb4 e4 f4 g4 gs4 bb4 b4) - and its intervallic structure: (2 1 1 2 1 1 2 1). And I want to replicate the process. it's a starting point. There are 9 notes, I divide them by 3 and I get three trichords ((c4 d4 eb4) (e4 gb4 g4) (ab4 bb4 b4)) and the same 3 (1 2 1). if I select the first trichorde (c4 d4 eb4) and I report it on each of the first notes of the three trichordes c4 - e4 - ab4 from the function Pitch-Transpose-Start I get as result mode 3 but disordered : (setf mod3divide (gen-divide 3 modmessiaen3)) ; => ((c4 d4 eb4) (e4 gb4 g4) (ab4 bb4 b4)) (setf firstmodmessiaen3 (filter-first 3 modmessiaen3)) ; => (c4 d4 eb4) (setf report3 '(c4 e4 ab4)) (setf rep3 (gen-repeat 3 (list report3))) ; => ((c4 e4 ab4) (c4 e4 ab4) (c4 e4 ab4)) (setf pch3 (flatten (pitch-transpose-start firstmodmessiaen3 rep3))) ; => ((c4 e4 gs4) (d4 fs4 bb4) (eb4 g4 b4)) => (c4 e4 gs4 d4 fs4 bb4 eb4 g4 b4) This result I wanted to reorder in an upward progression and as I did not find the function, I tested pcs-prime-form but which is not adapted. But I found the function that I wanted with sort-asc and I reconstruct the mode 3 and its intervallic structure : (setf Messiaen3order (sort-asc pch3)) ; => (c4 d4 eb4 e4 fs4 g4 gs4 bb4 b4) (setf SIMessiaenMod3a (pitch-to-interval Messiaen3order)) ; => (2 1 1 2 1 1 2 1) Of course, I can combine the two functions together : (setf process3Messiaen (sort-asc (flatten (pitch-transpose-start firstmodmessiaen3 rep3)))) ; => (c4 d4 eb4 e4 fs4 g4 gs4 bb4 b4) But thank you Janusz for your questions. concerning the Pitch-transpose-Start function you had indicated to me when I wanted to recreate the multiplication chords of Pierre Boulez. Best wishes. Didier
Create an account or sign in to comment