問題タブ [openal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ゲーム開発サウンド フレームワーク
私は、さまざまな 2D および最終的には 3D のミニゲーム用のエンジンを構築しているチームと協力しています。私たちが直面している問題は、堅固でクロスプラットフォームの健全な API です。明らかに、クロスプラットフォーム機能が必要なため、DirectX は問題外です。SDL は素晴らしく、うまく機能しますが、SDL_Mixer でできることは少し限られています。今は使っていますが、いずれ3Dに拡張するときは困りますね。
私は OpenAL をいじっていますが、見つけたドキュメントのほとんどはかなり古く、うまく機能していないようです。私は OpenAL を学び、それを乗り越えようと思っていますが、時間を無駄にしないことをもう少し確信したいと思います。ただし、DevMaster のチュートリアル以外に、私を驚かせたドキュメントはあまり見たことがありません。誰かが私が見つけたものよりも優れた資料を持っていれば、それは素晴らしいことです.
FMOD などのプロジェクトも見てきましたが、ライセンスにもかかわらずまともなようです。ただし、OpenAL と同様に、ドキュメントはほとんど存在しません。確かに、オプションを推測するためにコードを注ぎ込むことはできますが、最終的に支払うことになる可能性があることを考えると、少し面倒に思えます。
とにかく、考え、コメント、懸念?どうもありがとう!
java - LWJGL の使用例はどこにありますか?
lwjgl.org で公式のデモを見たことがありますが、チュートリアル レベルの例をもっと見たいと思っています。
iphone - OpenAL を使用して iPhone で再生するためにオーディオを CAF 形式に変換する
複数のオーディオ ファイルを再生するために、CrashLanding サンプルで Apple の SoundEngine サンプル コードを使用しています。CrashLanding に含まれているサンプル caf ファイルを使用すると、すべて正常に動作しますが、afconvert を使用して CAF に変換された独自のサンプルを使用しようとすると、石のような沈黙しか得られません ;)
OpenALで再生できるCAFファイルを生成するafconvertの設定を持っている人はいますか?
c++ - 多音再生
これらの機能を備えたオーディオ再生が必要です: 優れたパフォーマンス (ゲーム用)、ピッチ コントロール、同じサンプルを同時に複数回重ねる機能 (ポリフォニー)。iPhone SDKでこれを取得する簡単な方法は何ですか?
これまでにわかったことは次のとおりです。
これを行う利用可能なライブラリやサンプル コードはありません。間違いを教えてください。
SoundEngine.cpp (CrashLanding および TouchFighter コード サンプルから) は OpenAL を使用し、ピッチを制御できますが、バッファーが開始されるたびに、同じバッファーが再生中の場合、その再生ヘッドが最初に戻ります。
SoundEngine.cpp でポリフォニーを取得するための汚い解決策の 1 つは、その実装に飛び込むことなく (これは私には理解できません)、同じサウンド ファイルに対して複数のバッファーをロードすることです。1 サウンドあたり最大 4 ボイスのポリフォニーが必要な場合、同じファイルに対して 4 つのバッファーをロードするとします。すべてをマネージャークラスにまとめる必要があります。この道を下っても安全ですか?または、SoundEngine.cpp をハックしてポリフォニックにする方法はありますか?
c++ - オープンソースサウンドエンジン
私がSoundEngine(CrashLandingとTouchFighterから)を使い始めたとき、それは十分に安定していなかったので、それを使わないことを勧める何人かの人々について読んだことがありました。それでも、C ++とOpenALを学習せずにピッチと位置を制御してサウンドを再生することがわかっていた唯一の解決策だったので、警告を無視して続行しました。
しかし今、私は心配し始めています。2.2SDKはAVFoundationを導入しました。CrashLanding(サウンド用)のSoundEngineとAVAudioPlayer(音楽用)の両方を使用して、既存のAVAudioPlayerのみがリリースされたときにSoundEngineが奇妙に動作することを発見しました(新しいAVAudioPlayerが開始されるまですべてのサウンドが停止します)。2.2 SDKがリリースされたのとほぼ同時に、CrashLandingサンプルコードがADCサイトから不思議なことに削除されました。もっと悪いサプライズが来るのではないかと心配しています。
私の質問は、SoundEngineに代わるオープンソースを知っている人はいますか?たぶん、OpenALを使用するC ++ライブラリでさえ?
iphone - フレームワークをプロジェクトにコピーしていますか?
フレームワークを Xcode でプロジェクトの Frameworks フォルダーにコピーしようとすると、エラーが発生します
/Developer/Platforms/.../Frameworks/OpenAL.framework を /Users/.../OpenAL.framework にコピーできませんでした
以前、同じ名前の間違ったフレームワークを誤ってプロジェクトにコピーして削除してしまったのですが、正しいフレームワークをコピーできませんか? 適切なバージョンをコピーする前に、間違ったバージョンを完全に削除するにはどうすればよいですか?
前もって感謝します!
audio - 特定のオフセットに複数回ジャンプするにはどうすればよいですか?
この関数を想像してください:
アイデアは、呼び出しplaySource(x, 0.5f)
が(おおよそ)バッファの途中などにジャンプすることです。
最初に呼び出したときは正常に動作しますが、同じソースで再度呼び出すと (そのソースが再生されているかどうかに関係なく)、オフセット 0 で呼び出したように再生が開始されます。
理由はありますか?
iphone - openAL を使用する iPhone アプリはシミュレーターで動作しますが、デバイスでは動作しません
アプリに openAL フレームワークを追加し、デモ CrashLanding にあるサウンド エンジンを使用しています。シミュレーターでは問題なく動作しますが、自分のデバイス用にビルドするとエラーが発生します。フレームワークが追加されていないようです。私は試しました:xcodeを再起動します。フレームワークを削除して再度追加します。ターゲットをクリーニングします。コンピュータを再起動します。シミュレーターでは引き続き動作しますが、デバイス設定はコンパイルさえしません。誰かが他のアイデアを持っていますか、それとも私は何か間違っていますか?
より具体的なエラーは次のとおりです。現在 17 個あります。
「_alSourcePlay」、次から参照:
SoundEngineEffect::PlaybackProc(void*) in SoundEngine.o
SoundEngineEffect::Start() in SoundEngine.o
また、私のデバイスでは CrashLanding が正常に動作します。
python - PyOpenALを使用するときにクリーンアップする正しい方法は何ですか?
私はPythonでのいくつかのサウンドニーズについてPyOpenALを見ています(明らかに)。ドキュメントはまばらです(変更されていない状態では機能しないデモスクリプトで構成されています)が、私が知る限り、2つの層があります。OpenAL呼び出しの直接ラッピングと軽量の「pythonic」ラッパー-私が懸念しているのは後者です。具体的には、どのようにして正しくクリーンアップしますか?小さな例をとると:
そのまま、「1つのソースが削除されていない、1つのバッファが削除されていない」というメッセージが端末に出力されます。しかし、これらのオブジェクトでネイティブのOpenAL呼び出しを使用することはできないと想定しているので、正しくクリーンアップするにはどうすればよいですか?
編集:
私は最終的にpyopenalを捨てて、OpenALとalureの上に小さなctypesラッパーを書きました(pyopenalはまっすぐなOpenAL関数を公開しますが、私はSIGFPEを取得し続けました)。私がここで何をすべきかについてはまだ興味があります。
iphone - iphone でリアルタイムで正確なオーディオ シーケンサーをプログラムするにはどうすればよいですか?
iPhone で簡単なオーディオ シーケンサーをプログラムしたいのですが、正確なタイミングを取得できません。ここ数日、AudioServicesPlaySystemSound と AVAudioPlayer と OpenAL から AudioQueues に至るまで、iphone で可能なすべてのオーディオ技術を試しました。
前回の試みでは、openAL を使用し、サウンドを複数のバッファにロードして、必要なときにいつでも再生できる CocosDension サウンド エンジンを試しました。基本的なコードは次のとおりです。
初期化:
初期化では、サウンド エンジンを作成し、いくつかのサウンドを異なるバッファーにロードしてから、NSTimer でシーケンサー ループを確立します。
オーディオ ループ:
それだけで、正常に動作しますが、タイミングが不安定で不安定です。他の何かが発生するとすぐに (ビューでの ig 描画)、同期が取れなくなります。
私がサウンドエンジンとopenALを理解しているように、バッファは(initコードで)ロードされ、すぐに開始する準備ができていalSourcePlay(source);
ます.NSTimerに問題があるのでしょうか?
現在、アプリストアには数十のサウンド シーケンサー アプリがあり、それらは正確なタイミングを持っています。Ig "idrum" は、ズームと描画を行うと 180 bpm でも完全に安定したビートを持っています。したがって、解決策があるはずです。
誰にもアイデアはありますか?
事前に助けてくれてありがとう!
よろしくお願いします、
ウォルキー
ご回答有難うございます。それは私をさらに一歩進めましたが、残念ながら目標には達しませんでした. これが私がしたことです:
初期化では、次のビートの時間を保存し、新しいスレッドを作成します。
シーケンス ループでは、スレッドの優先度をできるだけ高く設定し、無限ループに入ります。サウンドを再生した後、次のビートの次の絶対時間を計算し、その時間までスレッドをスリープ状態にします。
繰り返しますが、これは機能し、NSThread なしで試した場合よりも安定して動作しますが、何か他のことが発生した場合、特に GUI の問題が発生した場合でも不安定です。
iphone で NSThread を使用してリアルタイムの応答を取得する方法はありますか?
よろしくお願いします、
ウォルキー