Fretful.io (scales/chords fretboard web visualizer)

Mini survey: Do you think the keyboard display is fine as it is? Or do you think it is overkill to have 2 keyboards on the page?

1 Like

Wow, so much work, and so worth it, it really is great. Thanks for the great effort.

3 Likes

Added the harmonic modes! I have to refactor the way scales are generated. They were tuned for 7 or less note scales and need a bit of rework to better accommodate scales with more than 7 notes.

Added a mode numeral indicator to the scales list

I’m trying a new layout on the scale information panel
image
image

4 Likes

Oh, wow, that looks awesome, @gcancella - I’ll check this out more thoroughly tomorrow!

Not easy to keep all that information organized AND accessible, but what a resource…!

5 Likes

I think it is really impressive considering the amount of information in there now!! Some scales are certainly “exotic”, but good to have them all there. I would still like to see the Bebop scales as a group, even though they are “just” variants of already covered scales (with the added chromatic passing notes).

How did you “collect/find” all the chords that go with the scales?? That alone is just such a great resource…

There are some minor tweaks that could be done to improve it some more: for instance, some of the shape info starts on very high frets (e.g. for G scales on the 15th fret) - is there a particular reason for that? The shapes seem to develop from right to left over the fingerboard as opposed to left to right (at least that would seem more natural for me). Again, perhaps you could have a “mirroring” option…

I am sure I will be able to provide more feedback as I plan to dive more into this fantastic tool over the next weeks!

Thanks again on putting this all together!!

3 Likes

They’re coming, don’t worry! I was having some problems with non-diatonic scales, due to the way this was built in the beginning. I refactored it already, and it’s now in a testing phase.

It’s self-generated by the tool. It cycles through every mode within the chosen scale and derives the chords from the chord structures I already have configured. It’s actually simpler than it sounds

Yeh, the shapes are the Achilles heel as of now. They’re not smartly generated.

image

This is a picture of the Major Chord blueprint.

As you can see the shape is “hard coded”. I’m telling it it has a ‘1’ on the bottom string (up is down), an a ‘3’ and a ‘5’ on the next string. And well… this is has some obvious pitfalls, some you already mentioned, but also if we have different tunings I can’t guarantee the shape. Will have to rethink the shapes approach and create a way to generate all the possible shapes.


Please do! :pray:

My pleasure, really! It’s been a wonderful challenge. Both regarding musical theory (it demystified a lot of stuff for me) and programming (data structures for chaos).

4 Likes

Added the Bebop scales and also the Neapolitan major and minor modes.

Also added a tooltip to the intervals on the information panel

3 Likes

Applied the new information panel layout to the Chords page and the mobile versions

5 Likes

Added an enharmonics equivalencies tooltip to the notes on the information panel. Both on Scales and Chords

image

3 Likes

Added another major feature. On the Chords page, you now get all scales with that chord

4 Likes

Swee–eeeet :grinning:

Maybe a bug? I just happened to check G major 7 flat 5 and it listed the scales starting on G and Ab, only for those two, but again and again…

3 Likes

Oooops. I will have to check it later

2 Likes

@joergkutter I would appreciate some advice regarding scale(chord, also?) matching.

Should I enforce exact matches disregarding enharmonics? Take the G major 7 flat 5 for instance. Should I look only into scales with the exact notes G B Db F# or should I consider all possible enharmonics? For instance, should it match the A Bebop Dominant, which has the notes A B C# D E F# G G#, be a match?

My concerns here are the debate of pitch vs function, if that was not obvious

PS: I reverted the last deploy because of the bug you reported

2 Likes

I’m adding the chord number to the derived scales listing

I could also add a note (a different background, maybe?) to whether or not the chord was enharmonized (i don’t believe this word exists) to fit the scale

2 Likes

Hey, @gcancella… maybe we need to back up a bit here and look at some of those issues a bit more before implementing all these cool new possibilities!?! You have added so much cool stuff lately, and I am still trying to catch up and digest some of the underlying principles yet…

