0

我希望使用 Audacity 中的 Nyquist Prompt 插件来构建长度为 2048 个样本的分段线性波形。例如,我可以通过从 2048 个无声(零)样本开始,选择所有样本,然后调用 Nyquist Prompt 来生成一个方脉冲波:

(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 之间的线性斜坡。在这种情况下这是不可接受的。

这里的转换表明,在 Audacity 中,奈奎斯特插件实际上以远低于音频速率的控制速率运行,因此产生了斜坡。

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

我的问题是:

  • 是否可以调整控制速率以匹配音频采样率,以便我可以对 pwl 功能进行精确采样控制,以及
  • 如何将其合并到也称为“pwl”的 Nyquist Lisp 表达式中 - 我对 Lisp 一点也不熟悉,也不明白如何顺序执行两个语句。我的猜测是有一个功能可以做到这一点......

如果这更有意义的话,我很乐意在 Audacity 之外使用 Nyquist。

4

1 回答 1

1

我链接到的线程包含我需要的答案。我会在此处发布此内容,以防将来对某人有所帮助:

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

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

此外,通过简单地将下一条语句作为前一条语句的最后一个参数,Lisp 中的语句似乎是连续的。例如,此处调用“sum”的语句位于作为 progv 的第三个参数的块中。这是正确和普遍的吗?

于 2013-04-17T00:10:45.527 回答