2

ARM Cortex-M3 コアにウェーブテーブル シンセサイザーを実装する必要があります。始めるのに役立つコードやツールを探しています。

私はこの AVR の実装を認識しています。私は実際にそれを少し前にPICに変換しました。今、私は似たようなものを探していますが、もう少し良い音です。

ANSI C コードは素晴らしいでしょう。コード スニペット (C または C++)、サンプル、ツール、または単なる一般的な情報をいただければ幸いです。

ありがとう。

4

3 に答える 3

5

Synthesis Toolkit (STK) は優れていますが、C++ のみです。

http://ccrma.stanford.edu/software/stk/

ただし、STK からウェーブテーブル シンセサイザー コードを抽出できる場合があります。

于 2008-08-27T15:31:08.967 に答える
4

FluidSynthTiMidityの 2 つのオープンソース ウェーブテーブル シンセサイザーがあります。

于 2008-09-17T08:47:29.013 に答える
0

最高のARMシンセは、1日もかからずにwavescannerに変更できます。ファイルからウェーブをスキャンすることも、数学的にそれらを生成することも、オーディオに関してはほぼ同じです。WT は処理コストゼロで大量の波形バンクを提供します。ウェーブが必要です。WT オシレーター コード自体は 20 行です。波形ノブを 3 から 100 に変更して、読み取っている WAV を示します。ランプ/カウンターを使用して WAV ファイルを (配列として) 読み取ります。WT固定。

7 年間のシンセ経験から、お気に入りのシンセのオシレーター機能の 20 行を変更して、ウェーブ アレイを読み取るように適応させることをお勧めします。WT は 20 行のロジックのみを使用し、シンセサイザーの残りの部分はより重要です: LFO、フィルター、入力パラメーター、プリセット メモリ... 代わりにお気に入りのシンセを使用し、WAV ファイルとフォルダーとして WT ウェーブ ライブラリを見つけて、 WT 機能を備えた fav シンセ オシレーターを使用すると、ほぼ同じサウンドになり、処理コストが低くなります。

シンセは通常、波形に Sin、Sqr、Saw、Antialiased OSC 関数を使用します...

ウェーブテーブル シンセは、ベースで約 20 行のコードを使用し、10/20/100ds のウェーブを使用し、各ウェーブは理想的にはオクターブごとにサンプリングされます。ウェーブテーブル サウンド ライブラリを入手できれば、シンセはループ、ピッチ シフト、サウンド、およびプロ シンセも複数のオクターブを使用してオクターブをミックスすることができます。

WT 関数 =

  • WAV ファイルを N 個の配列にロードする
  • 波形の変更 = WAV リストから波形配列を選択
  • 目的の Hz で波形配列を読み取る

ウェーブスキャナー関数 =

  • 2 つのウェーブ間でクロスフェードし、xfade を LFO に割り当てます。つまり、sine と xfade です。

エンベロープ、フィルター、振幅、その他すべての機能は、すべてのシンセの波形生成機能から独立しています。

シンセサイザーにとって最も強力な音響心理学的ツールは、ノートのデジタル トーンからの逸脱であり、ユニゾン デチューンと呼ばれます。シンセサイザーの音響特性は、主にコーラスとユニゾン デチューンに由来します。

WT は、より高度なシンセにおける、より長いセクションの波の単一周期のいずれかです。単一のピリオドは、コードに非常に簡単に記述できます。高度な WT はオクターブごとにサンプリングされ、N 周期、2 ~ 3 秒、つまりピアノのように続く波でサンプリングされます。これは、オクターブによって音質が変化することを意味します。したがって、複雑な WT は、複数のオクターブ録音でオクターブごとにクロスフェードされます。

于 2018-01-14T06:30:54.867 に答える