Files
@ a4052905ca7d
Branch filter:
Location: light9/multispectro/assemble_images.py - annotation
a4052905ca7d
1.6 KiB
text/x-python
notes about how rdfdb syncs, or should sync
af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a 4bab5bbce195 af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a af83aeef8b0a | # #!/bin/zsh
import os
import subprocess
import cv2
import numpy as np
for songname in [
'01-guest',
'02_dancing_happy',
'03-bear-trim2',
'03-bear',
'04-disneyswing',
'05-encanto',
'06-frozen',
'07-onejump',
'08-lionking',
'09-pianoman-mix',
'10-disneytap',
'11-club',
'12-sunnyside2',
'13-supercali',
'14-groove',
'15-mermaid',
'16-all',
'17-parade-mix',
]:
WAV_DIR = f"/tmp/htdemucs/{songname}"
instruments = [
("vocals", "3k", (1, .3, 0)),
("other", "3k", (1, .8, .5)),
("drums", "1k", (1, .9, 1)),
("bass", "400", (0, .4, 1)),
]
def generate_spectrogram(input_file, output_file, rate):
command = ["sox", input_file, "-n", "remix", "1", "rate", rate, "spectrogram", "-X", "50", "-y", "100", "-z", "80", "-m", "-r", "-o", output_file]
subprocess.check_call(command)
def tint_image(img, tint):
img = img.astype(np.float32) / 255
tint_img = np.full((img.shape[0], img.shape[1], 3), tint[::-1], dtype=np.float32)
return cv2.multiply(img, tint_img)
stack = []
for name, rate, tint in instruments:
input_file = f"{WAV_DIR}/{name}.wav"
spectro_file = f"/tmp/spectro_{name}.png"
generate_spectrogram(input_file, spectro_file, rate)
img = cv2.imread(spectro_file)
tinted_img = tint_image(img, tint)
stack.append(tinted_img)
out = np.concatenate(stack, axis=0)
cv2.imwrite(os.path.expandvars(f"$LIGHT9_SHOW/spectrogram/{songname}.png"), out * 255)
|