問題タブ [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.

0 投票する
1 に答える
814 参照

c++ - system32 からではなく、アプリを使用してフォルダーから実行できる OpenAl32.Dll をどこで入手できますか?

というわけでアプリを作りました。通常、ffmpeg のような dll をフォルダーに配置して、プロジェクトの作成手順中にアプリをさらに配布するだけで十分ですが、この OpenAL32.DLL は私にとってはそのように機能したくありません。では、再配布可能な OpenAL32.dll はどこで入手できるのでしょうか?

0 投票する
2 に答える
1485 参照

iphone - Core Audio / OpenAL はオーディオ ファイルをリサンプリングしますか?

オーディオ ファイルが caf 11250Hz モノラルの場合、44.1Khz モノラルよりもパフォーマンスが悪いことに気付きました。プロファイラーでトレースすると、サンプル レートの低いファイルの場合、最も長いトレースの 1 つが LinearConverterInt32 で終わっていることがわかります。これは 44.1KHz トレースにはありません。

サンプル レートの低いファイルを使用して、ファイル サイズ (およびできればメモリ サイズ) を抑えたいと考えています。

ログ ファイルで、AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved を取得していることに気づきました。

したがって、これが変換先のフォーマットであると推測していますが、1 ch、11250 Hz 16 ビットを使用するように指示する方法がわかりません。

考え?

0 投票する
2 に答える
2798 参照

iphone - OpenAL 初期化の問題、iPod のみ (?)

私は、iPod ハードウェアでのみ発生するように見える OpenAL に問題があります。奇妙なことに、問題なく動作していましたが、現在動作していません。

私はオーディオセッションを設定しています:

OpenAL の初期化:

出力は次のとおりです。

そのため、alcMakeContextCurrent 関数は false を返していますが、その理由はわかりません。オーディオは私の専門知識ではなく、これに関する多くの情報を見つけることができません。

ありがとう!

編集: 初期化の順序を逆にするとわかりました。つまり、OpenAL を初期化してから AudioSession を初期化すると、機能します...これは以前の順序であり、機能していなかったので、何かおかしい確実に進行中です。また、古いバージョンの iOS ではまだ動作しません。

0 投票する
1 に答える
2241 参照

c++ - ユーザーがopenALでオーディオ録音デバイスを選択できるようにする方法は?

したがって、次のようなものがあります。

ただし、ここではデフォルトのデバイスのみを使用します。ユーザーに1つを選択させて使用させる方法は?

0 投票する
2 に答える
1872 参照

midi - OpenAL および SF2 を使用したプログラムによる MIDI の再生

TiMidity++ を使用して、基本的な MIDI ファイルをゼロから作成できます。また、ファイルからストリーミング ソースを再生するのに十分な OpenAL を知っています。

SF2 と MIDI ファイルを読み込み、OpenAL を使用してサウンドを再生することにより、MIDI ファイルを再生するプログラムを C で作成することが可能かどうか疑問に思っています。別のライブラリを使用する必要がありますか? SF2フォーマットはかなり複雑に見えるので事前に知りたいです。

0 投票する
2 に答える
742 参照

iphone - OpenAL が iPhone に実装されている場合のサウンド再生の遅延 (しゃっくり)

iPhone ゲームに OpenAL コードを実装しました。ゲームを開始すると、1 秒間実行され、2 秒間停止してから再開されます (しゃっくり効果)。サウンドファイルの読み込みが原因で遅延したと思います。解決策は何ですか?本、サイト、またはソース コードを推奨できる人はいますか (iPhone のリファレンスではありません)。ローディング プロセスはありますか?ローディング プロセスはどこで初期化する必要がありますか? それは役に立ちますか?

以下に、実装した OpenAL コードの関連コンポーネントを示します。サウンド ファイルは、ゲームループ内の「if」ステートメントによって再生および呼び出されます。OpenALController クラスは音源とバッファの作成用であり、InitOpenALメソッドは OpenALController で呼び出されます。MyView は UIView のカスタマイズされたサブクラスであり、メイン ビューに接続されています (デフォルト ビューは使用しませんでした)。

// MyView.m // メイン ビューとしてカスタマイズされた UIView。
#import "OpenALSoundController.h"
- (void)startPlaying{
...
[自己初期化値];
...
[自己初期化タイマー];
}
- (void)initializeTimer { if (theTimer == nil) {
theTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector)gameLoop)];
theTimer.frameInterval = 2;
[theTimer addToRunLoop: [NSRunLoop currentRunLoop] forMode: NSDefaultRunLoopMode];
}
}
- (void)gameLoop { ... If something = true // サウンドを再生 [[OpenALSoundController sharedSoundController] playSound1];
...
}
...
@end


// OpenALSoundController.h @interface OpenALSoundController : NSObject {
...}
...
+ (OpenALSoundController*) sharedSoundController
...
@end


// OpenALSoundController.m
// シングルトン アクセサ
{
static OpenALSoundController* shared_sound_controller;
@synchronized(self)
{
if(nil == shared_sound_controller)
{ shared_sound_controller = [[OpenALSoundController alloc] init];
}
共有_サウンド_コントローラーを返します。
}
共有_サウンド_コントローラーを返します。
}
- (void) initOpenAL{
...
file_url = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"fire" ofType:@"wav"]];
firePcmData = MyGetOpenALAudioDataAll((CFURLRef)file_url, &data_size, &al_format,&sample_rate);
alBufferData(fireOutputBuffer, al_format, firePcmData, data_size, sample_rate);
[file_url 解放];
...
alSourcei(outputSourceFire, AL_BUFFER, fireOutputBuffer);
...
}

