C#でサウンドを生成する可能性はありますか?ビープ音を鳴らしたり、Waveファイルを開いて再生したりするだけではありません。つまり、さまざまな種類の波(sin、sawなど)とそのオプション(周波数、振幅など)を使用して信号を作成します。
4 に答える
GitHubでNAudioをチェックしてください。
NAudioはオープンソースの.NETオーディオおよびMIDIライブラリであり、.NETでのオーディオ関連ユーティリティの開発をスピードアップすることを目的とした多数の便利なオーディオ関連クラスが含まれています。2001年から開発が進められており、さまざまな機能が含まれるようになりました。ライブラリの一部は比較的新しく不完全ですが、より成熟した機能は広範なテストを受けており、既存の.NETアプリケーションにオーディオ機能を追加するためにすばやく使用できます。
ライブラリを直接使用するか、そのソースコードをチェックして、ライブラリが低レベルでどのように機能するかを確認することができます。
これは、NAudioを使用して正弦波を作成する方法について書いたブログ投稿です。明らかに、これは本格的なシンセサイザーを作成するための最初のステップにすぎません。他の波形、ADSRエンベロープ、フィルターなども作成する必要があるためですが、少なくとも開始する必要があります。
プラットフォームVST.Netを確認することを強くお勧めします。これにより、.Netで独自のVSTを作成できます。合成を行いたい場合は、1回限りのアプリを作成するよりも、VSTを作成して選択したDAWでホストする方が簡単であることがわかるでしょう。これは、VSTを作成する場合、オーディオインターフェイスドライバーやASIOなどの処理について心配する必要がないためです 。https://vstnet.codeplex.com/
また、ユーザーインターフェイス用の一連のコントロールも必要です。標準のWindowsフォームまたはWPFコントロールでうまくいくかもしれませんが、シンセ愛好家は通常、スキンのきれいなコントロールを見たいと思っています。最近、通常のWPFコントロールのように動作するが、合成用に設計されたこれらのコントロールをリリースしました: https ://bitbucket.org/MelbourneDeveloper/vst-controls-.net/
FLoopingを使用できます。これはF#で記述されたライブラリであり、オシレーター、エンベロープ、フィルターなどのオーディオ合成用の一般的な構成要素を提供します。現在、実験的な状態です。
開示:私はFLoopingの開発者です。