This commit is contained in:
khodowany
2026-10-04 15:51:18 -05:00
parent 405066eb43
commit f234dd6d51
54 changed files with 2104 additions and 330 deletions
+5 -5
View File
@@ -150,15 +150,15 @@ class Harmony:
def evaluate(self, notes, treatments=(), *, until=None, complete=False, enclosures=(), expressions=()):
notes = generator.solo.types.sounding_notes(notes)
from generator.solo.expressions import validate
permissions, expression_error = validate(notes, expressions, self)
if expression_error:
return Result(False, 0, error=expression_error)
from generator.solo.expressions import validate_frontier
explicit_frontier=until is not None
until = until if until is not None else max((n.end for n in notes), default=fractions.Fraction())
permissions, expression_pending, expression_error = validate_frontier(notes,expressions,self,until,complete or not explicit_frontier)
if expression_error:return Result(False,0,error=expression_error)
ornaments, error = self.enclosure_events(notes, enclosures, until) if enclosures else ({}, '')
if error:
return Result(False, 0, error=error)
pending, valid_contracts = [], []
pending, valid_contracts = list(expression_pending), []
for treatment in treatments:
if treatment.start >= until:
continue