Skip to content

Commit f28841d

Browse files
MicheleCarboneraMicheleCarbonera
authored andcommitted
add check availability of selected instrument
1 parent 794b695 commit f28841d

File tree

2 files changed

+22
-11
lines changed

2 files changed

+22
-11
lines changed

music.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,12 @@
2929
import os
3030
import sox
3131
import time
32+
from musicPackages import MusicPackageManager,MusicPackageInterface,MusicPackage
3233

3334
class Music:
3435

36+
managerPackage = None
37+
3538
noteDict = {
3639
'C2': -7.0, 'D2' : -5.0, 'E2' : -3.0, 'F2' : -2.0, 'F#2' : -1.0, 'G2' : 0.0,
3740
'A2' : 2.0, 'Bb2' : 3.0, 'B2' : 4.0, 'C3' : 5.0, 'D3' : 7.0, 'E3' : 9.0,
@@ -45,9 +48,10 @@ def get_instance(cls):
4548
cls._instance = Music()
4649
return cls._instance
4750

48-
def __init__(self):
51+
def __init__(self,managerPackage):
4952
os.putenv('AUDIODRIVER', 'alsa')
5053
os.putenv('AUDIODEV', 'hw:1,0')
54+
self.managerPackage = managerPackage
5155
print("We have create a class: MUSICAL")
5256

5357
def test(self):
@@ -83,7 +87,10 @@ def play_note(self, note, alteration='none', time=1.0, instrument='piano'):
8387

8488
tfm.pitch(shift, quick=False)
8589
tfm.trim(0.0, end_time=0.5*time)
86-
tfm.preview('./sounds/notes/' + instrument + '/audio.wav')
90+
if self.managerPackage.isPackageAvailable(instrument):
91+
tfm.preview('./sounds/notes/' + instrument + '/audio.wav')
92+
else:
93+
print("no instrument:"+str(instrument)+" present in this coderbot!")
8794

8895
def play_animal(self, instrument, note='G2', alteration='none', time=1.0):
8996
tfm = sox.Transformer()
@@ -132,12 +139,13 @@ def play_animal(self, instrument, note='G2', alteration='none', time=1.0):
132139

133140

134141
if __name__ == "__main__":
135-
a = Music()
142+
b = MusicPackageManager()
143+
a = Music(b)
136144

137145
a.play_note('C2')
138146
a.play_pause(1)
139147
a.play_note('E2')
140-
a.play_note('C2')
141-
a.play_note('E2')
148+
a.play_note('C2',instrument="piano")
149+
a.play_note('E2',instrument="guitar")
142150
a.play_note('C2')
143151
a.play_animal(instrument='cat')

musicPackages.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class MusicPackageManager:
8686
packages = None
8787

8888
def __init__(self):
89-
packages = dict()
89+
self.packages = dict()
9090
with open('./sounds/notes/music_package.json') as json_file:
9191
data = json.load(json_file)
9292
for p in data['packages']:
@@ -98,8 +98,11 @@ def __init__(self):
9898
mpi = MusicPackageInterface(i,interfaceItem['available'],interfaceItem['icon'])
9999
mp.addInterface(mpi)
100100

101-
if p not in packages:
102-
packages[p] = mp
103-
104-
if __name__ == "__main__":
105-
a = MusicPackageManager()
101+
if p not in self.packages:
102+
self.packages[p] = mp
103+
104+
def isPackageAvailable(self,namePackage):
105+
if namePackage in self.packages:
106+
return True
107+
else:
108+
return False

0 commit comments

Comments
 (0)