Improves finder speed #16
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This addresses issue #8 about many-note guitar chords being noticeably slow. Thank you to @reiniscirpons for his helpful comments which have allowed some useless options which were being considered to be skipped.
The chord finding algorithm in
find.py
has been updated to do the following:k
notes to cover all the important notes of the requested chord, increment the counter by enough steps that the firstk
strings have changed frets. (previously the incrementation was systematically one step). This does not catch all the dead branches - only the ones that are dead from the left side of the instrument neck. But on larger instruments this still skips a load of unnecessary computation.Empirical verifications suggest that this makes little difference for ukulele, but results in a 6x speedup for guitar chords containing 6 distinct notes (e.g.
C11
,Dm11
) - down from ~7s to ~1s.