yeah, but it’s (I hope) still kind of fun to find out what kind of chord something is… Even if ultimately you don’t care a ton…
Man I love fake books. I worked a place where they had one on each music stand and the band would sight read from fakebooks when they played.
And because a fake book usually has hundreds of songs, none of them is licensed.
Knowing is better than not knowing. And actually a cool use case for it might be to put a guitarist who reads in front of it, and let him try and play along with my bullshit. I definitely know guitarists that could read the chord names and play along, if you didn’t get too crazy.
For me notated music is a different perceptual/generative space than playing by ear. When I taught myself guitar (with a Mel Bay Guitar Method book) I focused on chord tabs and did everything else by feel and ear, because I needed that, in contrast to looking at sheet music and playing what’s on it.
It’s like if I’m playing without reading. The locus of creation is between my ears, not on a page or a screen. That feels sensually and emotionally different to me.
I only learned how to read music because some guy who worked for me in the 80’s was supposed to be writing a scoring program. Figured I should learn how to read music so I could have an opinion about that stuff…
But this program really does not require that you care about that stuff. The real output is the text. “this is a c major chord”. That’s not so esoteric…
Visualizer is in the library now. Thanks everyone who helped make it work decently!
this is how it looks like in my browser (win10), I can’t remember how it was yesterday
Yeah, I was just looking at that. Seems like a bug. Might be newly introduced.
Had a quick test and already love it. Really pairs well with the ChordVault Module that Andrew (PathSet) and I created a while ago.
Took a quick glance at the manual (thx for writing one!) and noticed the key signature dropdowns seem to be used only for the staff display and don’t “help” in recognizing chords due to the referenced key, right?
Also a quick question: Is there a plan to expand the types of chords that are recognized? I know this can be tricky, so it makes sense to at least start of with the most common in popular harmony.
Yeah, the key signature is only for the score. Yeah I’ve considered more chords. What did you have in mind? I do wish it could recognize a seventh with a missing third…
Well, it’s easy (now) to teach it any chord shape if recognizing the chord does not depend on the knowing some “musical context”. It does not know anything about musical context.
I can make a list in the next few days, if you want.
Nothing to extreme (as I don’t have a jazz background). But things like the min7b5 (from the Major/Ionian Mode) or some other common ones like Add9 and 4/7 would be cool to have.
Tell me the notes in those. I wonder if at least one isn’t something it already supports, just under a different name?
in C Major Bmin7b5 would be the 7th degree and notes are B - D - F - A Starting from C that would be C - Eb - Gb - Bb
Cadd9 is C - E - G - D (same as C9 but with out the 7th)
C6 (also called Major6) is another common one and would be C - E - G - A and that is where it gets tricky. These are the same notes as Amin7 1st inversion…
One way to add a host of cool chords is to allow triad over bass note or slash chords. A lot of these are actually common chords but a few are very exotic. Just allow any triad ( major minor especially) with any bass note (chromatic scale) and you get a lot of neat chords.
I think that first one is already recognized, under a different name. It does recognize all the sevenths that have a perfect fifth. Of course there are 4 of these, as the third and/or the seventh can be major or minor.
Hey, so I decided to give Visualizer a try and throw a bunch of weird guitar chords at it and see how it goes. Honestly, surprisingly good! It got most of the chords correct, or mostly correct based on my limited music knowledge:
One thing, it doesn’t seem to do flats… but that’s not a big deal. Bb is the same as A# in my narrow mind, some music theory people might disagree, but let’s not split hairs.You could argue that some of the notations look a bit funny… but I think it’s because of multiple of the same note in the poly getting counted separately, or because guitar chords are a bit weird sometimes. I would say it’s pretty neat still.
Now. Next I went out of my way to break things…
Here are a few examples where Visualizer doesn’t return exactly the chord I was expecting:
I wonder if it is my own fault however, since the poly chord doesn’t remove the X’d out strings and then has extra copies of the root note as filler - which perhaps mess up the chord or switch the intonation. (Also! maybe MY chords are the wrong ones…)
All of these was done in Cmaj mode btw. Not sure if it’s helpful at all!! I just thought that since Strings outputs a lot of funny chords it would be a fun way to test, and it sure was.
No idea how you managed this, it’s quite complex to name chords based on notes.
Thanks for the kind words, and all the good data. For many of these I’ll need to take some time and look closely at what’s going on. I also am not an expert at recognizing these chords!
I had thought that the recognizer ignores doubled notes. Maybe it doesn’t ignore them if they are shifted by an octave? I’ll need to look at that.
Similarly, the notation isn’t super smart, but I’m surprised to see it notate what look like two notes at the same pitch. It probably shouldn’t do that.
And, yeah, If you send it the notes that are supposed to be muted it’s going to count them and not get the expected answer. Just like it you played those notes it would sound bad in many cases. Don’t do that!
Now, a couple of things:
-
you can select flats if you want from the context menu. It should be documented. In most keys there is an “obvious” preference for sharps or flats, but not in C Major, of course.
-
In some cases C Major is a perverse choice of key, as some of these chords would be pretty dissonant in that key. It should still work, of course, but the notation would probably look less crazy in a key that was closer to containing those notes.
-
The notation should be correct (i.e. it’s a bug when it’s not), but the enharmonic spelling should merely be “good”, and the placement of sharps and flats should usually avoid symbols colliding on the page, but will not be great if there are lots of collisions.
Anyway, what the recognizer does is “not that hard”. It normalizes all the notes, and sorts them in pitch order. So 1,4,7 is clearly a major triad, etc… That part was “hard” but it turned out that getting the notation even as “good” as it is was much, much harder. Had I suspected, I would not have done it!
Anyway, I’ll look at these in detail and see what’s going on. It also sounds like I should throw out (not consider for recognition) notes that are duplicated in other octaves, yes?
Oh, I’m not familiar with that chord notation. But I guess the little number is saying “this line is fret number x”? and that open strings are fret 0?
Thanks again for all the good info!
… And some of those chords aren’t “supposed” to be recognized. Like C 6 is not something the manual claims it will recognize. Can always add more, of course…
Hi Cody I think there is an issue with your naming controls as well. Your notation calls a chord Caug that is most definitely C diminished. C aug would feature a G# and E not the Gb and Eb from your chord grip drawing. And sometimes a note your drawing identifies as G on the top E string ( the 3rd fret G) is always read as G# in Squinky’s detector. And the G on the open G string in the A7 chord is read as G# as well.
And slash chords is a way to bridge many of these issues with names. C6 is Am7, the same notes in a different arrangement. Often the chord is shown as C/A ( C major over the A bass note) also the same chord. So Major 7th chords become minor chord with bass notes a major third lower like Cmajor 7 is Em/C and Minor7th chords look like major chords with bass notes a minor 3rd lower like Dm7 is F/D. A lot of musicians are learning these chords like this to simplify the process, they learn triads and change the bass note as needed and play the whole gamut of 4 note chords with little new info crammed into their heads. On the other hand you can make complex chords like Gdim major7 easily as this is F#/G, an easy to understand thing. I think adding a triad over bass mode would take this to new level, just saying.
Interesting points! Thank you that was very helpful that you can read the notation so well and spot these.
But which module is right? I made a patch to run the String outs through Four-View to do some deeper research into the matter.
The chords in Strings are entered into a matrix as simple patterns. For example, “X02020” is A7-open. The strings should be tuned to EADGBE, so moving up the 3 and 5 strings each 2-stops should give XAEGC#E, which seems to check out on 4-view.
The 4th string is indeed supposed to be an open G… I’m really not sure why it is detected as a G# by Visualizer, so that could be the main part of the issue. It could be a rounding error, or difference in quantizer scale… I’m not exactly sure.
Funny thing is that for some other chords it seems to work just fine.
Like this case, where I put a capo +2 on the Gmaj, making it Amaj. Now suddenly it has all the right notes again:
capo at +11 on the Gmaj chord should make it F#maj. Also showing the right notes again.
Now capo at +12, a whole octave up, should be Gmaj, but it shows G#dim…
I hope this gives enough data. I bet it’s something really simple at the bottom of all this.