This commit is contained in:
Keith Edmunds 2021-03-27 00:17:09 +00:00
parent 28143ced6c
commit e5037371af
3 changed files with 14 additions and 13 deletions

View File

@ -15,7 +15,7 @@ class Config(object):
MAIL_SERVER = os.environ.get('MAIL_SERVER') or "woodlands.midnighthax.com" MAIL_SERVER = os.environ.get('MAIL_SERVER') or "woodlands.midnighthax.com"
MAIL_USERNAME = os.environ.get('MAIL_USERNAME') MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
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 = 1 MILLISECOND_SIGFIGS = 0
MYSQL_CONNECT = "mysql+mysqldb://songdb:songdb@localhost/songdb" MYSQL_CONNECT = "mysql+mysqldb://songdb:songdb@localhost/songdb"
ROOT = "/home/kae/music" ROOT = "/home/kae/music"
TIMER_MS = 1000 TIMER_MS = 1000

View File

@ -95,8 +95,7 @@ class Music:
ERROR(f"set_next_track({id}): can't find track") ERROR(f"set_next_track({id}): can't find track")
return None return None
self.next_track['player'] = vlc.MediaPlayer( self.next_track['player'] = vlc.MediaPlayer(track.path)
os.path.join(Config.ROOT, track.path))
self.next_track['meta'] = track self.next_track['meta'] = track
return track.id return track.id

View File

@ -1,8 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
import argparse import argparse
import hashlib
import logging
import os import os
from config import Config from config import Config
@ -26,10 +24,10 @@ def main():
# Run as required # Run as required
if args.update: if args.update:
log.info("Updating database") INFO("Updating database")
update_db() update_db()
log.info("Finished") INFO("Finished")
def get_audio_segment(path): def get_audio_segment(path):
@ -56,7 +54,7 @@ def leading_silence(audio_segment, silence_threshold=Config.DBFS_SILENCE,
trim_ms = 0 # ms trim_ms = 0 # ms
assert chunk_size > 0 # to avoid infinite loop assert chunk_size > 0 # to avoid infinite loop
while ( while (
audio_segment[trim_ms:trim_ms + chunk_size].dBFS < audio_segment[trim_ms:trim_ms + chunk_size].dBFS < # noqa W504
silence_threshold and trim_ms < len(audio_segment)): silence_threshold and trim_ms < len(audio_segment)):
trim_ms += chunk_size trim_ms += chunk_size
@ -64,7 +62,8 @@ def leading_silence(audio_segment, silence_threshold=Config.DBFS_SILENCE,
return min(trim_ms, len(audio_segment)) return min(trim_ms, len(audio_segment))
def fade_point(audio_segment, fade_threshold=Config.DBFS_FADE, chunk_size=Config.AUDIO_SEGMENT_CHUNK_SIZE): def fade_point(audio_segment, fade_threshold=Config.DBFS_FADE,
chunk_size=Config.AUDIO_SEGMENT_CHUNK_SIZE):
""" """
Returns the millisecond/index of the point where the fade is down to Returns the millisecond/index of the point where the fade is down to
fade_threshold and doesn't get louder again. fade_threshold and doesn't get louder again.
@ -79,7 +78,7 @@ def fade_point(audio_segment, fade_threshold=Config.DBFS_FADE, chunk_size=Config
trim_ms = segment_length - chunk_size trim_ms = segment_length - chunk_size
while ( while (
audio_segment[trim_ms:trim_ms + chunk_size].dBFS < fade_threshold audio_segment[trim_ms:trim_ms + chunk_size].dBFS < fade_threshold
and trim_ms > 0): and trim_ms > 0): # noqa W503
trim_ms -= chunk_size trim_ms -= chunk_size
# if there is no trailing silence, return lenght of track (it's less # if there is no trailing silence, return lenght of track (it's less
@ -113,12 +112,15 @@ def update_db():
track.title = tag.title track.title = tag.title
track.artist = tag.artist track.artist = tag.artist
track.duration = int(round( track.duration = int(round(
tag.duration, Config.MILLISECOND_SIGFIGS) * 1000) tag.duration, Config.MILLISECOND_SIGFIGS
) * 1000)
track.start_gap = leading_silence(audio) track.start_gap = leading_silence(audio)
track.fade_at = round( track.fade_at = round(
fade_point(audio), Config.MILLISECOND_SIGFIGS) * 1000 fade_point(audio) / 1000, Config.MILLISECOND_SIGFIGS
) * 1000
track.silence_at = round( track.silence_at = round(
trailing_silence(audio), Config.MILLISECOND_SIGFIGS) * 1000 trailing_silence(audio) / 1000, Config.MILLISECOND_SIGFIGS
) * 1000
track.mtime = os.path.getmtime(path) track.mtime = os.path.getmtime(path)
session.commit() session.commit()