15 lines
653 B
Python
15 lines
653 B
Python
import fractions
|
|
import generator.score
|
|
import generator.model
|
|
import generator.arrange.form
|
|
|
|
def regions(document):
|
|
result, first, start = {}, 0, fractions.Fraction()
|
|
source = generator.score.source_staff(document)['measures']
|
|
for section in generator.arrange.form.full_arrangement_sections(source, 'acoustic'):
|
|
length = sum((generator.model.fraction(m['duration']) for m in source[section.source_measure_index:section.source_measure_index + section.measure_count]), fractions.Fraction())
|
|
result[section.section_index] = (first, section.measure_count, start, length)
|
|
first += section.measure_count
|
|
start += length
|
|
return result
|