Chord Families
This commit is contained in:
@@ -41,11 +41,13 @@ class GuitarPartTests(unittest.TestCase):
|
||||
self.assertNotIn(0, generator.fretboard.chord_requirements(chord, respect_bass=False).required)
|
||||
candidates = generator.guitar.chord_positions(generator.fretboard.chord_requirements(chord, respect_bass=False), profile='electric')
|
||||
self.assertTrue(any(all(p.midi % 12 != 0 for p in c) for c in candidates))
|
||||
def test_power_chord_cannot_expand_span_or_invent_upper_tones(self):
|
||||
def test_power_chord_uses_four_fret_fallback_without_inventing_tones(self):
|
||||
requirements = generator.fretboard.chord_requirements(generator.harmony.parse_symbol('C5'))
|
||||
self.assertEqual(set(requirements.allowed), {0, 7})
|
||||
self.assertFalse(generator.acoustic_voicing.candidates(requirements))
|
||||
self.assertFalse(generator.guitar.chord_positions(requirements, profile='electric'))
|
||||
for candidates in (generator.acoustic_voicing.candidates(requirements), generator.guitar.chord_positions(requirements, profile='electric')):
|
||||
self.assertTrue(candidates)
|
||||
self.assertTrue(all(generator.fretboard.fret_span(c) == 4 for c in candidates))
|
||||
self.assertTrue(all({p.midi % 12 for p in c} == {0, 7} for c in candidates))
|
||||
def test_acoustic_uses_bass_and_three_upper_notes(self):
|
||||
result = self.section(tests.test_parts.xml_harmony() + tests.test_musicxml.xml_note(), 'acoustic')
|
||||
generator.model.validate_document(result)
|
||||
|
||||
Reference in New Issue
Block a user