diff bin/attic/wavecurve @ 2376:4556eebe5d73

topdir reorgs; let pdm have its src/ dir; separate vite area from light9/
author drewp@bigasterisk.com
date Sun, 12 May 2024 19:02:10 -0700
parents bin/wavecurve@3c523c71da29
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/attic/wavecurve	Sun May 12 19:02:10 2024 -0700
@@ -0,0 +1,46 @@
+#!bin/python
+import optparse
+from run_local import log
+from light9.wavepoints import simp
+
+
+def createCurve(inpath, outpath, t):
+    print("reading %s, writing %s" % (inpath, outpath))
+    points = simp(inpath.replace('.ogg', '.wav'), seconds_per_average=t)
+
+    f = open(outpath, 'w')
+    for time_val in points:
+        print("%s %s" % time_val, file=f)
+    log.info(r'Wrote {outpath}')
+
+
+parser = optparse.OptionParser(usage="""%prog inputSong.wav outputCurve
+
+You probably just want -a
+
+""")
+parser.add_option("-t",
+                  type="float",
+                  default=.01,
+                  help="seconds per sample (default .01, .07 is smooth)")
+parser.add_option("-a",
+                  "--all",
+                  action="store_true",
+                  help="make standard curves for all songs")
+options, args = parser.parse_args()
+
+if options.all:
+    from light9 import showconfig
+    from light9.ascoltami.playlist import Playlist
+    graph = showconfig.getGraph()
+
+    playlist = Playlist.fromShow(showconfig.getGraph(), showconfig.showUri())
+    for song in playlist.allSongs():
+        inpath = showconfig.songOnDisk(song)
+        for curveName, t in [('music', .01), ('smooth_music', .07)]:
+            outpath = showconfig.curvesDir() + "/%s-%s" % (
+                showconfig.songFilenameFromURI(song), curveName)
+            createCurve(inpath, outpath, t)
+else:
+    inpath, outpath = args
+    createCurve(inpath, outpath, options.t)