Developing a heuristic for evolving guitar blues licks

Towards the development of a pseudo simulated annealing genetic heuristic for evolving blues ideas

Architecture, graphic design, your projects.

Moderators: Calilasseia, Blip, ADParker

Re: Developing a heuristic for evolving guitar blues licks

#41  Postby John Platko » Nov 30, 2015 7:26 pm

I added a bend "cool" mutation. It looks within a lick to see if a target pitch of a 1 or 2 semitone bend is already being played in the lick and if it is it adds a bend to that pitch to the note. This is another example where the scale, chord, key of the lick isn't being changed. Here's what bend mutations look like. I didn't make a soundfile for this because it's easy enough to see what's happening in the score but if someone would find the sound file helpful just say so and I'll add it.

Image
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Ads by Google


Re: Developing a heuristic for evolving guitar blues licks

#42  Postby John Platko » Dec 01, 2015 4:49 pm

So far I've only demonstrated "cool" mutations. This class of mutations doesn't add any pitches to a lick that weren't already in it to begin with and the mutations start and stop on the original notes of the lick. This means that the mutation doesn't stray too far from the original lick. The scale, chord, key of the lick remains the same. Of course, that doesn't mean that we didn't "break" the lick in someway. I'm reminded of what Shrunk said early on in the thread.

The analogy I would use is that the blues (or any other musical idiom) is a language. The chord structure is like the grammar and licks or riffs are like idiomatic phrases that identify a fluent speaker of the language from someone who can do no more than speak the language well enough to get his thoughts across, but not with fluency.


Did the cool mutations I used ruin the fluency of the licks? If so, why? How would one determine such a thing?

Anyone who ever tried to play a musical instrument knows that it is possible to hit a note that doesn't play nice with the other notes you're playing - although Miles Davis might have disputed that. But the cool mutations avoid really klunker notes.

But now we move on to 'warm" mutations. This class of mutations has more creative freedom. All the notes don't have to be part of the original lick. And the lick doesn't have to stay it's original length - it can shrink or grow a bar. The main point is that the scale(s) and/or chord(s) of the lick could change - and that's a pretty big difference. And the starting-ending point of the lick can change- and that's a pretty big difference too.

Changing the chord/scale of the lick and where it starts and stops has a lot more potential for ruining the "fluency" of the lick- if that's actually a real thing that is possible to do. I mean - who decides such a thing. Are there blues lick gate keepers? And what rules do they follow? I'm reminded of the clip I posted earlier where Chuck Berry wasn't happy with how Keith Richards played his lick. And how Chuck insisted that Keith play it his way. Now I imagine that Keith has been playing that lick a certain way since he figured out how to play it off a Chuck Berry record - is there really something wrong with the lick Keith was using? :dunno: Anybody have any ideas about this?

The cool mutations were examples of asexual reproduction. That is, when a mutation occurred, a new one was created and the parent was left intact. Now we're getting to the good part - lick sex. These mutations take two licks and produce an offspring with bits from each parent lick. The way this works is that the front end of one lick is combined with the back end of another lick. The exact line defining front vs back is flexible. It shifts from offspring to offspring. But licks are confined to 1 or 2 bars in length.

Here's an example of two proud parent licks with their new baby. The beginning of lick 0 is combined with the end of lick 2

Image

And another example.

Image

That should give the idea of how my lick sex works. Licks can be defined originally to be asexual or just front ends or back ends, or both. Anyone have other ideas for good lick sex?

I took pretty much the original licks I've been using and let them spawn for a bit with each other. No cool mutations were introduced. Here's a pdf of the licks and their offspring.(the + shows which licks combined to produce the offspring). And here's what the licks sound like. I included the original licks up front followed by children - it's a bit hard to know exactly how to present this. I mostly want to give the feel for what kind of variety this can produce and also how the resulting licks can differ from cool mutations. It can be a bit hard to know where one lick ends and another begins if you're not following along with the music but even skipping around in the soundfile should give the idea of what lick sex is all about.
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#43  Postby John Platko » Dec 02, 2015 5:41 pm

