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.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/helpers/music_file.py b/helpers/music_file.py
index 667c169..892519d 100644
--- a/helpers/music_file.py
+++ b/helpers/music_file.py
@@ -1,13 +1,15 @@
1import threading 1import threading
2import pydub 2import pydub
3import pygame 3import pygame
4import math
4 5
5class MusicFile: 6class MusicFile:
6 def __init__(self, filename, lock, channel_id, name = None): 7 def __init__(self, filename, lock, channel_id, name = None, gain = 1):
7 self.filename = filename 8 self.filename = filename
8 self.channel_id = channel_id 9 self.channel_id = channel_id
9 self.name = name or filename 10 self.name = name or filename
10 self.raw_data = None 11 self.raw_data = None
12 self.gain = gain
11 13
12 self.loaded = False 14 self.loaded = False
13 self.flag_paused = False 15 self.flag_paused = False
@@ -16,7 +18,8 @@ class MusicFile:
16 def load_sound(self, lock): 18 def load_sound(self, lock):
17 lock.acquire() 19 lock.acquire()
18 print("Loading « {} »".format(self.name)) 20 print("Loading « {} »".format(self.name))
19 audio_segment = pydub.AudioSegment.from_file(self.filename).set_frame_rate(44100) 21 volume_factor = 20 * math.log10(self.gain)
22 audio_segment = pydub.AudioSegment.from_file(self.filename).set_frame_rate(44100).apply_gain(volume_factor)
20 self.sound_duration = audio_segment.duration_seconds 23 self.sound_duration = audio_segment.duration_seconds
21 self.raw_data = audio_segment.raw_data 24 self.raw_data = audio_segment.raw_data
22 print("Loaded « {} »".format(self.name)) 25 print("Loaded « {} »".format(self.name))