💾 Archived View for thrig.me › blog › 2023 › 05 › 31 › composing-with-constraints1.gmi captured on 2024-08-18 at 17:55:29. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-11-14)
-=-=-=-=-=-=-
Results from "Composing with Constraints: 100 Practical Exercises in Music Composition" by Jorge Variego, for better or worse.
There were birds carrying on outside. The choices here are pretty conventional--major scale, repeat things with minor variations. This does not make much use of the available rhythmic material, but does it need to?
"The Unanswered Question" by Charles Ives is probably a better example of using minor variations on a melody.
I'm not sure how far "extracted" allows one to go with the given rhythmic components--the Diabelli Variations, for example, take some small liberties with the theme. However, the following is a fairly conservative shuffle on the rhythmic units available.
And by shuffle, I mean that; there was a Fisher Yates Shuffle, and more random calls for the selection of the pitches:
#!perl ... use Music::VoiceGen; my @scale = qw/58 60 61 64 66 67 70 72 73/; my @pitches; while (1) { my $voice = Music::VoiceGen->new( pitches => \@scale, intervals => [qw/1 2 3 -1 -2 -3 -5/], ); @pitches = map { $voice->rand } 1 .. $note_count; # this exercise must not start and end on the same pitch last if $pitches[0] != $pitches[-1]; }
This code boils down to a markov chain of choices from each note of the scale to all the other notes as limited by the semitone interval list: 58 to 60 is allowed (interval 2) but 60 to 72 is disallowed (interval 12). Then you run the code a few times, and if it's picking good results, you run with or tweak from that; if not, fiddle around with the parameters or try some other method.
Metadata about the mandated scale might be good to know.
$ atonal-util basic c des e fis g bes c c,des,ees,ges,g,a 224223 6-30 Petrushka chord c,d,ees,ges,aes,a half_prime
On the other hand some composers have complained at having to unlearn things so they can get back to composing. Probably that was Sergei Prokofiev?
This one wan't easy and took a while, and the results probably aren't very good. I had the tempo at 120 but the instructions mandated 60... getting artists to sometimes follow directions may be a good thing.
/music/constraint/clarinet3.ly
/music/constraint/clarinet3.midi
/music/constraint/clarinet3.pdf
The demand here is to have the last four to six measures consist only of a four-note subset of the scale from the prior exercise; one might want to know what four-note subsets of that scale there are.
$ atonal-util subsets --length=4 6-30 | xargs -n 1 atonal-util basic | grep ^4 | sort -u 4-12 4-13 4-18 Diminished major seventh chord 4-25 4-27 Dominant seventh chord 4-28 Diminished seventh chord 4-9 Distance model 4-Z15 4-Z29
So, duh, dominants, and some other faff. The last four notes here involve forte number 4-28, or variations on:
$ atonal-util findin --pitchset=4-28 g bes - T(1) des,e,g,bes - T(4) e,g,bes,des - T(7) g,bes,des,e - T(10) bes,des,e,g - Ti(1) des,bes,g,e - Ti(4) e,des,bes,g - Ti(7) g,e,des,bes - Ti(10) bes,g,e,des
For some competent atonality, try George Rochberg's Symphony No. 5.