-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmusicGenerator.py
75 lines (60 loc) · 2.75 KB
/
musicGenerator.py
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from typing import Counter, List
import constants
from configuration import Configuration
from helper import Helper
from lilypondgenerator import LilyPondGenerator
from museScoreGenerator import MuseScoreGenerator
class MusicGenerator:
#region private properties ################################################
__helper: Helper
__configuration: Configuration
#endregion ################################################################
#region public methods ####################################################
def generate(self) -> List[List[str]]:
lilypondResult = list()
musescoreResult = list()
if(self.__configuration.generateLilypond):
lilypondGenerator = LilyPondGenerator(
self.__configuration, self.__helper)
lilypondResult = [
*lilypondGenerator.generateIntervals(),
*lilypondGenerator.generateNotes(),
*lilypondGenerator.generateScales()
]
if (self.__configuration.generateMusescore):
museScoreGenerator = MuseScoreGenerator(
self.__configuration, self.__helper)
musescoreResult = [
*museScoreGenerator.generateIntervals(),
*museScoreGenerator.generateNotes(),
*museScoreGenerator.generateScales()
]
self.__dumpGenerationResults(
lilypondResult, constants.keySkipped, 'Skipped {0} existing Lilypond file(s)')
self.__dumpGenerationResults(
lilypondResult, constants.keyLilipond, 'Generated {0} Lilypond file(s)')
self.__dumpGenerationResults(
musescoreResult, constants.keySkipped, 'Skipped {0} existing Musescore file(s)')
self.__dumpGenerationResults(
musescoreResult, constants.keyMusescore, 'Generated {0} Musescore file(s)')
return [
*lilypondResult,
*musescoreResult
]
# end generate
#endregion ################################################################
#region constructor #######################################################
def __init__(self, configuration: Configuration, helper: Helper) -> None:
self.__helper = helper
self.__configuration = configuration
# end constructor
#endregion ################################################################
#region private methods ###################################################
def __dumpGenerationResults(self, listValue: list, filterValue: str, message: str) -> None:
counter = list(
filter(lambda lst: lst[0] == filterValue, listValue))
if (len(counter) > 0):
print(message.format(len(counter)))
# end __dumpGenerationResults
# endregion
# end class