A glance through the pdf of a couple of generations of spawned licks makes it clear that combining two licks as I did, i.e. the front end of one glued to the back end of another with various front/back boundaries adds a lot of creativity to lick evolution. And a warmer mutation like that isn't as constrained in scale, key, or chord as the cool mutations were. Which makes the question of "fluency" of licks more important because, while the apple didn't fall far from the tree with the cool mutations, now with warm mutations a new level of change, or to put it another way, more divergent ideas are introduced into the set of blues licks. And such divergent ideas brings up the question of whether or not these divergent ideas are compatible with the other members of the set of blues licks or they are just disruptive members - if there even is such a thing as a disruptive blues lick. Any thoughts about that?

The original set of licks that I used to spawn a few more generations had about 16 founder members. After the spawning, the set grew to about 241 members. Each member with it's own unique characteristics. Even with this simple example, it's easy to see how difficult it can be to see the trees from the forest. How might we go about finding out how the spawned licks diverge from the founder set? There are several ways we can go about this but the one that I'm introducing now is the use of network maps to help us see the forest from the trees and - well you get the idea.

One network map we can generate is one that shows which pitches (or groups of pitches) follow other pitches (or groups of pitches). And we can see how probable these pitch transitions are. I'll start with some simple examples to show what I mean.

I'll start with lick 0, which should be familiar by now.

Image

Here's a network map of lick 0.

Image

The green triangle shows where the lick starts. The red diamond shows where the lick ends. The arrows (the bold end of the lines are the heads of arrows) show the trajectory from pitch to pitch. The arrows are labeled with the % of times that transition is made. It's pretty easy to see what's going on in that lick with the network map to help.

Here's another lick:

Image

And here's the network map for it:

Image

The network map alone doesn't tell you the exact route the lick took through it's pitches but it does tell you which pitches it used and what pitches preceded other pitches. Well - you get the idea.

And we can use network maps to create a picture of entire sets of licks. For example, here's a network map for the founder set of licks that were involved in all that spawning around.

Image

Lines with two arrow heads are bi-directional, the percentage traveled for each is given near the head. Now we can see the forest from the trees. We can see where licks in the set might start. And where they might end. I attempt to shade the red and green so darker is higher probability. Not too surprising, since we're in the key of E, the simple licks I've chosen tend to end on E - but there are some other pitches they end on- it's a bit hard to see- maybe I need to shade everything a bit more.

And we can look at the network map for the set after all the spawning:

Image

This is a more connected map and it introduces a new starting pitch - d. Which brings up the question, does the lick that starts with d belong in this set of blues licks or is it a disruptive member? Is it useful to have around or will it just sound bad with the other licks. And will it add further disruption to our set of licks when it spawns new lick ideas? Tools like the network map that I just introduced can't answer that question but they can help point out how the behavior of licks is diverging from generation to generation and help guide the direction that the lick fitness function that my heuristic will need develops in.

The main point of this post is that we can use network maps to paint a big picture of the behavior of a whole set of licks.

I got to thinking about the starting on d question. d is a minor seventh in the key of E - And minor sevenths are pretty important for the blues. I did some noodling on an actual guitar and I noticed that other that as a passing note, I don't tend to start licks on the minor seventh - I don't know why. But the more I played around with it the more I found interesting uses for it. I imagine it's a very common thing to do, it just wasn't happening in my founder set. Which brings me back to the question of exactly what is a lick that a fluent blues speaker wouldn't use? Is there such a thing. Can we come up with a set of rules that make it obviously stand out? Can we list examples?

I'm reminded of a story Herbie Hancock is fond of telling. He was once playing with Miles and he hit what he considered to be a wrong chord, a chord he felt just didn't fit with what was being played, and he just felt awful for hitting it. And as Herbie tells it, Miles just paused for a second, and then started playing, and all of a sudden that chord didn't seem wrong. Herbie then usually says something like - there are no wrong notes or chords. So maybe there are no disruptive licks- maybe it's more about how we use them and what we play next to them. :dunno: Those are the deeper questions this blues project of mine is probing.

Anyway - that's an introduction to networks maps, I expect to use them and other tools to help create fitness function for my evolution of licks.

Any questions?

Edit:
:picard: That was so old school of me telling Herbie Hancock's story. I should have just let him tell it to you himself.

I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#44  Postby chairman bill » Dec 02, 2015 7:38 pm

There are no wrong notes; what matters is how you resolve them
Socialists: winning the fight against people-hating fascists of the right & (alleged) centre.
User avatar
chairman bill
RS Donator
 
Posts: 28091
Male

Country: UK: fucked since 2010
United Kingdom (uk)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#45  Postby John Platko » Dec 02, 2015 10:08 pm

