Files @ 80b3b2903fb4
Branch filter:

Location: light9/bin/musicPad

David McClosky
#!/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
logging.basicConfig(level=logging.INFO)
log = logging.getLogger()

introPad = 4
postPad = 4

graph = showconfig.getGraph()
# 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 sorted(graph.objects(None, L9['showPath'])):
    assert p.startswith("file://")
    p = p[len("file://"):]
    
    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)