Posted: Apr 07, 2016 3:12 pm
I worked on filling in the space a bit. I decided to try adding a few select founder licks to help get more licks with vertical entropy when the note entropy and rhythm entropy is on the low side. And that worked pretty well. It seems that the right founder licks can have a big effect on the final population. Here's a new 10 gen run.

I also worked on trying to explore the tension dimension around the whole sweet and source space. To do that I ported a stripped down version of my tension mutation function. The original tension mutation function, which is explained here, was modified to just randomly give one new tension variation of a lick when called instead of creating all possible variations (when that's practical to do). I ran this new tension mutation generator for a considerable time, and while it filled in areas of the sweet n sour n tension space, I think the general 3D curve that is emerging is representative of what part of the space is inhabitable. I tried to make a custom lick to see if it could be sour with low tension (quick Jimmy Hendrix chord and long duration resolution) but that didn't do it. Maybe a quick stab at a very dissonant mess of a chord followed by a lot of resolution will do it but I'm not sure how interesting that is.

Here's what the space looked like after adding a lot of tension variations. It filled in some but didn't change the basic shape of the curve.

Because I don't have a great way to represent 6 dimensional space, you can't see the relationships between a given area in entropy space and sweet n sour n tension space. To get a better view of that, for the licks I have on hand, I created six sub spaces, each one limiting entropy space to a plane (a thick plane ) sliced in various ways. With this you get a better view of how those regions contain licks that have certain sweet n sour n tension values. Here's what those regions look like:

The top two charts for each image is the entire space. The bottom two are for one of the plane slices. Left is entropy space, right is sweet n sour n tension space.

slices in a rhythm plane.

I'm liking how these spaces work along with the other counter-factuals to filter what licks are possible. It's a nice paradigm.

Once you have a new space, you can mutate the licks in it if you want to add to the space. I ran 10 generations of mutations for the last plane I showed above. Here's what the results look like:

On a bit of a different topic, I ran some mutations of the turnaround licks and got a space that looks like on the bottom of this chart:

Now all of this is pretty abstract and rather than work on improving the heuristic so it's better at filling the nooks and crannies of the spaces I think it more productive to work on making some actual music from the licks generated so that I can get feedback on how effective these entropy and sweet n sour metrics are. So I'm going to switch my focus a bit on that.

I'll need a mechanism for selecting which lick to play. For that, I'm planning on building on an idea the Moog Music uses in Animoog to control sample playback. You set a path and control orbits around that path.

I'll also need a simple language to program songs.

So that's what will be next.