3

周波数や音量などを純粋に指定するだけでサウンドを再生できる C++ (LGPL または LGPL のような) サウンド ライブラリはありますか?

私のターゲット プラットフォームは Linux/Ubuntu で、クロスプラットフォームはあまり気にしません。

サウンドの配列を送信して、それを mp3 などの一般的なサウンド ファイルに圧縮できると便利です。

サウンドを「描画」するだけで再生できる OpenGL のようなものを探しています。OpenAL について聞いたことがありますが、それはサウンドを読み込んで再生するためのライブラリにすぎないようです。

4

1 に答える 1

6

シンプルで低レベルのオーディオ ライブラリ (OpenAL、SDL など) のほとんどは、PCM 波形を非常に簡単に再生できます。再生したいウェーブでバッファを満たし、それを再生します。周波数や音量などから波形を作成するには、少しのコード (単純な波形の場合はおそらく数行) を記述し、基本的な三角法を知る必要があります。

OpenAL は、3D ゲームを対象としたクロスプラットフォーム API です。そのインターフェイスは哲学的に OpenGL に似ており、仮想 3D 環境 (位置、速度など) でオーディオ ソースを管理する機能を提供し、いくつかのサウンドおよび環境効果 (リバーブなど) を提供します。いくつかの圧縮形式をデコードできることがわかっています ( MP3、Vorbis、...) 拡張機能を使用していますが、エンコード機能があるかどうかはわかりません。

SDL (または Simple Direct-media Layer) もクロスプラットフォームでゲーム指向ですが、オーディオ以上のものを提供します。しかし、それが提供する機能はすべて非常に基本的なものであり、これは意図的で設計によるものです. SDL は、プラットフォームの抽象化レイヤーです。そのオーディオ機能も同様に非常に基本的で低レベルです。PCM 波の再生と録音のみを提供します。もちろん、より多くの機能を持つ拡張ライブラリ (SDL_mixer など) もあります。

参考文献:

  1. ウィキペディアの OpenAL
  2. OpenAL ホームページ(2013 年 8 月 5 日現在、ダウンしているようです)
  3. Creative Labs から入手できる OpenAL ライブラリのフォークであるOpenAL Soft
  4. SDLホームページ
  5. SDL_ミキサー

私の知る限り、どちらのプロジェクトもドキュメントとサンプルをソース コードと共に出荷しているので、ソース コードを入手して実験を開始することをお勧めします。

あなたが何をしたいのかを正しく理解していれば、これらのライブラリのどちらでもあなたが望むことをかなり簡単に行うことができますが、私の個人的な意見では、SDL はよりシンプルで使いやすいです (3D 位置オーディオと効果が必要でない限り)。

于 2013-08-05T19:39:02.947 に答える