bragefuglseth/fretboard

[Feature] More instruments

Opened this issue · 10 comments

RaptaG commented

I'd love to see ukuleles, 4,5,6 string basses, 12-string guitars etc. to be supported!

Hi, and thanks for your suggestion! This is definitely something within the scope of the app, the challenge is really to create and maintain databases of chords for those instruments. Unfortunately, I don't think that's feasible with other guitars and tunings than 6-string EADGHE, but in the long term, I think we can try to add ukulele support. This is a popular instrument, and there's existing chord data for it to build upon.

RaptaG commented

Well, the 4 string bass has the same notes with the guitar up until G, so I assume it _could be possible. I'd love to see the ukulele chords though. Thanks for your response!

That's true, but I assume that 4-string bass guitar players who need to view chords can use the regular 6-string diagram. The ukulele is a bit different in that regard

RaptaG commented

Yes it is

the challenge is really to create and maintain databases of chords for those instruments.

Hi, I just came here to talk about that, because I'd like to see Ukuleles in the app.
Actually, is not necessary to have a chords database, recently with a friend we talked about this the only necessary is to have an algorithm for instrument maping and an algorithm for harmony theory, with that you just print a blank fret diagram and above you overlay the dots with the notes that makes the chord.

It is really, really useful specially for custom tunings, because you only set which note correspond for each open string and the app automatically generates the chord.
In fact, there is a similar app that I think it does exactly that.

Anyway, if I can help testing or something about Ukulele, I will be happy to do it.

4 string bass has the same notes with the guitar up until G

Baritone ukulele also has the same notes than guitar, but insted they are the four higher notes (DGBE).

That's true, but I assume that 4-string bass guitar players who need to view chords can use the regular 6-string diagram. The ukulele is a bit different in that regard

It is true, we have aprox 5 popular tunings but, the most popular is (gCEA) and it is used by some sopraninos, soprano, concert and tenor ukuleles. The most popular tunings are:

  • gCEA/GCEA
  • ADF#B
  • FBbDG
  • EAC#F#
  • GCEG
  • GCEBb

With an algorithm that generates the diagrams using the instrument maping will be able to generate this tunings and a lot other more, just allowing to the user to set a note for each open string; To facilitate to the users (beginner and mid) the most popular tunings could be sent as a preset and let the other tunings as manual for advanced users.

RaptaG commented

(I have a Soprano ukulele which I tune to standard tuning, gCEA)

Anyway, if I can help testing or something about Ukulele, I will be happy to do it.

Same here!

with that you just print a blank fret diagram and above you overlay the dots with the notes that makes the chord

That’s already how it’s done, the diagram wouldn’t be interactive otherwise :)

While an algorithm / dynamic chord generator is technically possible, there's a lot to take into account. How it might initially generate a chord might not be how most people actually play it, and thus you have to implement subsets, special cases, new logic taking open strings into account, and so on. The current chord dataset is scraped from a dynamic generator (a really good one), but it still needs manual patches to be optimal. With this in mind, I think there's better things to spend our time on than that, when existing data works.

That doesn't mean that I'm against a dynamic generator, and I'd happily accept a pull request implementing it while maintaining the current accuracy and reasonableness of the app, I just won’t do that myself.

I think it is easy fixable, for example adding a way to mark the most common used ways to make chords, and when the user connects to the internet upload that information and with statistics prioritise that diagrams. Idk coding, so I cannot collaborate with code, but I can take some afternoons to mark the most comfortable ukulele GCEA diagrams (Ukulele and Piano are the only instruments I can play)

That marks could be arrows like reddit votes to recommend some diagrams ans unrecommend another ones (specially those that could be impossible to do)

That is basically building a database from scratch, which fortunately isn’t necessary. There’s already data readily available :)

I’m currently working on a generic fallback algorithm to calculate chord names when people input a shape that isn’t in the database. We could display a message when the algorithm is used, saying that the algorithm has been used, and providing a link to open a GitHub issue to get it added to the database. Once it has been added there, it will show up when looking up the name too. We won’t be able to escape the database though :)