問題タブ [asio]
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.
audio - NAudioAsioおよびIeeeFloat形式
AsioOutで正弦波の例を実行しようとしましたが、歪んだ方形波のように聞こえます。AsioOutがPCMフォーマットのみをサポートする可能性はありますか?asio.wavファイルの再生は問題なく機能します...
もしそうなら、どうすれば私のバッファをIeeeフロートで満たしてPCMに変換できますか?または、ASIOでIeeeをパリーバックするための最良の方法は何ですか?不必要なサンプル変換は避けたいです。
これまでの私のコードでは、バッファサイズに適合する正弦波を生成しようとしました。連続値があることを確認するために、サンプルレート44100と1チャネルで初期化します。次に、クラスのインスタンスをAsioOutのInit()に渡します。
c++ - バイナリ マングル データの書き込み
私のアプリケーションでは、ASIO ドライバーからオーディオ データを録音します。
ここで、buffer はバッファー ポインターであり、length はそのバッファー内のサンプル数です。私の場合、サンプルは 4 バイトの整数であり、バッファには実行ごとに 1024 個のサンプルが含まれていることがわかっています。
ここで、これらのサンプルを 2 つの方法で保存します。リトル エンディアン バイナリ (後で WAV ファイルとして使用するため) とテキスト ファイルです。テキストファイルに単語を保存すると、数値が取得され、波形のサンプルに対応します。ただし、バイナリ ファイルには常に少しの適切なデータが含まれ、残りは破損しています。
オリジナルデータ(オリジナル音声・テキスト保存):
壊れたデータ (バイナリ保存):
コード(私が使用std::ofstream
):
バイナリ データを最初に保存し、テキスト データを 2 番目に保存するため、問題は同期にはないことに注意してください。
データがどのように破壊されるか:
ある時点まで、波がどのように表され、正と負の値が交互になるかを見ることができます。するとゴミになります。
c# - ASIO の NAudio ボリューム
出力ボリュームを変更したい場合は、IWavePlayer.Volume
プロパティを使用しないでください。出力サンプルを正しく変更 (係数で乗算) する必要がありWaveProvider
ますか? Windows ボリューム ミキサーからコントロールできるので、それで問題WaveOut
ありません。DirectSoundOut
Volume Mixed のボリュームを 100% に設定し、そのままのサンプルを から送信WaveProvider
すると、サウンドカードのボリュームの 100% が得られます。しかし、使用するAsioOut
と、Windows Mixer で音量を変更できません。わかりましたが、ASIO システムはサウンド カードの音量を 100% にするとサウンドを再生しません。音がとても静かに聞こえます。100% のサウンド カード出力でオーディオを再生するように ASIO に指示する方法は?
delphi - Tobybears VSTテンプレートで完全なオーディオ周波数スペクトルを取得しますか?
Delphi用のTobybearsVSTテンプレートを使用して、単純な周波数アナライザーVSTプラグインを作成しようとしています。
私が抱えている問題は、ホストから受信したオーディオデータのチャンクからさまざまな周波数を表す値の配列のようなものを取得する方法に関するドキュメントや情報を見つけることができないように見えることです。
誰かがこれを行う方法についての手がかりを持っていますか?
また、カスタムVSTを作成するための別のライブラリであるDelphiASIOVstライブラリを使用しようとすると、VSTホストがクラッシュし続けます。
ありがとう!
c# - NAudio asioOut から複数の wav ファイルを書き込む
オーディオの 3 ~ 4 ストリームを録音し、それらを個別の wav ファイルに書き込もうとしています。オーディオをキャプチャするために NAudio の asioOut を使用しています。最初は、3 チャンネルまたは 4 チャンネルの wav ファイルを書いていました。ここで質問を検索して、答えを見つけたと思ったのですが、まだわかりません。個別の wav ファイルを作成できるようになりましたが、各ファイルには複数のチャンネルが含まれています。
channel_1.wav --------> チャンネル 1 と 2 があります
channel_2.wav --------> チャンネル 1 と 3 があります
channel_3.wav --------> チャンネル 2 と 3 があります
GetAsInterleavedSamples()を解析しようとすると問題があると思います。
これは私の asioOut_AudioAvailable() です
私はこれが初めてなので、ただ勉強しているだけです。どんな助けでも大歓迎です。
ありがとう。
asio - どのチャネルが左、右などであるかを判断するにはどうすればよいですか?
そこで、JAsioHost(https://github.com/mhroth/jasiohost)を使用して、プログラムでASIOを介してオーディオを出力することにしました。
ASIOとの対話は、AsioDriverListener
インターフェースのインスタンスを介して行われます。ASIOホストは、void bufferSwitch(long sampleTime, long samplePosition, Set<AsioChannel> activeChannels)
新しいサンプルを再生するたびにそのメソッドを呼び出します。モノラルサウンドを出力したい場合は、のすべてのチャンネルに同じデータを書き込むだけactiveChannels
です。しかし、何かをもっと複雑にしたいので、正確なチャネル構成を知る必要がある場合はどうなりますか?
単純なテストスタブプログラム(http://pastebin.com/sC870VJR)では、activeChannels
セットは次のように出力されます。
だから私は各チャンネルのインデックスを知ることができます。問題は、どのチャネルが実際に左、右、中央などであるかを判断する方法です。または、方法がないので、ユーザーに任せて、手動で位置を教えてください。
.net - モノチャンネル用マルチチャンネルプレーヤー
私はオーディオプログラミングに不慣れで、やるべき仕事があり、方法がわかりません。あなたが私を正しい方向に導くことができれば、それは私にとって大きな意味があります。
1つのサウンドデバイスのすべてのチャンネル、たとえば7.1カードで、8つのモノラルチャンネルすべてを介して、さまざまなmp3ファイルを再生したいと思います。しかし、私はそれらを個別に制御したいと思っています。つまり、再生、一時停止、停止、およびその他すべての標準的なプレーヤーオプションを使用できるようになりました。
MultiplexingWaveProviderをテストしてきましたが、問題なく動作しましたが、音楽を再生したり停止したりするオプションがありません。次に、Naudio用のASIOドライバーを試して、各チャネルを個別にアドレス指定しようとしましたが、最後にASIOに呼び出しました。コンストラクターは最初のものを上書きします。どうすればこれを機能させることができますか?Naudioまたは他の無料のライブラリを使用していますか?
これが私のコードです
c# - VB.NET / C#: ASIO コントロール パネルを起動
私がこれまでに使用したほとんどすべての DAW には、ASIO ドライバーのコントロール パネルを開く「コントロール パネルを開く」ボタンがあります。
VB / C#からそれを起動するにはどうすればよいですか? たぶん、ある種のシェルコマンド?
まさにそれを行う asioconfig.exe をダウンロードしました (したがって、可能である必要があります) が、レイテンシー設定ウィンドウ (上に表示) が起動する前に、ASIO ドライバーを選択する別のウィンドウがあります。
コードからドライバーを指定して、構成に直接移動したいと思います。どうすればそれができるか知っている人はいますか?
audio - オーディオプログラミングを始める最良の方法は?
シンセサイザーのプログラミングを始めたいです。サウンド カードを使用する必要があると考えたので、Google で検索を開始しました。しばらくして、多くのオプションを発見しました:
- WaveOut API - これは時代遅れだと聞いたので、これを破棄しました。
- WASAPI - 私が望んでいたものには、少しレベルが低すぎるように思えました。
- DirectSound、XAudio、XAudio2 - かなり問題ないように見えますが、遅延をできるだけ少なくしたいと考えています。
- Asio - まさに私が欲しかったものに見えました!
オーディオ プログラミングを始めるためのチュートリアルとソース コードをいくつか見つけました。悲しいことに、私が仕事をするようになった唯一のものは、私が使いたくない waveOpen API を使用しています。
次に、このチュートリアルを見つけました。これは、私のニーズにぴったりだと思われました。驚くべきことに、このチュートリアルは、ASIO を使用して見つけることができる唯一の使用可能なリソースです (まあ、私はそれを機能させることができないため、それほど使用可能ではありません)。問題は、私はそれを機能させることができないということです。デモを実行すると、「アプリケーションが動作を停止しました」というエラーが表示され、続いてコンソール出力が表示されます。
未処理の例外: System.BadImageFormatException: ファイルまたはアセンブリ 'BlueWave.Interop.Asio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。ファイル名: 'BlueWave.Interop.Asio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' at BlueWave.Interop.Asio.Test.TestConsole.Main(String[] args)
WRN: アセンブリ バインドのログがオフになっています。アセンブリ バインドの失敗ログを有効にするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) を 1 に設定します。 . この機能をオフにするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] を削除します。
コンパイルしようとすると、大量のRosieエラーが発生
しました。
これは、msvcr90.dll と msvcd90.dll を C:\Windows\System32 に手動で配置した後です (他の方法ではインストールできませんでした)。ええ、もちろん、このすべての前に ASIO4ALL をインストールしました。
ですから、これは実際には質問ではありませんが、一般的なアドバイスを求めているだけです。asio を機能させるのはそれほど難しいことではないと思いますが、同時に、ASIO API を学習するための別のリソースへのリンクや、その他のアドバイスは素晴らしいでしょう。(Xaudio2 を動かしてみるほうが簡単かもしれません。わかりません...)
事前に感謝します。私の質問が長くて退屈だと思われる場合は申し訳ありません。
編集:反応をありがとう。TropicalProgrammerによる ASIOHost APIに出会いました。それが良いかどうかはわかりませんが、有望に見えます。現在検討中です。より良いオプションがあるかもしれませんが、私は現在 ASIO に心を決めていることを認めなければなりません。