ARM Cortex-M3 コアにウェーブテーブル シンセサイザーを実装する必要があります。始めるのに役立つコードやツールを探しています。
私はこの AVR の実装を認識しています。私は実際にそれを少し前にPICに変換しました。今、私は似たようなものを探していますが、もう少し良い音です。
ANSI C コードは素晴らしいでしょう。コード スニペット (C または C++)、サンプル、ツール、または単なる一般的な情報をいただければ幸いです。
ありがとう。
ARM Cortex-M3 コアにウェーブテーブル シンセサイザーを実装する必要があります。始めるのに役立つコードやツールを探しています。
私はこの AVR の実装を認識しています。私は実際にそれを少し前にPICに変換しました。今、私は似たようなものを探していますが、もう少し良い音です。
ANSI C コードは素晴らしいでしょう。コード スニペット (C または C++)、サンプル、ツール、または単なる一般的な情報をいただければ幸いです。
ありがとう。
Synthesis Toolkit (STK) は優れていますが、C++ のみです。
http://ccrma.stanford.edu/software/stk/
ただし、STK からウェーブテーブル シンセサイザー コードを抽出できる場合があります。
FluidSynthとTiMidityの 2 つのオープンソース ウェーブテーブル シンセサイザーがあります。
最高の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 関数 =
ウェーブスキャナー関数 =
エンベロープ、フィルター、振幅、その他すべての機能は、すべてのシンセの波形生成機能から独立しています。
シンセサイザーにとって最も強力な音響心理学的ツールは、ノートのデジタル トーンからの逸脱であり、ユニゾン デチューンと呼ばれます。シンセサイザーの音響特性は、主にコーラスとユニゾン デチューンに由来します。
WT は、より高度なシンセにおける、より長いセクションの波の単一周期のいずれかです。単一のピリオドは、コードに非常に簡単に記述できます。高度な WT はオクターブごとにサンプリングされ、N 周期、2 ~ 3 秒、つまりピアノのように続く波でサンプリングされます。これは、オクターブによって音質が変化することを意味します。したがって、複雑な WT は、複数のオクターブ録音でオクターブごとにクロスフェードされます。