0

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 にジャンプする波形を作成します。時間 1.0 まで 0.0 で続行します。

これは機能しますが、結果の波形には時間 0.5 で鋭い 1 サンプル遷移 (ステップ) がなく、代わりに ~40 サンプルにわたって 1.0 と 0.0 の間の線形ランプがあります。これは、この状況では受け入れられません。

ここでの変換は、Audacity 内で Nyquist プラグインが実際にはオーディオ レートよりもはるかに低い制御レートで実行されることを示唆しています。

実際には方形波よりもはるかに複雑な波形を作成したいので、この問題が解決したら、引き続き完全な波形を作成できます。

私の質問は次のとおりです。

  • pwl 関数をサンプル精度で制御できるように、オーディオのサンプリング レートに合わせて制御レートを調整することはできますか?
  • これは、'pwl' も呼び出す Nyquist Lisp 式にどのように組み込まれますか? 私は Lisp にまったく詳しくなく、2 つのステートメントを順番に実行する方法を理解していません。私の推測では、それを行う機能があります...

それがより理にかなっていれば、Audacity の外で Nyquist を使用できれば幸いです。

4

1 に答える 1

1

リンク先のスレッドには、必要な答えが含まれていました。将来誰かに役立つ場合に備えて、これをここに投稿します。

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

これにより、コントロール レートがサウンド サンプル レートに等しく設定され、pwl 関数が 1 つのサンプルでターゲット レベルに直接引き寄せられるようになります。

また、Lisp のステートメントは、単純に次のステートメントを前のステートメントの最後のパラメーターとして配置することによって順次に作成されているようです。たとえば、ここで「sum」を呼び出すステートメントは、progv の 3 番目のパラメーターであるブロック内にあります。それは正しくて一般的ですか?

于 2013-04-17T00:10:45.527 に答える