chairman bill wrote:There are no wrong notes; what matters is how you resolve them


Ahhh, you seem to be in agreement with Miles Davis on that.

And that brings me to an unresolved question I have. Do licks need to resolve themselves in any particular way or can they pass the buck to the next lick to get the job done? Is there a resolution rule for licks? Without some sort of resolution the idea seems incomplete - but maybe that's just how some ideas are.

Scanning through my spawned licks I noticed this mutant. Is this a viable blues lick?

Image
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#46  Postby felltoearth » Dec 02, 2015 11:37 pm

If it feels good... Do it.
"Walla Walla Bonga!" — Witticism
User avatar
felltoearth
 
Posts: 11609
Age: 52

Canada (ca)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#47  Postby John Platko » Dec 03, 2015 3:29 pm

felltoearth wrote:If it feels good... Do it.


Now if I could just figure out how to teach my computer to feel ...
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Ads by Google


Re: Developing a heuristic for evolving guitar blues licks

#48  Postby John Platko » Dec 03, 2015 3:54 pm

John Platko wrote:
chairman bill wrote:There are no wrong notes; what matters is how you resolve them


Ahhh, you seem to be in agreement with Miles Davis on that.

And that brings me to an unresolved question I have. Do licks need to resolve themselves in any particular way or can they pass the buck to the next lick to get the job done? Is there a resolution rule for licks? Without some sort of resolution the idea seems incomplete - but maybe that's just how some ideas are.

Scanning through my spawned licks I noticed this mutant. Is this a viable blues lick?

Image



So I sat and thought about this some more. And I checked one of my sources for "founder licks". It sure does seem like there is some "rule" about licks resolving themselves. Often on the root but sometimes on the 4th, 3rd, or Perfect Fifth.

So I took a closer look at the starting and ending pontes of my founder set for the spawning:

[starting note, ending note, lick num]

['g', 'e', 0]
['g', 'e', 1]
['g', 'b', 2]
['b', 'e', 3]
['a', 'e', 4]
['g', 'a', 5]
['g', 'e', 6]
['a', 'e', 7]
['g', 'e', 8]
['e', 'e', 9]
['e', 'e', 10]
['b', 'e', 11]
['fis', 'cis', 12]
['b', 'b', 13]
['e', 'e', 14]
['e', 'e', 15]

And lick 12 stands out. I'm thinking that lick is in the key of f sharp and doesn't really belong in my set of licks in the key of E. I'm deeming it to be a disruptive member and banned it from the set. After doing that and re-spawning, all spawned licks ended up more or less resolved. My spawning algorithm still allows for new starting points of licks (and perhaps ending notes) because I allow rests to count as enough of a piece of a parent - I need to think about that some more, this is meant to be a warm mutation and perhaps just letting the scale, chord change is enough. I'm leaning towards letting the beginning change, i.e add space to the beginning of a lick but not let the end note change.

And this whole thing brings up a good question. Why not allow unresolved licks? Having a bunch of those ideas - half baked ideas, could help with the overall creativity. Putting together two half baked ideas might lead to exploration of interesting new musical spaces even though that does seem to be breaking the "rules" of blues licks.

I'll also just add. I've been producing new licks with genetic algorithms, but there is a more top down approach. with the network map of the set of founder licks, new licks could be spawned by specifying, or randomly picking, a viable starting and ending point and then have a map traversing algorithm find a path between the two points. It's a whole different approach and one I'll explore at some point. I just thought it worth pointing out the different approaches.
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#49  Postby Adco » Dec 03, 2015 8:22 pm

John Platko wrote:

Scanning through my spawned licks I noticed this mutant. Is this a viable blues lick?

Image

I tried the lick. A bit of gymnastics might turn it into something.
http://www.soundclick.com/bandAdmin/def ... b=songinfo
god must love stupid people - he made so many of them
User avatar
Adco
 
Posts: 1295
Age: 60
Male

South Africa (za)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#50  Postby John Platko » Dec 04, 2015 2:28 pm

Adco wrote:
John Platko wrote:

Scanning through my spawned licks I noticed this mutant. Is this a viable blues lick?

Image

I tried the lick. A bit of gymnastics might turn it into something.
http://www.soundclick.com/bandAdmin/def ... b=songinfo


