#!/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()