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_USERNAME = os.environ.get('MAIL_USERNAME')
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"
ROOT = "/home/kae/music"
TIMER_MS = 1000

View File

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

View File

@ -1,8 +1,6 @@
#!/usr/bin/python3
import argparse
import hashlib
import logging
import os
from config import Config
@ -26,10 +24,10 @@ def main():
# Run as required
if args.update:
log.info("Updating database")
INFO("Updating database")
update_db()
log.info("Finished")
INFO("Finished")
def get_audio_segment(path):
@ -56,7 +54,7 @@ def leading_silence(audio_segment, silence_threshold=Config.DBFS_SILENCE,
trim_ms = 0 # ms
assert chunk_size > 0 # to avoid infinite loop
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)):
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))
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
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
while (
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
# 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.artist = tag.artist
track.duration = int(round(
tag.duration, Config.MILLISECOND_SIGFIGS) * 1000)
tag.duration, Config.MILLISECOND_SIGFIGS
) * 1000)
track.start_gap = leading_silence(audio)
track.fade_at = round(
fade_point(audio), Config.MILLISECOND_SIGFIGS) * 1000
fade_point(audio) / 1000, Config.MILLISECOND_SIGFIGS
) * 1000
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)
session.commit()