#!/usr/bin/python
#
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import sys
def GenerateSimpleStep(name, max_volume, step_size):
print '[%s]' % name
print ' ; Generated by create_volume_curve.py'
print ' ; simple_step curve, max %d, step %d' % (max_volume, step_size)
print ' volume_curve = simple_step'
print ' volume_step = %d' % step_size
print ' max_volume = %d' % max_volume
def WriteExplicitCurveVal(step, value):
print ' db_at_%d = %d' % (step, value)
def GenerateExplicit(name):
print '[%s]' % name
print ' ; Generated by create_volume_curve.py'
print ' ; explicit curve'
print ' volume_curve = explicit'
for i in range(100):
print 'Level at step %d:' % (100 - i)
level = int(raw_input(">"))
WriteExplicitCurveVal(100 - i, level)
print 'Level at step 0:'
level = int(raw_input(">"))
WriteExplicitCurveVal(0, level)
def GenerateTwoSlope(name, max_volume, step_1, step_2, pivot_point):
print '[%s]' % name
print ' ; Generated by create_volume_curve.py'
print (' ; two_slope, max = %d, pivot = %d, steps %d, %d' %
(max_volume, pivot_point, step_1, step_2))
print ' volume_curve = explicit'
for i in range(0, (100 - pivot_point)):
WriteExplicitCurveVal(100 - i, max_volume - step_1 * i)
pivot_dB_val = max_volume - step_1 * (100 - pivot_point)
WriteExplicitCurveVal(pivot_point, max_volume - step_1 * (100 - pivot_point))
for i in range(1, pivot_point):
WriteExplicitCurveVal(pivot_point - i, pivot_dB_val - step_2 * i)
WriteExplicitCurveVal(0, pivot_dB_val - pivot_point * step_2)
def main():
print 'What is the name of the jack or output to generate a curve for?'
jack_name = raw_input(">");
print 'Which type of curve? (simple_step, explicit, two_slope): '
curve_type = raw_input(">");
if curve_type == 'simple_step':
print 'max volume (dBFS * 100):'
max_volume = int(raw_input(">"))
print 'step size (in dBFS * 100)'
step_size = int(raw_input(">"))
GenerateSimpleStep(jack_name, max_volume, step_size)
elif curve_type == 'explicit':
GenerateExplicit(jack_name)
elif curve_type == 'two_slope':
print 'max volume (dBFS * 100):'
max_volume = int(raw_input(">"))
print 'Volume step where slope changes:'
pivot_point = int(raw_input(">"))
print 'step size 100 to %d(in dBFS * 100)' % pivot_point
step_1 = int(raw_input(">"))
print 'step size %d to 0(in dBFS * 100)' % pivot_point
step_2 = int(raw_input(">"))
GenerateTwoSlope(jack_name, max_volume, step_1, step_2, pivot_point)
if __name__ == '__main__':
main()