Comping
This commit is contained in:
@@ -31,10 +31,10 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
result = generator.arrange.generate.arrange_document(document, part)
|
||||
generator.model.validate_document(result)
|
||||
measures = result['staves'][0]['measures']
|
||||
self.assertEqual(len(measures), 168)
|
||||
self.assertEqual([m['number'] for m in measures], [str(i) for i in range(1, 169)])
|
||||
self.assertEqual([m['number'] for m in measures if m.get('section_label')], ['1', '9', '41', '73', '105', '137'])
|
||||
self.assertEqual(sum(generator.model.fraction(m['duration']) for m in measures), 672)
|
||||
self.assertEqual(len(measures), 171)
|
||||
self.assertEqual([m['number'] for m in measures], [str(i) for i in range(1, 172)])
|
||||
self.assertEqual([m['number'] for m in measures if m.get('section_label')], ['1', '9', '41', '73', '105', '137', '169'])
|
||||
self.assertEqual(sum(generator.model.fraction(m['duration']) for m in measures), 684)
|
||||
timelines.append([m['duration'] for m in measures])
|
||||
if path.stem == 'autumn_leaves' and part in ('vocal', 'electric'):
|
||||
for boundary in ([8, 136] if part == 'vocal' else [40]):
|
||||
@@ -49,17 +49,17 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
opening = '<note><rest/><duration>1</duration><type>quarter</type></note>' + tests.test_musicxml.xml_note(duration=3, kind='half', extra='<dot/>')
|
||||
document = source(opening, implicit=False)
|
||||
result = generator.arrange.generate.arrange_document(document, 'vocal')
|
||||
self.assertEqual(len(result['staves'][0]['measures']), 12)
|
||||
self.assertEqual(len(result['staves'][0]['measures']), 15)
|
||||
self.assertEqual(generator.score.body_start_measure_index(document['staves'][0]['measures']), 0)
|
||||
def test_short_pickup_ties_and_octave_spans_survive_each_melody_entry(self):
|
||||
document = source(tests.test_musicxml.xml_note(duration=1, kind='quarter', extra='<tie type="start"/>'), tests.test_musicxml.xml_note(extra='<tie type="stop"/>'))
|
||||
document['staves'][0]['octave_shifts'] = [{'id': 'pickup-shift', 'start': generator.model.rational(0), 'end': generator.model.rational(1), 'octaves': -1}]
|
||||
for part, boundaries in (('vocal', (1, 5)), ('electric', (2,))):
|
||||
with self.subTest(part=part):
|
||||
result = generator.arrange.generate.arrange_document(document, part)
|
||||
result = generator.arrange.generate._arrange_document(generator.parts.prepare_document(document), part, owned={'melody', 'vocal'})
|
||||
generator.model.validate_document(result)
|
||||
measures = result['staves'][0]['measures']
|
||||
self.assertEqual(len(measures), 6)
|
||||
self.assertEqual(len(measures), 9)
|
||||
for boundary in boundaries:
|
||||
pickup = generator.score.measure_notes(measures[boundary - 1])[-1]
|
||||
downbeat = generator.score.measure_notes(measures[boundary])[0]
|
||||
|
||||
Reference in New Issue
Block a user