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) | |