Show HN: I made a tool for learning scales, chords, and how to combine them (projects.alesh.com)

36 points by aleshh ↗ HN
This started out when I vibe-coded a guitar scale fingering generator. It came out pretty good, and I started adding stuff to it: chords, then how chords and scales interact.

Then I added charts for other instruments I mess around with: piano, cello, alto recorder.

There's a complexity toggle to go from basic harmony to extended/experimental stuff.

It's honestly still mostly a toy, but I thought other people might be interested in playing with it. Source is on github, so it's easy enough to run locally and fork.

https://github.com/aleshh/gtr-scales

11 comments

[ 4.5 ms ] story [ 42.0 ms ] thread
It’s a cool idea, but is there no way to hear the actual notes?
And you should add that it also teaches modes, which are counterintuitive and with dumb hard-to-remember names. Cool app, good job!
This is maybe good as a reference but its much better to just understand the basic shapes and you can play any scale from memory based on where you start the pattern on the fretboard. This seems a bit too intimidating compared to the tab pdf i used over a decade ago
i love this idea but i wish there was a simple way to play the sounds of whatever is currently selected. perhaps a play button near the top of the page or a spacebar hotkey
I have to ask. Do you seriously not mind your site looking like every other vibe coded site on the internet? Every project posted on hacker news these days has the same font and same rounded corners on everything.
The short answer is yes, I do mind.

I've taken some steps to mitigate this. I made a design brief (https://gist.github.com/aleshh/7435682311b6cb944bf18ecc3751f...) for LLMs to follow to kind of steer them in a particular direction. And I do spend time tweaking design with them.

But I agree it's not enough. The problem is, there are as I see it really two options here

(1) Guide the LLM and just spend more time on the visual stuff. The trouble is those refactors take as much time as adding major new features, sometimes more, because the LLM doesn't get it right and you gotta go around and around. So it takes a big time investment to go from something that's pretty good to something that's merely somewhat better.

(2) The other option is to do it all by hand. I sometimes do some of this, but the further along you get the harder it is, because the LLMS write lots of CSS, and (at least the last time I tried) refactoring their stuff is time-consuming and kind of a prerequisite to tweaking things.

Probably what I should do is expand on the design spec, and add it to AGENTS.md (instead of just throwing it in on the initial prompt) and generally try to get good on this aspect.

I should note that on my "real" project (https://flipper.fm), I spend a lot more time steering the design, creating a component library, Storybook, creating CSS classes for the LLM to use, etc etc. Again, this thing is a toy.

Sorry for the long answer, but you're really hitting on something real here.

Very nice, thank you. Bookmarked.
I like this, have you thought of adding more instruments like banjo?
Banjo would probably make sense and be straightforward. But since I don't play banjo I wouldn't have any way to verify that it's right. I do recommend just forking this and telling codex or whatever "add a Banjo setting to this" — good chance it'll get it right in one shot.