0 投票する
3 に答える
2176 参照

ios - iOS:オーディオ:サウンドファイルの読み取り、処理、書き込みに必要なコード+MIDI処理

私がする必要があると思うのは、生のサウンドファイル(ギターなどの完全なサウンドフォント)を読み込んで、これらのファイルを処理し(コードを作成するため)、結果を別のセットとして出力するコードを作成することです。ファイルの。

私の質問:このタスクに近い何かを実行するコードを誰かに教えてもらえますか?それにより、すべてを最初から実行する必要がなくなりますか?

編集:以下の回答は、私が見たガレージバンドを使用することを示唆しています。それは素晴らしいツールのように見えます。ガレージバンドで24のコードを作成できます。しかし、それをMIDIとして保存し、このmidiファイルを処理する独自のコードを記述して、個々のノートの音量を調整し、保存してから、サウンドを録音するガレージバンドにフィードバックする必要があります。誰かが私にmidiの処理を開始させるコードを教えてもらえますか?

サム

PS興味がある場合は、これが私が取り組んでいることです。

http://imagebin.org/125562

私が直面している難しさは、コードの声の出し方です...Cメジャーコードに{C4E4 G4}を、Gなどに{G4 B5 D5}を実行すると、ひどい音になります。

ピアニストは、そのようにCからGに移動することはありません。声を出すには芸術があり、各音符は新しい解像度まで最小の距離を移動しようとします。

そして、私はこれを重要な不可知論的な方法で描写するための公式を見ることができません。

そこで、代わりにすべてのCs EsとGsを再生して、「ハ長調」のサウンドテクスチャを作成しようとしています。

それぞれの振幅をすべてベルカーブの下に置くと、メジャーコードまたはマイナーコードのそれぞれのエネルギーが同じポイントを中心とするはずなので、上下に動くという明白な/粗い印象を与えることなく、テクスチャが変化するという効果があります。

これは今、ある程度意味がありますか?タスクは次のようになります:24のテクスチャを構築する方法は?

0 投票する
1 に答える
2964 参照

ios - iOS:OpenALからバッファーへのピッチシフトとパイピング出力

私は最近、iOSでOpenALを使用してピッチシフトを行うことが可能であることを発見しました。

ホランスのサウンドバンクプレーヤーを見ています。範囲全体に散らばった15程度のピアノの音を取り込み、どのサンプルに最も近いかを判断し、そのサンプルを適切な量だけピッチシフトすることで、任意の音を演奏します。これはそれを行うコードです:

この線がピッチシフトを行っていることがわかります。

残念ながら、これはCPUを大量に消費するため、ノートのバンドルを同時に再生するのには適していません。ダイナミックにピッチシフトしています。

私が欲しいのは、ピアノの音ごとにバッファーを作成し、このピッチシフトテクノロジーを使用してこれらのバッファーにデータを入力することです。しかし、スピーカーから再生するのではなく、openALを使用してサウンドをバッファーに再生する方法がわかりません。

alSourcePlay(source-> sourceId);の出力をパイプする方法はありますか。

バッファに?

これができない場合、どのような選択肢がありますか?DSPDimensionの記事のsmbPitchShiftを使用してみましたが、忠実度が高くありません。ピアノの音のアタックフェーズが実際に失われています。私はDirac3の無料バージョンを使用できると思います...(現時点ではフルバージョンのお金はありませんが、無料バージョンではモノラル処理が可能だと思うので、それをハックできます)。他に選択肢はありますか?

編集:私はそれ以来Dirac3をテストしました、そしてそれは同じ問題を共有します。攻撃を包み込んでいるようです。OpenALのピッチシフターはどういうわけかDirac3がしないことをしているようです。

0 投票する
1 に答える
1124 参照

c++ - 静的ビルドの形式で OpenAL を入手する場所は?

静的 (.lib) ビルドの形式で OpenAL を入手するには? (私のポイントは、必要なものすべてを内部に含む1つのファイルにアプリをコンパイルすることです)

0 投票する
2 に答える
5824 参照

iphone - iphoneローパスフィルター

iPhoneアプリにローパスフィルターを実装しようとしています。サウンドを録音すると、少しこもった音が再生されます。声が別の部屋から来ているように。

オーディオの録音と操作のさまざまなオプションを調べましたが、少し混乱することがわかりました...デジタル信号処理はまったく得意ではありません。私は主に OpenAL を調べました。EFX ライブラリ内には、特に必要なことを行うフィルターがありますが、EFX は iPhone には含まれていません。iPhone 用の OpenAL を使用してその動作を複製する方法はありますか? ソリューションを提供できる Audio Units などの別のオプションはありますか?

ご協力いただきありがとうございます

編集:

トムの答えとリンクの後、私は正しい実装だと思うものを思いつきました。ただし、消音効果はまったく得られず、音量が低下するだけです。これが私が現在持っている(要約された)コードです:

ファイルは、AVAudioRecorder と次の設定を使用して記録されます。

次に、ファイルを読み込んで、以下のコードで変換します。

その後、標準的な方法を使用して OpenAL で再生します (結果に影響はないと思うので、ここには含めません)。

変換前と変換後の両方の結果を追跡しましたが、それらは正しいように見えます。つまり、前の値は予想どおり正と負に変化し、for ループはこれらの値を確実に平坦化しています。しかし、前に述べたように、ボリュームが減少しているように見えるだけなので、ゲインを上げて今行ったことをキャンセルすることができます。

私は間違った価値観に取り組んでいるようです。ここで私が間違っていることの提案はありますか?