aboutsummaryrefslogtreecommitdiff
path: root/helpers/music_file.py
diff options
context:
space:
mode:
Diffstat (limited to 'helpers/music_file.py')
-rw-r--r--helpers/music_file.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/helpers/music_file.py b/helpers/music_file.py
index 9976306..ba86142 100644
--- a/helpers/music_file.py
+++ b/helpers/music_file.py
@@ -92,6 +92,31 @@ class MusicFile:
92 92
93 threading.Thread(name="MSMusicLoad", target=self.load).start() 93 threading.Thread(name="MSMusicLoad", target=self.load).start()
94 94
95 def reload_properties(self, name=None, gain=1):
96 self.name = name or self.filename
97 if gain != self.initial_volume_factor:
98 self.initial_volume_factor = gain
99 self.reload_music_file()
100
101 def reload_music_file(self):
102 with file_lock:
103 try:
104 debug_print("Reloading « {} »".format(self.name))
105 initial_db_gain = gain(self.initial_volume_factor * 100)
106 self.audio_segment = pydub.AudioSegment \
107 .from_file(self.filename) \
108 .set_frame_rate(Config.frame_rate) \
109 .set_channels(Config.channels) \
110 .set_sample_width(Config.sample_width) \
111 .apply_gain(initial_db_gain)
112 except Exception as e:
113 error_print("failed to reload « {} »: {}"\
114 .format(self.name, e))
115 self.loading_error = e
116 self.to_failed()
117 else:
118 debug_print("Reloaded « {} »".format(self.name))
119
95 # Machine related events 120 # Machine related events
96 def on_enter_loading(self): 121 def on_enter_loading(self):
97 with file_lock: 122 with file_lock: