Polyphony project v0.3.0

I spent two weeks attempting to write a working theory of digital music as it were, but it was a distraction from what sounded good, so I scrapped it and the “music” that resulted. I left that wrong turn with some new ideas however!

This complete rewrite:

  • organises everything into files
  • simplifies and detangles lots of spaghetti code, removing 1000 lines I didn’t need
  • keeps and builds upon what worked of the sections from v0.2.0
  • makes all rhythms calculative, with ideas I got from an interesting discussion about rhythm I shared earlier this month
  • frees modulations of key to go anywhere within the major/minor/locrian modality
  • begins to use version control and to document (I don’t know if an API is worth the effort), setting up a wiki, quick start readme, and contributors, &c.
  • &c.

Here’s a glimpse of what this program can do right now:

And here’s the project on GitHub:

:cherry_blossom: :dolphin:


wow, this is insane!!!

1 Like

thanks!! :blush: i think i’m nearing v1.0.0 and my first generative album

Congratulations! I think the splitting up into modules has greately improved the overal concept. It’s much clearer now and can be used more efficiently. Good luck with your album!

1 Like

Thank you! Yes, in the earlier stages of prototyping I just kept adding and adding as I experimented, but now things are finally settling and resolving. Thanks again for your help; there are three weights in the settings, and the general-purpose functions will find application elsewhere.

The music has changed so much in the months since my initial concept for the album that I think I’ll need something new. From “begin anywhere” to… “novum organum”? (Just learned that’s already a book by Francis Bacon, darn.)

I noticed that you restrict the harmonic structure to major/minor/locrian. Did you think about extending it? I have a background in Jazz music and we would rarely stick to such basic scales …
Maybe you had a look at the 12-bar blues I posted elsewhere (Topic: how to create a bass line?). I am spending quite some time in finding nice scale-hamony associations, especially for modulation of keys. This is what makes music so inherently interesting to listen. You can lead the audience to expect a certain change in harmony and then you break that expectation you just created - surprise! And then you can build up the tensions, such as one voice following a well known pattern, but the other voice starts to disent and deviate more and more with the pattern, the tension increases until a clever resolution is performed finally. That’s what I love to hear and do in music.

1 Like

If I had to describe the 16 strings and pianos track in one word, I’d say “Coplandesque.”

1 Like

I actually briefly ventured into exploring the other heptatonic scales after seeing one of your posts a couple weeks ago, and your reply just now made me suddenly realise how I could still do that! (I could code my modulation function to choose between Ionian/Lydian/Mixolydian and Dorian/Phrygian/Aeolian/harmonic minor/melodic minor.) (I love the Lydian mode.) Oh my gosh, that expands the palette manyfold!

Alright, I just implemented it, and I like what I’m hearing already. (Getting Steve Reich vibes.) Do I have options for augmented heptatonic scales? (It has to be heptatonic because of the way I calculate chords at the moment… but things could be different!) I’ll do some research.

Hmm… I’m going to give more thought to and learn more about voice relationship dynamics.

I especially like Baroque, Bebop, Minimalism, Trance. Speed, manifoldness, intensity.

I haven’t listened to much Copland. I’ll add some tracks to my queue!

Try from 3:08 to 4:21, maybe continue to 5:20:

On the seventh movement of Appalachian Spring with Leonard Bernstein conducting! Getting Stravinsky and Holst vibes. We performed this tune in band class!

I think you would create such a scale on your own: use the augmented scale and then remove the ‘uninteresting’ notes to get it in heptatonic form (i.r., remove 2nd, 4th, and keep 1, 3, 5, 6, 7)
EDIT: or try 1, 2, 3, 6, 7

Thanks! Alright, that provides something for every possibility I think.

Found two augmented heptatonic scales built in to Sonic Pi: :leading_whole and :enigmatic. I wonder how these will sound!

Looks pretty wild haha

Use the augmented preferably on the dom7 hamony in a minor key in order to create maximum tension before resolution

Noted! Yeah, I need to be judicious. The enigmatic scale does not sound musical at all.

I haven’t set any rules for resolution because I don’t want to use functional harmony.

Well, any chord progessions are functional somehow …

True, but I haven’t currently specified any chord progressions except for returning to the tonic chord, so the functions are all coincidental.

I think people listening cannot but hear the functional movements they are used to. Either you play with those perceptions, break those, develop those or ignore those. But at the end, you will have a judgement on what ‘sounds good’ (see your post above), and there are reasons why you think something sounds good or not. And these reasons can be expressed through purposeful composition (my believe …)

Yep, I too believe that good music can be rationalised to some degree, otherwise I wouldn’t have been able to program this algorithm (:smiley:) I’ve been composing for about a decade, and my rules are part theory and part experience. There are many rules I’ve been able to specify, but others like which chord to progress to I leave to chance, because I’ve found that under certain conditions, basically every chord progression can sound good.

That said, I didn’t use harmonic and melodic minor scales before this, and I think I’m going to need special rules for them.

1 Like

The interesting questions seems to be, what ‘rules’ you are using to develop the algorithms and what ‘freedom’ they have got to choose randomly. The chance that purely random generated notes ‘sound good’ is quite small. On the other hand, using randomness you can create new things that are lying aside the known paths …
I found it very inspiring to listen to the results of my programmed improvisations, because some of the sequences I would not have invented myself. Really interesting stuff to play with.

1 Like