02-05-2025 10:56 PM
simulate signalでsin波を生成し,play waveformを通じてスピーカーから音を再生したいと考えています.
サンプリング周波数は7200 Hz,サンプル数は7200にし,wait until next ms multipleを使って1 sに1回,whileループが回るようにしています.
このプログラムを実行すると,スピーカーから音は流れるのですが約1 sに1回,カチっとクリック音のような音が聞こえて滑らかに音を再生することができません.
またループが繰り返されるタイミングをcurrent timeで見ているのですが,きっちり1 sずつ回るのではなく,1.023, 1.018, ・・・[s]とループが回るタイミングが少しずつずれていることがわかりました.
どのようにプログラムを修正したらクリック音が聞こえず滑らかにループを回すことができるようになりますでしょうか.
今までに,サンプリング周波数とサンプル数を変えたり,simulate signalをwhileループの外に出す,wait untile nest ms multipleの値を変えてみたりなどしてみましたが,どれもうまくいきませんでした.
whileループを使用しているのは,今後1sに1回FFTを行うプログラムを付け足したいと考えているためです.
以上の問題につきまして,解決策などを教えて頂けますと幸いです.
よろしくお願いいたします.
解決済! 解決策の投稿を見る。
02-06-2025 08:00 PM
ローレベルのサンド出力関数を使用する必要があります。(Express VIだと毎回ハードウェア初期化・終了処理が入ってしまい非効率なため)
ヘルプ→サンプルを検索→ハードウェア入力と出力→サウンド→サウンド生成
が役に立ちます。
02-13-2025 12:46 AM
TAKASU様
ご返信いただきましてありがとうございます.
サンプルプログラムを組み込んだところ,クリック音が発生しなくなりました.
アドバイスをいただきまして,本当にありがとうございました.
02-13-2025 03:03 AM
上手く行ったようで何よりです!ありがとうございました。