You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.6 KiB
73 lines
2.6 KiB
#!/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()
|