Hi Hamish,
For now, I’ll answer the first question with a small patch made in a hurry. Of course I’m limiting the case study to a diatonic/modal context, for a post-tonal context there would be a need for a completely different kind of approach, I think (the first one that comes to mind is to use the VOCODER function from the Esquisse library).
In this case, in order for the patch to work, it is necessary to declare the tonic (in midicents) of the entered score and the original mode/scale. Then you can declare a new tonic and a new reference scale, which will then map to the original, obtaining a variation in pitches.
I don’t know how apt it is, but I’m very interested in this comparison that is emerging. For the other question I plan to answer in the evening (I am engaged in some mandatory rehearsals). I await opinions and see you soon everyone!
neo
manipulate_xml_harmonic_fields.omp (55.8 KB)