First of all, I have to admit I am not sure what the best way is to deal with the enharmonic issues… my gut feeling is that the matching should include the enharmonics, but I am really not sure.

But, I also think there is much more to that scale-chord relationship that I can’t say I have fully understood yet. When you presented your tool where the software is basically matching the chords to the scales (and vice versa) by letting it construct all possible chords from the notes in the scales, I thought that was way cool, and pretty much something I had wondered how to realize myself for a while.

Still, I am a bit skeptical as to whether this software solution can be “trusted”. Don’t get me wrong, it seems like a fantastic tool, but I am skeptical because I don’t have worked my way through this problem on my own first, with pen and paper in hand, and perhaps a bass :grinning_face_with_smiling_eyes:

What makes this worse, is the fact that “jazz cats” apparently also use other scales on certain chords (i.e., not scales the software has identified, probably because they use “forbidden” notes…). Case in point: it seems to be very hip to use the altered scale over a dom 7 chord (i.e., G altered over G7, where G altered is, of course, the 7th mode of Ab melodic minor).

I am sure there are more examples like this… maybe some information (some chord-scale relations or combinations) need to be added manually at some point!?!

My feeling is perhaps we need to get input from some of the grown-ups in here!?! @JoshFossgreen? @Gio? I am starting to feel a bit in over my head here… :sweat_smile:

4 Likes

I blame christmas’ holidays for that. I don’t like to be without nothing to do (programming wise) and I got so motivated and in the zone that I’m spitting feature after feature. :joy:

I’m also inclined to include the enharmonics. I think it makes sense, and let the user worry about the function of the chord :stuck_out_tongue:

I will explain step by step in a following post, how this is done so you can take your own conclusions.

Don’t worry! I’m the first one to have doubts :slight_smile:. As it’s blatantly obvious for the ones that follow this thread since its inception, i’m not a musical theory guru. That’s also why I consider this tool is an alpha version (no even a beta!) and also why I value yours and others advice and inputs so much.

As it is, the relationships are purely mathematical and all the chord tones are pretty much required for the match to happen. Which is something I have to rethink, because there are some notes within a chord that are “optional”, and this might be why it’s not matching in the case you exposed (it’s not a case of enharmonics, the 5th of the chord (D) has no correspondence in the altered scale which has a C# and a D# but no D. So making some chord tones optional might be the way to go. I’ll have to do some more research into this.

PS: Music Theory/Complete List of Chord Patterns - Wikibooks, open books for an open world
Yes, according to this, the optional 5th would indeed make the scale match the chord

I think what I said above would solve this.

That would be great! Big problems need big guns!

2 Likes

In any case, I deployed the fixed version. So if anyone wants to chip in the discussion, knows what we’re talking about

2 Likes

I applied an example of what I was saying about “optional tones” to the Dominant 7th chord (just that one) to add to the discussion.

You can see it now suggests the altered scale

fretful.io/chords/g/dominant7

you can compare it to the previous version here. you can see there are a lot more recommendations
previous–fretful.io/chords/g/dominant7

2 Likes

Wicked! I am still processing… :grin:

Your second example is a C7, but the scales shown start from Ab!?!

Also, when you go up chromatically, listing the possible scales, you go: B - B# - Cb - C, which is “logical” from a alphabetical point of view, but which should be B - Cb - B# - C from a musical point of view… And the same with: E - Fb - E# - F

2 Likes

I’m actually writing the post where I explain how I approach these. From the ground up (scales, chords, derived chords and derived scales). I’m afraid it got too technical, I’m toning it down and will try my best to explain it to a non-programming audience. Please don’t feel like i’m patronizing you or anyone on this thread.

Sh*t., the idea was to share the G7 also for comparison. Updated the link.

Yes, as of now, I’m looping through all notes to generate the scales. Hence why it’s alphabetically organized. Whatever chord you choose, the scales suggestions will start on Ab (if there are any). Do you think it should start on the tonic? I was also wondering about this

Ow, nice catch! You’re totally right. I’m going to fix that. Programmers and their need for alphabetically organized stuff… :joy: (fixed it!)

2 Likes