Spaces:
Sleeping
Sleeping
File size: 919 Bytes
5e84ffc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
"""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)
|