tidy up build_clips and prepare for page work

This commit is contained in:
Effie 2023-06-04 13:59:26 +10:00
parent 6a3216a25b
commit fddc6a9823
4 changed files with 37 additions and 25 deletions

1
.gitignore vendored
View File

@ -1,3 +1,2 @@
/songbook.sqlite /songbook.sqlite
/public/ /public/
/clips/

View File

@ -4,40 +4,40 @@ import glob
import shutil import shutil
import sox import sox
shutil.rmtree('clips') shutil.rmtree('public/clip')
os.mkdir('clips') os.makedirs('public/clip', exist_ok=True)
db = sqlite3.connect("file:songbook.sqlite?mode=ro", uri=True) db = sqlite3.connect("file:songbook.sqlite?mode=ro", uri=True)
cur = db.cursor() cur = db.cursor()
for song, motif, start, duration in db.execute(''' for song, motif, start, duration, album, track in db.execute('''
select select
song_id, motif_id, start_ms, duration_ms clip.song_id, motif_id, start_ms, duration_ms, max(album_id), track
from from
clip'''): clip
album, track = db.execute(''' join
select song_album
album_id, track on
from clip.song_id=song_album.song_id
song_album group by
where clip.song_id, motif_id'''
song_id = ? ):
order by
album_id desc limit 1''', (song,)).fetchone()
# get source path # get source path
album_folder = f'{album - 1:02}. *' album_folder = f'{album - 1:02}. *'
song_file = f'{track:03}. *.flac' song_file = f'{track:03}. *.flac'
source = glob.glob(f"/mnt/petal/media/Audio/ffxiv/{album_folder}/{song_file}")[0] source = glob.glob(f"/mnt/petal/media/Audio/ffxiv/{album_folder}/{song_file}")
assert(len(source) == 1)
source = source[0]
print(source) print(source)
# get clip filename # get clip filename
destination = f'clips/{song:04}-{motif:03}.flac' destination = f'public/clip/{song:04}-{motif:03}.flac'
print(destination) print(destination)
@ -45,21 +45,23 @@ for song, motif, start, duration in db.execute('''
# trim and fade start # trim and fade start
if start < 2: fade_length = 2
if start < fade_length:
trim_start = 0 trim_start = 0
fade_in = 0 fade_in = 0
else: else:
trim_start = start - 2 trim_start = start - fade_length
fade_in = 2 fade_in = fade_length
# trim and fade end (to be continued) # trim and fade end (to be continued)
if source_duration - (start + duration ) < 2: if source_duration - (start + duration ) < fade_length:
trim_end = None trim_end = None
fade_out = 0 fade_out = 0
else: else:
trim_end = start + duration + 2 trim_end = start + duration + fade_length
fade_out = 2 fade_out = fade_length
# call sox # call sox

View File

@ -6,7 +6,6 @@ for dirname in [
"public/song", "public/song",
"public/motif", "public/motif",
"public/album", "public/album",
"public/clip",
]: ]:
os.makedirs(dirname, exist_ok=True) os.makedirs(dirname, exist_ok=True)

12
notes.txt Normal file
View File

@ -0,0 +1,12 @@
eorzea-songbook.com/
index.html
/song
/name
/motif
/name
/album
/name