#!/usr/bin/env python
# encoding: utf=8

"""
volume.py

Prints out loudness info suitable for plotting

"""

import echonest.audio as audio

usage = """
Usage: 
    python volume.py <inputFilename>  

Example:
    python volume.py stairway.mp3  > stairway.dat
"""


def main(inputFile):
    count = 0
    sum = 0
    time = 0
    avgList = []
    audiofile = audio.LocalAudioFile(inputFile)
    for  s in audiofile.analysis.segments:
        decs  = int(s.duration * 10)
        time += decs / 10.0
        for i in xrange(decs):
            sum += s.loudness_max
            count += 1
            avg = runningAverage(avgList, s.loudness_max)
            print time + i/10.0, avg
    print "# avg", sum / count

def runningAverage(list, dur):
   max = 16
   list.append(dur)
   if len(list) > max:
        list.pop(0)
   return sum(list) / len(list)

if __name__ == '__main__':
    import sys
    try:
        inputFilename = sys.argv[-1]
    except:
        print usage
        sys.exit(-1)
    main(inputFilename)
