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