3

Lazarus/Free Pascal でカスタム ウェーブを再生および合成するにはどうすればよいですか? ソリューションは、ゲーム エンジンの場合と同様に、リアルタイムに対応する必要があります。また、マルチプラットフォームである必要があるため、win32、Linux、および Mac で使用できます。FMOD/BASS は、商業的に使用したい場合に料金を払いたくないので (該当する場合でも) 使用できません。

4

1 に答える 1

1

それには解決策があります。私のお気に入りのライブラリは Steinberg の ASIO です。これは非常に単純な API であり、Linux、Windows、MAC 用のラッパーがあり、他のプラットフォームにも対応していると思います。低レイテンシーの録音・再生のためのプロフェッショナルAPIです。通常はそれをサポートするサウンドカードが必要ですが、最近、ネイティブ プラットフォーム API を使用して ASIO デバイスをエミュレートするドライバーがいくつか登場しました (例: Windows の ASIO4ALL)。

ASIO には、バッファがスワップされる単純な関数があり、ここで、wavefrom を手続き的に生成して、実質的にすぐに再生できます (ミリ秒単位のレイテンシがあります)。それはリアルタイム性のためです。

API自体はロイヤリティフリーです。つまり、商用プロジェクトで使用でき、誰にも支払う必要はありません。

Pascal バインディングに関しては、自分で行う必要があると思います。しかし、ASIO の初期化と操作全体は 100 行未満の C/C++ コードです (そして、実際に必要なのはサウンド合成とおそらくデバイス選択 (ラッパーによってエクスポートする必要がある 2 つの関数のみ) だけです)。まったく難しい。

于 2012-11-04T18:56:23.287 に答える