I signed up for an account on soundclick but that link isn't taking me to a track. Any ideas about what could be going wrong?
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#51  Postby Adco » Dec 04, 2015 8:29 pm

Not sure. Try searching for adco1 as a band. I followed the link for external and it took me there.
god must love stupid people - he made so many of them
User avatar
Adco
 
Posts: 1295
Age: 60
Male

South Africa (za)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#52  Postby John Platko » Dec 04, 2015 9:25 pm

Adco wrote:Not sure. Try searching for adco1 as a band. I followed the link for external and it took me there.


I found it with the search. You're playing the lick about four times.

I think what it might be good for is as a gateway from minor to major. But I think it violates what seems to be the unwritten rule of licks that a lick needs to be a complete statement and resolve better than that does.

I'm still chewing on this. Any ideas on rules a lick should follow?
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#53  Postby Adco » Dec 05, 2015 1:54 pm

John Platko wrote:
Adco wrote:Not sure. Try searching for adco1 as a band. I followed the link for external and it took me there.


I found it with the search. You're playing the lick about four times.

I think what it might be good for is as a gateway from minor to major. But I think it violates what seems to be the unwritten rule of licks that a lick needs to be a complete statement and resolve better than that does.

I'm still chewing on this. Any ideas on rules a lick should follow?
If the Beatles got hold of it, I guess they would make a decent song from it. They made some music that didn't seem to fit the normal conventions.

As for rules that a lick should follow, I would say the song should be listenable after playing it a few times. Repetitiveness makes music sound better. Of course there will be exceptions where a lick is so bad it will never sound good. Like some of the songs I have written :whistle:
god must love stupid people - he made so many of them
User avatar
Adco
 
Posts: 1295
Age: 60
Male

South Africa (za)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#54  Postby John Platko » Dec 05, 2015 3:38 pm

Adco wrote:
John Platko wrote:
Adco wrote:Not sure. Try searching for adco1 as a band. I followed the link for external and it took me there.


I found it with the search. You're playing the lick about four times.

I think what it might be good for is as a gateway from minor to major. But I think it violates what seems to be the unwritten rule of licks that a lick needs to be a complete statement and resolve better than that does.

I'm still chewing on this. Any ideas on rules a lick should follow?
If the Beatles got hold of it, I guess they would make a decent song from it. They made some music that didn't seem to fit the normal conventions.

As for rules that a lick should follow, I would say the song should be listenable after playing it a few times. Repetitiveness makes music sound better. Of course there will be exceptions where a lick is so bad it will never sound good. Like some of the songs I have written :whistle:


I'm thinking this kind of lick belongs more to the class of "hot" licks, then this warm lick group that I'm working on. It doesn't seem to fit in with what I've seen people call a lick because it is so unresolved. But it does introduce a whole new lick design space - the unresolved lick space - which seems perfect for out of the box hot licks. I'm going to go back and make sure my spawning algorithm only uses beginning and ending notes of one of the parent licks for warm licks.

If nothing else, this sort of thing shows how a project like this helps me bring a bit more consciousness to what I'm doing when I noodle blues.
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#55  Postby John Platko » Dec 06, 2015 10:28 pm

This seems like a good time to introduce more analysis techniques of licks.

So far I touched on pitch entropy and duration entropy as measures of information content of pitch changes or duration changes. At some point harmony entropy needs to be added but that will be later. The entropy analysis is for each lick and only depends on that lick. I also showed network graph analysis which mapped the pitch transition characteristics of entire sets of licks. The next analysis technique will once again be for individual licks. An attempt will be made to determine what chord or chords contain the same or similar pitches as the lick and also what scale or scales contain the same or similar pitches to the lick. This is a pattern matching analysis.

Just so we're all on the same page:

From
In music theory, a scale is any set of musical notes ordered by fundamental frequency or pitch.


We're doing everything in the key of E for now. So scale choices are: E Major, E minor, E Major Pentatonic, E Minor Pentatonic, Either pentatonic with a blue note, for a minor pentatonic the blue note is the flat 5 note. For blues, besides major and minor scales, Dorian and Mixolydian modes or scales are common. A few other scales are also in play.

The blues is often a complex mix of jumps from one scale to the next, LickMaker will try to pin down a given lick to a given scale.

And from here

A chord, in music, is any harmonic set of three or more notes that is heard as if sounding simultaneously.[1][2] These need not actually be played together: arpeggios and broken chords may, for many practical and theoretical purposes, constitute chords.


