Files
@ 94039df5cdd9
Branch filter:
Location: light9/bin/musicPad - annotation
94039df5cdd9
1.4 KiB
text/plain
create Playlist class which is now used in wavecurve, musicPad, and ascoltami2.
Ignore-this: da54d0239906e81ad5d95741d22f5975
Several other refactorings. Also, totally untested.
Ignore-this: da54d0239906e81ad5d95741d22f5975
Several other refactorings. Also, totally untested.
f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f 94039df5cdd9 f5b01841587f f5b01841587f f5b01841587f f5b01841587f 58e2e6ca1ff1 f5b01841587f 94039df5cdd9 f5b01841587f f5b01841587f f5b01841587f 94039df5cdd9 f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f f5b01841587f | #!/usr/bin/python
"""
rewrite all the songs with silence at the start and end
"""
import sys, wave, logging, os
sys.path.append(".")
from light9 import networking, showconfig
from light9.namespaces import L9
from light9.ascoltami.playlist import Playlist
logging.basicConfig(level=logging.INFO)
log = logging.getLogger()
introPad = 4
postPad = 9 # 5 + autostop + 4
playlist = Playlist.fromShow(showconfig.getGraph(), showconfig.showUri())
# instead of taking a show uri like it should, i just convert every
# path i find in the graph (hoping that you only loaded statements for
# the current show)
for p in playlist.allSongPaths():
log.info("read %s", p)
inputWave = wave.open(p, 'r')
outputDir = os.path.join(os.path.dirname(p), "pad")
try:
os.makedirs(outputDir)
except OSError:
pass # exists
outputPath = os.path.join(outputDir, os.path.basename(p))
outputWave = wave.open(outputPath, 'w')
outputWave.setparams(inputWave.getparams())
bytesPerSecond = (inputWave.getnchannels() * inputWave.getsampwidth() *
inputWave.getframerate())
outputWave.writeframesraw("\x00" * (bytesPerSecond * introPad))
outputWave.writeframesraw(inputWave.readframes(inputWave.getnframes()))
outputWave.writeframesraw("\x00" * (bytesPerSecond * postPad))
outputWave.close()
log.info("wrote %s", outputPath)
|