Spaces:
Sleeping
Sleeping
"""Service for practicing melodies.""" | |
from improvisation_lab.config import Config | |
from improvisation_lab.domain.composition import PhraseData | |
from improvisation_lab.service.base_practice_service import BasePracticeService | |
class PiecePracticeService(BasePracticeService): | |
"""Service for generating and processing melodies.""" | |
def __init__(self, config: Config): | |
"""Initialize PiecePracticeService with configuration.""" | |
super().__init__(config) | |
def generate_melody(self) -> list[PhraseData]: | |
"""Generate a melody based on the configured chord progression. | |
Returns: | |
List of PhraseData instances representing the generated melody. | |
""" | |
selected_progression = self.config.piece_practice.chord_progressions[ | |
self.config.piece_practice.selected_song | |
] | |
return self.melody_composer.generate_phrases(selected_progression) | |