diff --git a/sax.py b/sax.py new file mode 100644 index 0000000..aa258da --- /dev/null +++ b/sax.py @@ -0,0 +1,78 @@ +#!/usr/bin/python3 +import os +from render_kdenlive import KDEnliveProject, _CACHE +import subprocess + +def generate_sax_mix(root): + os.chdir(root) + + +root = os.path.abspath(".") +project = KDEnliveProject(root) + +long_wav = "Soon_Kim_Long_Reverb_Only2.wav" +nois_wav = "Soon_Kim_Noise.wav" +reverb_wav = "Soon_Kim_Short_Reverb_Mix2.wav" + + +long = { + "src": long_wav, + "duration": 3600.0, + "filter": { + "volume": "-3" + }, +} +noise = { + "src": nois_wav, + "duration": 3600.0, + "filter": { + "volume": "-1" + }, +} +project.append_clip('A1', long) +project.append_clip('A2', noise) +path = os.path.join(root, "sax-mix.kdenlive") +with open(path, 'w') as fd: + fd.write(project.to_xml()) + +cmds = [] +cmds.append([ + "melt", "sax-mix.kdenlive", '-quiet', '-consumer', 'avformat:sax-mix.wav' +]) +cmds.append([ + "ffmpeg", "-y", + "-nostats", "-loglevel", "error", + "-f", "lavfi", "-i", "anullsrc=r=48000:cl=mono", "-t", "3600", "silence.wav" +]) + +for src, out1, out2 in ( + (reverb_wav, "fl.wav", "fr.wav"), + ("sax-mix.wav", "bl.wav", "br.wav"), +): + cmds.append([ + "ffmpeg", "-y", + "-nostats", "-loglevel", "error", + "-i", src, + "-filter_complex", + "[0:0]pan=1|c0=c0[left]; [0:0]pan=1|c0=c1[right]", + "-map", "[left]", out1, + "-map", "[right]", out2, + ]) + +cmds.append([ + "ffmpeg", "-y", + "-nostats", "-loglevel", "error", + "-i", "fl.wav", + "-i", "fr.wav", + "-i", "silence.wav", + "-i", "silence.wav", + "-i", "bl.wav", + "-i", "br.wav", + "-filter_complex", "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[a]", + "-map", "[a]", + "-ar", "48000", + "-c:a", "aac", "Saxophone-5.1.mp4" +]) +for cmd in cmds: + print(" ".join([str(x) for x in cmd])) + subprocess.call(cmd)