NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

DAQ NI9234 Windows10サウンド入力

DAQ NI9234 を使った音声スペクトラム解析をソフトをlabviewで作成しています。

DAQに入力したデータをWindows10にサウンド入力として渡す方法はないでしょうか?

PCから音を出したいのです。

以上 よろしくお願いします

0 件の賞賛
メッセージ1/7
2,170件の閲覧回数

自己レスです。

波形を再生 Express VIを使うことで音は出ました。

ただ、ぶつぶつ途切れるのと以下のメッセージとともに

停止します。解決方法をご教示ください。

 

エラーコード-200279 が****.viで発生

 

考えられる理由:

アプリケーションがハードウェア集録に追いついていません。

利用できるすべてのサンプルを読み取る代わりに、バッファサイズを増やす、データをより頻繁に読み取る、または固定のサンプル数を指定して読み取るのいずれかを行うと、問題が解決される可能性があります。

プロパティ: RelativeTo
相当する値: 現在の読み取り位置
プロパティ: Offset
相当する値: 0

タスク名: _unnamedTask<5>

 

0 件の賞賛
メッセージ2/7
2,165件の閲覧回数

平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。

 

DAQmx関数によるNI 9234からのデータ入力と「波形を再生」Express VIを同じループ内で処理していませんか?

 

このExpress VIは、ループ内に入れて他のハードウェア処理と同時に使用するには適さないVIです。理由は、「波形を再生」Express VIが実行される度にサウンド出力構成VI、サウンド出力待機VI、およびサウンド出力をクリアVIが実行されて、DAQmx読み取りタイミングの遅延となるからです。

 

サウンドVIのサンプルに同期サウンド入出力というものがあり、入力部分をDAQmxと考えれば、同じループで処理する際に最適な手法となっています。

このサンプルは、ヘルプメニュー >> サンプルを検索 >> 参照タブ >> ハードウェア入力と出力 >> サウンド の中に含まれていますので、参照いただけると幸いです。

0 件の賞賛
メッセージ3/7
2,151件の閲覧回数

上野様 ご回答ありがとうございます。

ご迷惑をおかけします。お察しの通りでした。

以下のように書き換えると幾分良くなりましたが

 

sound-error.png

エラーコード-200279が**.viで発生が同様に発生します。

考えられる理由:

アプリケーションがハードウェア集録に追いついていません。

利用できるすべてのサンプルを読み取る代わりに、バッファサイズを増やす、データをより頻繁に読み取る、または固定のサンプル数を指定して読み取るのいずれかを行うと、問題が解決される可能性があります。

 

0 件の賞賛
メッセージ4/7
2,136件の閲覧回数

ご返答ありがとうございます。それでもエラー -200279が発生するということは、サンプルレートが高いのではないかと思います。

 

エラーメッセージにあるようにバッファサイズを増やすことで、ある程度エラーを回避できるのではないかと思います。バッファサイズに関しては、下記のページに記載されているとおりに自動割り当てされますが、添付ファイルのように手動設定することも可能です。

 

 

添付ファイルのように手動設定することで、自動設定の場合よりエラーが発生しにくくなると思います。

この方法でもエラーが発生する場合は、下記のページで紹介されている生産者・消費者デザインパターンを利用して、アナログ入力とサウンド出力を別々のループに分けて処理する必要があります。(下記の例では、アナログ入力と保存を分離しています。今回の場合は保存部分をサウンド出力に変更することなります。)

 

0 件の賞賛
メッセージ5/7
2,129件の閲覧回数

ご迷惑をおかけします。

ご対応ありがとうございます。

添付頂いたviを改造することでかなり要望に近い状態になりましたが

DAQからの信号をFFT解析してlimitテストでGO/NOGO判定しているのですが

realtime性が著しく低下してしまいました。(動作時間が長くなればなるほど)

すみませんそのあたり如何でしょうか?

 

 

0 件の賞賛
メッセージ6/7
2,119件の閲覧回数

1つのWhileループ内で、データ収集とサウンド出力、FFT解析、リミットテストを含めているということは、すべてを処理しないと次のループに回りません。よって、演算処理に時間がかかっており、バッファサイズを増やしても結果的にエラー -20079が発生することになるのではないかと思います。

 

キュー関数を用いて処理を分散する生産者・消費者デザインパターンを用いることで収集、解析、サウンド出力を並列処理させれば改善する可能性が高くなるでしょう。

0 件の賞賛
メッセージ7/7
2,114件の閲覧回数