Training Model
This commit is contained in:
+5
-15
@@ -1,16 +1,7 @@
|
||||
import functools
|
||||
import itertools
|
||||
|
||||
import generator.solo.sequences
|
||||
|
||||
@functools.cache
|
||||
def library():
|
||||
return generator.solo.sequences.Library(tuple(generator.solo.sequences.Sequence(f'{count}_4/{index:04}.xml', steps) for count in (2, 3, 4) for index, steps in enumerate(itertools.product((1, -1, 2, -2), repeat=count - 1))))
|
||||
|
||||
import copy, fractions
|
||||
import generator.model, generator.parts, generator.harmony
|
||||
import generator.solo.analysis, generator.solo.composer, generator.solo.types
|
||||
import tests.test_musicxml, tests.scale_fixtures, tests.rhythm_fixtures
|
||||
import tests.test_musicxml
|
||||
|
||||
def song(meter=4, count=6, chords=('Dm7', 'G7', 'CM7')):
|
||||
document = tests.test_musicxml.parse(tests.test_musicxml.xml_score(''.join(tests.test_musicxml.xml_note(step, 1, 'quarter') for step in ('C', 'D', 'E', 'G'))))
|
||||
@@ -31,12 +22,11 @@ def compose(document, part='acoustic', cutoff=None):
|
||||
analysis = generator.solo.analysis.analyze(document)
|
||||
measures = document['staves'][0]['measures']
|
||||
end = sum(generator.model.fraction(m['duration']) for m in measures) if cutoff is None else cutoff
|
||||
return generator.solo.composer.compose(analysis, measures, part, end, scales=tests.scale_fixtures.library(), sequences=library(), rhythms=tests.rhythm_fixtures.library())
|
||||
return generator.solo.composer.compose(analysis, measures, part, end)
|
||||
|
||||
def note(start,end,letter='g',alter=0,octave=4,**kwargs):
|
||||
return generator.solo.types.Note(fractions.Fraction(start),fractions.Fraction(end),generator.solo.types.Pitch(letter,fractions.Fraction(alter),octave),**kwargs)
|
||||
|
||||
def choices(symbols,duration=4,scale=None):
|
||||
from generator.scales import selection,timeline
|
||||
scale=scale or tests.scale_fixtures.library().scale('major',6,'D')
|
||||
return tuple(selection.Choice(timeline.ChordSpan(fractions.Fraction(i*duration),fractions.Fraction((i+1)*duration),i+1,str(i+1),fractions.Fraction(1),generator.model.key_from_fifths(-1),generator.harmony.parse_symbol(symbol)),scale,'independent fixture') for i,symbol in enumerate(symbols))
|
||||
def choices(symbols,duration=4):
|
||||
from generator import harmonic_time
|
||||
return tuple(harmonic_time.ChordSpan(fractions.Fraction(i*duration),fractions.Fraction((i+1)*duration),i+1,str(i+1),fractions.Fraction(1),generator.model.key_from_fifths(-1),generator.harmony.parse_symbol(symbol)) for i,symbol in enumerate(symbols))
|
||||
|
||||
Reference in New Issue
Block a user