acrawnsley Posted August 26 Posted August 26 I'm doing some work (analytically) with Messiaen's finite permutations of sequences (Livre d'Orgue, Catalogue d'Oiseaux etc) - and want to be able to develop more functions in OM to generate versions of the various options that Messiaen sets out in his later writings and that have been also been analysed in a number of academic writings by others. The messiaen-permutation function in OM is really simple to use, but the documentation is pretty minimal and I cannot figure out what specific permutation this function uses? It does not appear to be either of the two standard 'fan' permutations (open or closed) and it only appears to generate one type of permutation. Could the code for this function be made available so it can be adapted - or can we have some options for adapting/arguments in the current function on the system? bw Andrew Quote

opmo Posted August 27 Posted August 27 I think 'Jesele' could help you with how to expand the messiaen-permutation functionality. Quote

jesele Posted August 27 Posted August 27 That's some code I wrote some 25 years ago for Symbolic Composer that Janusz converted for OM. I think I got the algorithm from some Messiaen book. Let me see if I can find it. Not sure if there was more than one permutation in the book though. If there was I would probably have added them. Jesper opmo and Stephane Boussuge 2 Quote

AM Posted August 27 Posted August 27 here... Messiaen_Olivier_The_Technique_of_My_Musical_Language.pdf https://monoskop.org/images/5/50/Messiaen_Olivier_The_Technique_of_My_Musical_Language.pdf opmo 1 Quote

acrawnsley Posted August 27 Author Posted August 27 10 hours ago, AM said: here... Messiaen_Olivier_The_Technique_of_My_Musical_Language.pdfUnavailable https://monoskop.org/images/5/50/Messiaen_Olivier_The_Technique_of_My_Musical_Language.pdf The permutations I’m referring to post-date The technique of my musical language book. They are described by Messiaen in the 3rd volume of Traité de couleur, et d’ornithologie as “permutations symétriques” and are based on finite outputs of substitutions by position within a sequence, so permutation is finite even with long sequences and return to the original sequence within a limited number of variants. These are fascinating patterns aesthetically and they are used initially in a limited way as part of the serial techniques in the Quatre études de rhythms in 1949-50 and then developed much more extensively in the works following, such as Le merle noir and Livre d’orgue from about 1951 on. Catalogue d’oiseaux is full of these permutations. The 32 value duration sequence at the opening of La chouette hulotte in Livre 3 of Catalogue is a key example. Messiaen describes the permutations thus: In the case of a chromatic scale of durations ranging from the 32nd note to the whole note, the number of possible permutations is so vast that it would take half a human lifetime just to write them down—and several years to play them. Therefore, it is necessary to make a selection—and to select in a way that will give the maximum opportunity for dissimilarity between one permutation and another. (Messiaen 1965) It is the selection and choices involved that make these permutations interesting. I have most of the permutations mapped out but want to develop OM functions for them. If you can share the code for the messiaen-permutation function, I’d be more than happy to do the development of this and share the results. bw Andrew Stephane Boussuge 1 Quote

opmo Posted August 28 Posted August 28 I could add the revised version into the OM with the next update. Could you make a function discription please for the documentation. Quote

jesele Posted August 30 Posted August 30 There is missing a reverse function in the open and closed types above but Janusz has a version that I hope is correct. I think it will be included in the next OM update. Jesper Quote

opmo Posted August 30 Posted August 30 Later today I will release an update with the new messiaen-permutation function. Just need to finish the new documentation. Quote

jesele Posted August 30 Posted August 30 Did you get my new update with the mapcar 'reverse Janusz? Jesper Quote

acrawnsley Posted August 30 Author Posted August 30 Absolutely great! I look forward to playing with this. I just updated versions. The documentation is also really excellent! Thanks Jesper and Janusz. This is just another reason why using OM is so rewarding. bw Andrew opmo and jesele 2 Quote

acrawnsley Posted August 30 Author Posted August 30 I have a bunch of material I'm already using so will drop some into the function and see what comes out. Will report back. jesele 1 Quote

jesele Posted August 30 Posted August 30 Yes, the documentation is really good. That's all Janusz. Thanks Janusz! Jesper Quote

acrawnsley Posted August 30 Author Posted August 30 Both closed and open fans are working perfectly. I'll play around with the integer options too - but that looks a bit more involved. jesele 1 Quote

jesele Posted August 30 Posted August 30 The Symmetrical Permutation is really simple (setf sequence '(1 2 3 4 5)) (setf order '(4 3 0 1 2)) (gen-divide 5 (messiaen-permutation sequence :type order)) => ((5 4 1 2 3) (3 2 5 4 1) (1 4 3 2 5) (5 2 1 4 3) (3 4 5 2 1) (1 2 3 4 5) (5 4 1 2 3)) so 1:st permutation '(5 4 1 2 3) is the sequence '(1 2 3 4 5) reordered by '(4 3 0 1 2) then the 2:nd permutation '(3 2 5 4 1) is the result of the 1:st permutation '(5 4 1 2 3) reordered by '(4 3 0 1 2) and so on… opmo 1 Quote

jesele Posted August 30 Posted August 30 (defun symmetrical-permutation (seq ord &aux (tmp seq)) (loop collect (setf tmp (position-filter ord tmp)) while (not (equal tmp seq)))) (symmetrical-permutation '(1 2 3 4 5) '(4 3 0 1 2)) => ((5 4 1 2 3) (3 2 5 4 1) (1 4 3 2 5) (5 2 1 4 3) (3 4 5 2 1) (1 2 3 4 5)) opmo 1 Quote

opmo Posted August 31 Posted August 31 update 3.0.29358 - small changes to messiaen-permutation with updated documentation. jesele 1 Quote

## Recommended Posts

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.