For my purposes I'll be using the latter part of the definition. Lickmaker will try to find a chord or chords that best match the pitches that are found in a given lick.

For example. If the lick only had a Root note, a Major 3rd note and a Perfect Fifth note then LickMaker should identify the lick as being like a Major chord.

If anyone wants me to cover scales and/or chords a bit more slowly, just ask.

Here are some examples:

LIck 0:

Image

LickMaker thinks the lick is a lot like a 7 #9 chord and a min 11 chord. It can't make up it's mind which one it is more like.
And it's thinking this is a minor pentatonic scale.

Lick2:

Image

LickMaker is identifying the lick to sound like minor 9 and minor 13 chords. And it thinks a Dorian scale may be afoot.

Lick 3

Image

For Lick 3, LickMaker figured out a Power chord is in play, i.e. a root and fifth, but it could be lots of scales so it doesn't pick a scale.

Here's a more complete analysis of the founder set.

Image

And if anyone wants to see and hear a comparison of the licks with the chords and scales that LickMaker identified them with you can get a pdf here which shows the score of the lick followed by the score of the arpeggiated (played one note at a time) chords that LickMaker thinks the lick sounds like followed by the scale that LickMaker thinks is most like the lick. And you can hear this here.

Any questions?
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Ads by Google


Re: Developing a heuristic for evolving guitar blues licks

#56  Postby John Platko » Dec 08, 2015 11:42 pm

I'll just mention a bit more about why pattern matching licks to chords and scales might be useful.

One way, I imagine a pretty basic way, Jazz is taught is by dividing chords into three families. Major, minor, and dominant chords. Mixing Major and minor is also an important flavoring technique for the blues. It adds a "sweet and sour" mix. Why this is so (i.e. why major and minor sound the way they do) is an interesting question that people have been asking for a very long time - and someone asked it on the forum here not too long ago. The answer is still illusive but I'm thinking it has to do with the amount of harmony in the harmonics of the notes being played. And I tried to sus that out a bit in that thread.

But no matter why it works, mixing Major and minor gives the blues a unique flavor which is used to varying degrees by different artists. So knowing if the lick is major or minor is helpful in a variety of ways. One simple way is that it suggestions a mutation that takes a lick in a major scale and puts in in that keys minor scale or the other way around.

When you're improvising over a Jazz standard you can substitute other chords in the same family. I'm thinking the same idea can be used to substitute notes in a lick for those of another chord in the same family. Take a lick that's close to one chord and mutate it to some other chord, either in the same family or not.

Having a lick use at least some of the notes of the chord the rhythm is playing is a bit more sophisticated style of music. And having LickMaker understand chords and scales and have the capability to mutate any lick to another scale or chord seems useful.

And being able to analyze a lick to see what scale and chord it seems to match should be useful to my lick fitness function too. Those are some of the places I'm going with this.
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#57  Postby John Platko » Dec 09, 2015 5:06 pm

Continuing on with what I've been discussing.

The next warm mutation is to mutate a lick towards the pitches of a specific chord type. The" towards" part is a bit of a hedge because I currently leave bends alone, based on the assumption that a chord that makes sense for the key of the licks is being selected and a few key appropriate non chord note bends here and there is bluesy. But I think a few more options of what to do with bends is needed.

Here's an example of mutating lick 0 to a 7th chord. ( a 7 chord, also known as a dominant chord contains the root note, the Major 3rd, the Perfect Fifth, and the minor(dominant) 7th note)

Image

The new chord type is printed after the lick number on the score. (maybe 7th) would be less confusing. You can see what notes were changed.

Here's an example of mutating lick 0 to a min7. (min 7 is like the 7 except substitute a minor 3rd for the Major 3rd)

Image

Here's an example of mutating lick 12 to a 7th chord. - you get the idea.

Image

And here's a link to a pdf of all founder licks being mutated to various 7th and minor 7 chords as LickMaker saw fit to do.

And here's a link to what that all sounds like.
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#58  Postby John Platko » Dec 11, 2015 4:41 pm

And in the same way a lick can be mutated towards a specific key root chord, it can also be mutated towards other chords in the key. For blues mutating towards the IV and V chords is useful for the changes because then some or all of the chord notes will be blended into a lick with similar rhythm. The bends can either be left alone or mutated along with other notes.

