Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1,5,0,1,0,1] is frettable #1

Open
hyvyys opened this issue Oct 8, 2019 · 3 comments
Open

[1,5,0,1,0,1] is frettable #1

hyvyys opened this issue Oct 8, 2019 · 3 comments

Comments

@hyvyys
Copy link

hyvyys commented Oct 8, 2019

I tested the package with just this one combination, and it returned true. Those are some mad skills!

@yomed
Copy link
Owner

yomed commented Oct 9, 2019

Hi @hyvyys, thanks for checking out the project!

Right now, the heuristics are around whether there are enough fingers and the notes are in the right spots such that it can be fretted/barred (given fingers of any length...). It could be a nice improvement to limit how "wide" the chord can be, maybe based on the part of the neck too. E.g. the chords near the lower frets could only span ~4 frets, while the higher fretted chords could span more than that.

@hyvyys
Copy link
Author

hyvyys commented Oct 9, 2019 via email

@yomed
Copy link
Owner

yomed commented Oct 10, 2019

Right. I think one way to get around the Voldemort finger problem would be to start off categorizing chords into physically possible and physically impossible, and then create a difficulty score associated for those chords that are possible. I think the examples you pointed out are good options for some heuristics. I think that depending on the use case, it may or may not be appropriate to generate chords based on some difficulty threshold. For use cases leaning toward advanced usage, I would consider the pinky finger to be able to barre pretty well.

I had attempted to make some rules around barring, though it's been a while since I've reviewed the logic:

frettable/index.js

Lines 19 to 22 in 64e9018

// barre if fret number matches where finger is fretted on a previous note
// but dont barre when:
// * on top 5 strings and next note in sequence is a lower fret
// * on 5th note and third group, and last note would create fourth group

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants