Jython中声音的线性减小 - 可变的麻烦

时间:2013-11-26 01:43:45

标签: java python audio jython linear

我希望从第一个样本[0]开始线性地减少声音中的样本值,该样本将具有最大值(32767),并且最后一个[声音长度结束]具有最小可能值( -32767)。为此,我假设您可以使用格式y = mx + b。由于m = y2-y1 / x2-x1,我有:

def decreasing(sound):
  length = getLength(sound)
  max = 32767.0
  min= -32767.0
  for sample in getSamples(sound):
    setSampleValue(sound, int((((min-max) / (length)) * (index)) + max))

我遇到的问题是y = mx + b中的 x x 索引我认为是x plain上的值你可以找到样本值(y)。但是,当我运行代码时,我得到错误是:index ... 全局找不到名称,因为我不确定如何定义它。基本上我要问的是如何在我的等式中创建这个数字:http://i.imgur.com/D4znydj.png x

1 个答案:

答案 0 :(得分:0)

假设getSamples()返回一个列表,你可能想要这样的东西:

for index, sample in enumerate(getSamples(sound)):
    setSampleValue(sample, int((((min-max)/length) * index) + max))