Chord Families

This commit is contained in:
khodowany
2026-10-06 03:18:02 -05:00
parent e71385dad1
commit 8423f3d788
14 changed files with 196 additions and 57 deletions
+5
View File
@@ -1,5 +1,6 @@
"""Transposable guitar families, derived from the written chord and legal grips."""
import generator.harmony
import generator.fretboard
import generator.model
import generator.vocabulary
@@ -47,3 +48,7 @@ def coverage(chord, options, part):
result.append({'bass_string': string, 'bass_degree': degree, 'candidates': len(found), 'preferred': sum(f['preferred'] for f in found),
'reason': '' if found else 'no legal grip for this bass under written harmony and current fret/span limits'})
return result
def span_coverage(options):
return {'primary': sum(not generator.fretboard.span_penalty(v) for v in options),
'fallback': sum(generator.fretboard.span_penalty(v) for v in options)}