Here's an example of lick 0 being mutated to A7 and Jimi Hendrix B7#9 chords.

Image

And here's the score for those and similar A7, B7#9 mutations. And you can hear them here.

And similar mutations can be done to move the scale from Major to minor without moving the position on the fret board. Also, there's no reason why these chord/scale type mutations have to follow conventional chord/scale definitions, :nono: any lick can be used as a reference for another lick to have be mutated towards pitches that make it sound more like that reference.
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#59  Postby John Platko » Dec 13, 2015 4:34 pm

It's getting a bit like standing in the paint isle of a hardware store looking at 200 shades of blue and wondering which one to pick so I think it's a good time for a brief summary of what went before and time for a new topic.

I gave a very brief, and vey general, summary of blues music, described blues licks and what role they play in blues music. I presented LilyPond - a free music engraving software, the Python programming language and software development environment. LickMaker, my program which takes LilyPond code, modified a bit, and then catalogs, analyzes, and mutates licks and then spits them back out in a LilyPond compatible format. LickMaker can now create midi files of licks so we can sort of hear them.

LickMaker can analyze the pitch entropy and rhythm entropy, i.e. the information content, of licks. It can also pattern match a lick in an attempt to determine what chord and/or scale it seems to be like. And LickMaker can create a network map showing all pitches used by all licks and the probability of going from one pitch to another.

LickMaker can make cool (subtle) mutations where the pitch inventory, and starting and stopping notes are left intact. Some of these cool mutations are: resting notes, switching position of notes, dividing a note into two of half duration, combining two notes into one of twice the duration, converting a quarter note to a triplet, converting a triplet to a quarter note, finding places to add a double stop in the lick without adding a new pitch to the lick.

And LickMaker can make warm (less subtle) mutations by mating the beginning of one lick to the ending of another lick at various boundary points, or moving the pitches in a lick toward those of a standard scale or chord, or even towards the pitches used in another lick.

I think that just about covers what I've demonstrated so far.

But not much has been said about rhythm - which is sometimes a bit of a sore spot for my playing and it got me thinking about why. One thing I've noticed is that while guitar players learn all sorts of frameworks for traversing the fretboard, i.e. scale patterns, box positions, arpeggio patterns, chord fingering, lick patterns etc. we are not taught much about timing patterns. Certainly nothing like all the pitch patterns that help one navigate that dimension of playing. I don't know why. If someone knows of such teaching aids, then please clue me in.

Now the note durations on the engraved music that I've been presenting contain all the information you need to play it - and LickMaker has no problem doing so. But I find it more difficult to simply use the notes as presented and often find it helpful to "count out the music". 1 -2 -3 - 4 or 1 + 2 + 3 4 - that sort of thing. You can read about it here.

It's curious why this counting helps. I'm guessing it's something about the patterns we humans develop over the years of counting things that are being brought to bear on the problem. :dunno: But it surely does help to integrate all the notes into something more meaningful and understandable until we manage to internalize the rhythm and don't need the count anymore. If anybody has any ideas about why this counting works I'd love to hear them.

Soooooo. I thought it might be useful to teach LickMaker to count music too. Counting is a bit of an abstraction from the original notes and it doesn't contain all of the information. That is, different rhythm patterns map to the same count - which is interesting and also food for more thought.

Here's a few examples of how LickMaker counts music. (I opted to not using "e" for 16th notes and count them 1 a + a. Using 'e' has an advantage of identifying which 16th note is being counted - on the other hand it can be easily inferred by it's position in the count. Anybody have feelings or ideas about his one way or the other?

I just print the count over the lick - not over each note in the lick -

Image

And I ran a few generations with some simple cool mutations to generate a bit more complicated counts. You can see that
here.
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

Re: Developing a heuristic for evolving guitar blues licks

#60  Postby John Platko » Dec 15, 2015 2:42 pm

Now that LickMaker can count the time for each lick, it can also compile a dictionary showing all counts used by all licks and how often they are used. Applying this to the founder set of licks yields:

