Audacity - 如何设置奈奎斯特提示控制率以匹配音频?

时间:2013-04-17 00:06:00

标签: lisp waveform piecewise audacity nyquist

我希望使用Audacity中的Nyquist Prompt插件构建一个长度为2048个样本的分段线性波形。例如,我可以通过从2048个静音(零)样本开始,选择全部,然后使用以下方法调用奈奎斯特提示来生成方波脉冲:

(sum s (pwl
  0 1
  0.5 1
  0.5))

这使用分段线性(pwl)函数创建一个波形,该波形在时间0,级别1.0开始,然后线性插值到时间0.5(选择的一半),级别1.0,然后立即跳转到等级0.0,并继续在0.0直到时间1.0。

这是有效的,但是得到的波形在时间0.5处没有明显的单样本转换(步骤),而是在~40个样本之间具有1.0到0.0之间的线性斜坡。在这种情况下这是不可接受的。

转换here表明,在Audacity中,奈奎斯特插件实际上以比音频速率小得多的控制速率运行,因此产生了斜坡。

我实际上希望创建一个比方波更复杂的波形,所以一旦这个问题得到解决,我就可以继续构建完整的波形。

我的问题是:

  • 可以调整控制率以匹配音频采样率,这样我就可以对pwl函数进行样本精确控制,并且
  • 如何将它合并到一个同样调用'pwl'的Nyquist Lisp表达式中 - 我根本不熟悉Lisp并且不理解如何顺序执行两个语句。我猜这是有功能的......

如果更有意义的话,我很乐意在Audacity之外使用奈奎斯特。

1 个答案:

答案 0 :(得分:1)

我链接的主题包含了我需要的答案。我会在这里发布,以防将来帮助某人:

(progv '(*control-srate*) (list *sound-srate*)
  (sum s (pwl
  0 1
  0.5 1
  0.5))
)

这将控制速率设置为等于声音采样率,从而允许pwl函数直接绘制到单个样本中的目标水平。

此外,似乎只需将下一个语句作为前一个语句的最后一个参数,就可以使Lisp中的语句成为顺序语句。例如,这里调用'sum'的语句位于一个块中,该块是progv的第三个参数。这是正确的吗?