Files @ e92db17f3e7e
Branch filter:

Location: light9/bin/musicPad

drewp@bigasterisk.com
effectSequencer can now also process some note-like values coming from the fade/ ui
#!bin/python
"""
rewrite all the songs with silence at the start and end
"""
import sys, wave, logging, os
sys.path.append(".")
from light9 import showconfig
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())
for p in playlist.allSongPaths():
    log.info("read %s", p)
    inputWave = wave.open(p, 'rb')

    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, 'wb')
    outputWave.setparams(inputWave.getparams())

    bytesPerSecond = (inputWave.getnchannels() * inputWave.getsampwidth() *
                      inputWave.getframerate())

    outputWave.writeframesraw(b"\x00" * (bytesPerSecond * introPad))
    outputWave.writeframesraw(inputWave.readframes(inputWave.getnframes()))
    outputWave.writeframesraw(b"\x00" * (bytesPerSecond * postPad))
    outputWave.close()
    log.info("wrote %s", outputPath)