@@ -25,7 +25,7 @@ def planned_document(harmonies, attacks=None):
|
||||
measure['harmonies'] = []
|
||||
for onset, symbol in changes:
|
||||
harmony = {'kind': 'none', 'degrees': []} if symbol == 'N.C.' else generator.harmony.parse_symbol(symbol) if isinstance(symbol, str) else copy.deepcopy(symbol)
|
||||
measure['harmonies'].append(harmony | {'id': f'{measure["id"]}-h{len(measure["harmonies"])}', 'onset': generator.model.rational(onset)})
|
||||
measure['harmonies'].append(harmony | {'id': f'{measure["id"]}_h{len(measure["harmonies"])}', 'onset': generator.model.rational(onset)})
|
||||
for voice in measure['voices']:
|
||||
for note in voice['notes']:
|
||||
if not note['pitches']:
|
||||
@@ -145,8 +145,8 @@ class AcousticVoicingTests(unittest.TestCase):
|
||||
def test_non_accompaniment_passage_ends_the_span(self):
|
||||
document = planned_document([[(0, 'C7')], [], []])
|
||||
measure = document['staves'][0]['measures'][1]
|
||||
slash = generator.model.make_event('slash', fractions.Fraction(), generator.model.fraction(measure['duration']), 'note') | {'voice': 'voice-arranged', 'notehead': 'slash'}
|
||||
measure['voices'] = [{'id': 'voice-arranged', 'notes': [slash]}]
|
||||
slash = generator.model.make_event('slash', fractions.Fraction(), generator.model.fraction(measure['duration']), 'note') | {'voice': 'voice_arranged', 'notehead': 'slash'}
|
||||
measure['voices'] = [{'id': 'voice_arranged', 'notes': [slash]}]
|
||||
self.assertEqual(len(self.place(document)), 2)
|
||||
def test_carried_harmony_can_begin_an_arrangement_excerpt(self):
|
||||
document = planned_document([[(0, 'C7')], []])
|
||||
@@ -268,7 +268,7 @@ class AcousticVoicingTests(unittest.TestCase):
|
||||
upper = sorted(p['tablature']['string'] for p in note['pitches'] if p['tablature']['string'] <= 4)
|
||||
self.assertIn(upper, ([], [2, 3, 4]))
|
||||
self.assertTrue(all('tie_from' not in p and 'tie_to' not in p for p in note['pitches']))
|
||||
if path.stem == 'autumn-leaves':
|
||||
if path.stem == 'autumn_leaves':
|
||||
for index, expected in ((0, voicing((3, 2, 3, 3), 6)), (1, voicing((3, 2, 3, 2), 6)), (4, voicing((3, 2, 3, 3), 6)), (5, voicing((3, 2, 3, 2), 6))):
|
||||
measure = result['staves'][0]['measures'][index]
|
||||
actual = {p for v in measure['voices'] for n in v['notes'] for p in shape(n)}
|
||||
|
||||
Reference in New Issue
Block a user