03-31-2022 09:04 PM
PCのマイク端子から音声信号を取得するプログラムを作りました。ExpressVIの「サウンドを集録」を用いてデータ収録をしているのですが、収録時間の設定を0.1秒以下にしたらLabViewがハングしてしまいます。「サウンドの収録」コマンドの収録時間に対する下限値仕様は決まっているのでしょうか。お判りになる方がいたら御教示下さい。
解決済! 解決策の投稿を見る。
03-31-2022 09:57 PM
私の手元でも、durationを0.01などにすると、ハングする現象を確認しました。
Express VIを開いて原因を探ろうとしましたが、サブVI内では実行のハイライトが使えず、それ以上探れませんでした。
そのため、 "Finite Sound Input.vi "のサンプルを用いて確認しました。
"Sound Input Read.vi"でハングしているようです。内部ではDLLを呼び出していて、
取得するサンプル数が十分あれば配列として値が返りますが、例えば "200" のようにすると、空の配列しか返されず、
タイムアウトエラーが発生します。
上記スレッドを見ると、サウンドカードがいまいちなんじゃない?という回答がされています。
「バッファオーバーフローが起きてるんじゃない?」というコメントも見られます。
確かに私のPCはスペックが比較的低いものです。
試しにサンプリング周波数を落とすと、ハングなく収録できました。
hide19さんの手元でも、サンプリング周波数を変更してお試しいただくといかがでしょう。
03-31-2022 11:35 PM
Yu.T様
早速の返信有難う御座いました。
参考トピを見る限りかなり前からこのような現象は知られているようですね。
私が使用しているのはノートPCなので、この手のペリフェラルはごみのような性能だと思います。
もう一台LabViewをインストールしてあるPCが手元に有りますが、此方で確認したところ0.2s以下でハングしました。
どうやらマシン依存性もあるようで、「**s以下は動かない」といった仕様にすることもできなさそうです。
コマンドへのパラメータを少し変えて検討してみます。
それから、少し調べて頂いたようでお手数お掛けしました。
有難う御座いました。