Normalise tracks on import
This commit is contained in:
parent
6b7b5abdaf
commit
2e41a673f4
@ -30,6 +30,7 @@ class Config(object):
|
|||||||
MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS') is not None
|
MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS') is not None
|
||||||
MILLISECOND_SIGFIGS = 0
|
MILLISECOND_SIGFIGS = 0
|
||||||
MYSQL_CONNECT = "mysql+mysqldb://songdb:songdb@localhost/musicmuster"
|
MYSQL_CONNECT = "mysql+mysqldb://songdb:songdb@localhost/musicmuster"
|
||||||
|
NORMALISE_ON_IMPORT = True
|
||||||
ROOT = "/home/kae/music"
|
ROOT = "/home/kae/music"
|
||||||
TESTMODE = True
|
TESTMODE = True
|
||||||
TIMER_MS = 500
|
TIMER_MS = 500
|
||||||
|
|||||||
@ -67,9 +67,7 @@ class Music:
|
|||||||
measures_to_reduce_by = 0
|
measures_to_reduce_by = 0
|
||||||
for i in range(1, steps + 1):
|
for i in range(1, steps + 1):
|
||||||
measures_to_reduce_by += i
|
measures_to_reduce_by += i
|
||||||
DEBUG(f"measures_to_reduce_by={measures_to_reduce_by}")
|
|
||||||
volume_factor = 1 - (measures_to_reduce_by / total_measures_count)
|
volume_factor = 1 - (measures_to_reduce_by / total_measures_count)
|
||||||
DEBUG(f"volume_factor={volume_factor}")
|
|
||||||
p.audio_set_volume(int(self.max_volume * volume_factor))
|
p.audio_set_volume(int(self.max_volume * volume_factor))
|
||||||
sleep(sleep_time)
|
sleep(sleep_time)
|
||||||
|
|
||||||
|
|||||||
@ -2,11 +2,13 @@
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
|
import tempfile
|
||||||
|
|
||||||
from config import Config
|
from config import Config
|
||||||
from log import INFO
|
from log import INFO
|
||||||
from model import Tracks, session
|
from model import Tracks, session
|
||||||
from pydub import AudioSegment
|
from pydub import AudioSegment, effects
|
||||||
from tinytag import TinyTag
|
from tinytag import TinyTag
|
||||||
|
|
||||||
|
|
||||||
@ -49,6 +51,19 @@ def add_path_to_db(path):
|
|||||||
track.mtime = os.path.getmtime(path)
|
track.mtime = os.path.getmtime(path)
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
|
if Config.NORMALISE_ON_IMPORT:
|
||||||
|
# Get current file gid, uid and permissions
|
||||||
|
stats = os.stat(path)
|
||||||
|
normalised = effects.normalize(audio)
|
||||||
|
try:
|
||||||
|
fd, temp_path = tempfile.mkstemp()
|
||||||
|
normalised.export(temp_path, format=os.path.splitext(path)[1][1:])
|
||||||
|
shutil.copyfile(temp_path, path)
|
||||||
|
os.chown(path, stats.st_uid, stats.st_gid)
|
||||||
|
os.chmod(path, stats.st_mode)
|
||||||
|
finally:
|
||||||
|
os.remove(temp_path)
|
||||||
|
|
||||||
return track
|
return track
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user