(count, num of times used)
('1 2 3 + 4-t-l ', 1)
('1 2 3 4 ', 1)
('1 2 + 3 4 ', 1)
('1-t-l 2 3 4 ', 1)
('1 2-t-l 3-t-l 4-t-l 1 2 3 4 ', 2)
('1 + 2 + 3 4 ', 1)
('1-t-l 2-t-l 3 4 ', 1)
('1 2 + 3-t-al 4-t-l ', 1)
('1 + 2 + 3 + 4 + 1 2 3 4 ', 2)
('1 + 2-t-l 3-t-l 4-t-l 1 2 3 4 ', 1)
('1-t-l 2-t-l 3-t-l 4-t-l ', 2)
('1 2 + 3 + 4 + 1 2 3 4 ', 1)

This can be simplified somewhat by folding any second bar count into first bar counts. Which yields:

('1 2 3 4 ', 7)
('1 2-t-l 3-t-l 4-t-l', 2)
('1-t-l 2 3 4 ', 1)
('1 2 + 3 + 4 +', 1)
('1 + 2 + 3 + 4 +', 2)
('1 + 2 + 3 4 ', 1)
('1-t-l 2-t-l 3 4 ', 1)
('1 2 + 3-t-al 4-t-l ', 1)
('1 + 2-t-l 3-t-l 4-t-l', 1)
('1 2 3 + 4-t-l ', 1)
('1-t-l 2-t-l 3-t-l 4-t-l ', 2)
('1 2 + 3 4 ', 1)

And similarly, this can be simplified even more by compiling a dictionary of beat counts instead of bar counts. Which, for the founder set of licks yields:

('N-t-al', 1)
('N-t-l', 22)
('N +', 17)
('N', 44)

Where N is 1,2,3,or 4.

And applying this to the mutated set of licks that were counted in my last comment, folded on the bar, yields:

('1 a + 2 + 3 4 ', 1)
('1 + 2 + 3 + a 4 +', 1)
('1 2 3 + a 4-t-l ', 1)
('1 + 2 + a 3-t-al 4-t-l ', 1)
('1 2 + 3 + a 4 ', 1)
('1-t-l 2-t-l 3 4 ', 1)
('1 + 2-t-l 3-t-l 4-t-l', 1)
('1-t-l 2-t-l 3-t-l 4-t-l ', 2)
('1 2 + 3 4 ', 1)
('1 2 + 3 a + 4 ', 1)
('1 + 2 + 3 + 4 a +', 1)
('1 2 3 4 + ', 1)
('1 2 + 3 + 4 ', 1)
('1 2 a + a 3-t-al 4-t-l ', 1)
('1 + 2 a + 3-t-al 4-t-l ', 1)
('1 + 2 + 3 4 ', 2)
('1 2 + 3 4 + a ', 1)
('1 2 a + 3-t-al 4-t-l ', 1)
('1 + 2 + 3 4 + ', 1)
('1 2 + 3-t-al 4-t-l ', 1)
('1 + 2 + 3 + a 4 a +', 1)
('1 2 + 3 + 4 + ', 1)
('1 2 + a 3-t-al 4-t-l ', 1)
('1 a + 2 + 3-t-al 4-t-l ', 1)
('1 2-t-l 3-t-l 4-t-l', 2)
('1 2 + 3 + 4 +', 1)
('1 + 2 + 3 + 4 +', 2)
('1 2 + 3 4 + ', 1)
('1 + a 2 + 3-t-al 4-t-l ', 1)
('1 2 3 + 4-t-l ', 1)
('1 2 3 4 + a ', 1)
('1 + 2 + 3-t-al 4-t-l ', 1)
('1 2 3 4 ', 10)
('1 + a 2 + 3 4 ', 2)
('1-t-l 2 3 4 ', 1)
('1 + 2 a + 3 4 ', 1)
('1 + 2 + 3 + 4 ', 1)
('1 + a 2 a + 3 4 ', 1)
('1 2 3 4 a + ', 1)
('1 2 + 3 4 a + ', 1)

But when analyzed as beat counts that reduces to:

('N-t-l', 31)
('N-t-al', 9)
('N', 97)
('N +', 55)
('N a +', 11)
('N + a', 12)
('N a + a', 1)

Which is not all possible patterns but most of the used and useful ones. For those beat patterns 7**4 or 2401 patterns for 1 bar can be created and 5764801 patterns for two bars can be created - if I did that right!
I like to imagine ...
User avatar
John Platko
THREAD STARTER
 
Name: John Platko
Posts: 9411
Male

Country: US
United States (us)
Print view this post

PreviousNext

Return to Technical Design and Engineering.

Who is online

Users viewing this topic: No registered users and 1 guest