omnibrain / svguitar

Create beautiful SVG guitar chord charts
MIT License
688 stars 41 forks source link

Are you still working on this repo? #83

Closed Kernix13 closed 2 years ago

Kernix13 commented 2 years ago

I would love to contribute if you are. I have a website based on guitar chords, though I haven't created new content in a while: Every Guitar Chord

omnibrain commented 2 years ago

Hi @Kernix13, yes, I'm still maintaining this repo and add features from time to time.

Is there a specific feature you're missing? I'm always open to suggestions how to make this library better.

Kernix13 commented 2 years ago

Nothing specific. I am trying to get my first job, and I assume that at best I can only get a Jf Front End Dev job. So I want to get some contributions on my GitHub profile and resume. So far, I've only contributed typo fixes and reporting issues on freeCodeCamp. I have a number of interests so I searched for repos on topics related to them: guitar chords, photography, etc. And since I only know vanilla JS, I used that as a search criterion.

Actually, looking at the demo page vs the README, I like the chords that show the finger numbers on the notes. I did that as well on my chords, but also for the finger barring strings. I have chords that have barres using other fingers.

Another thing I did was to add the chord intervals below the chord, e.g. for say a 4 string G7 (x-x-3-4-3-3) I would have b7, 3, 5, R at the bottom of the chord. But then I created my chords in Inkscape, not via SVG, so i/ don't know how easy or difficult that would be. I think intervals are better than the notes values like for G7: F-B-D-G, you should know that they are b7, 3, 5, Root. I also had the thickness of the strings decrease from the low E to the high E.

But it's your project and I don't want to do anything that you are not interested in. I also have not worked with typescript. I think I have somewhere close to 300 closed chord voicings for every chord that I think is valid, and maybe 2600+ or so of open chords. I know what the intervals are for all of them, plus I labeled the fingers to use for each one. I assume a huge JSON file would be required for EVERY possible voicing for every chord type. I think I have over 20 closed chord voicings for a dominant 7th chord, but there are other chord voicings where I only have a handful.

Do you have any ideas?

Kernix13 commented 2 years ago

Although it would be better to have a user enter their chord with the fingers and fret numbers, then the chord should be created with the chord name, chord tone intervals, and maybe notes with alternate chord names and common scales that build that chord. Like x-3-2-0-0-0 for an open C major 7th, intervals: R-3-5-M7-3, also written as CM7, Cma7, Cmaj7, and C with an upward-pointing triangle. But the notes may make the page sloppy.

Here is an example of a G7th chord without the 5th from one of my blog posts.

omnibrain commented 2 years ago

It sounds interesting, but so far I deliberately did not put any music related logic inside this library, it's really just for rendering SVG and is purposefully kept "dumb", so that it can be used for other instruments as well like ukuleles and citars.

I think the way to go would be to introduce a plugin system, where we can then create plugins that eg. contain logic for rendering specific chords, without providing all the fingerings manually. I already started doing this in the past, I just need to resurrect the code and continue working on it.

If you want to make a change to the library itself, I am open for that, but you'd have to be very specific about what you want to implement and what the API would look like.

Kernix13 commented 2 years ago

You are way more advanced than I am. Did you create a library just for this project? I'm still struggling with algorithms. I think the user would supply the fingerings since there are so many possible variations. Look at an open A chord - some people finger the 3 notes individually, but not always the same fingers, or you can barre the 3 notes with the index or ring finger.

Well, let me know if you think of something that I could help with.

omnibrain commented 2 years ago

I originally created this library for https://chordpic.com, a website to create guitar chord diagrams.

Sure, I'll let you know when there's something you could help me with. At the moment I don't have anything though, so I'm closing this issue for now.