PsychPortAudioで連続したBeep音を鳴らすときに重複する現象について

224 views
Skip to first unread message

野口光

unread,
Mar 5, 2018, 1:58:58 AM3/5/18
to 心理学実験について話そう
管理者様

初めて投稿させていただきます。

現在MATLAB2016aとPsychtoolboxを使用して、ブロックデザインでの運動課題遂行用のプログラムを作成しています。
運動課題を行うタイミングを教示するために、2HzのBeep音を30秒間提示したいと考えています。

現在、①PsychPortAudioを使用する方法、②Beeperを使用する方法の2パターンで作成をしましたが、
それぞれ以下のような問題点がありました。


①PsychPortAudioを使用する方法
 Beep音を提示しているときに、時折2回分の音が重複する
 以下の方法で再生しています。

    %% Beep音の設定
        InitializePsychSound(1);
        sr = 44100;
        nrchannels = 1;

        pahandle = PsychPortAudio('Open', [], [], [], sr, nrchannels);

        snd1data = MakeBeep(440, 0.15, sr); % Beep音の作成

        PsychPortAudio('FillBuffer', pahandle, snd1data);

                ti = 0;
                   start = GetSecs;
                   
                   while ti<30
                       ti = GetSecs - start;
                       PsychPortAudio('Start', pahandle);
                       WaitSecs(0.5); 
                       PsychPortAudio('Stop',pahandle);
                   end
――――――――――――――――――――――――――――――――――


②Beeperを使用する方法
 Beeperでは50msec程度のバラつきがある
 自体が500msecかかる(tic-tocで計測)ようなのですが、460msec~550msec

                   ti = 0;
                   start = GetSecs;
                   
                   while ti<30
                       Beeper(400,0.4,0.1); 
                   end
――――――――――――――――――――――――――――――――――


説明不足かも知れませんが、
何か改善策がありましたら、
ご教示ください。

野口

野口光

unread,
Mar 5, 2018, 3:18:17 AM3/5/18
to 心理学実験について話そう
脱字がありました。

②Beeperを使用する方法
 Beeperでは50msec程度のバラつきがある
 Beeper自体が500msecかかる(tic-tocで計測)ようなのですが、おおむね460~550msecの範囲でばらついていました。

PsychPortAudioで音が重複する原因(および対処)またはBeeperのばらつきを抑える方法などがありましたら、
ご教示ください。

野口

黒木@九州大学

unread,
Mar 7, 2018, 3:14:16 AM3/7/18
to 心理学実験について話そう
野口様

九州大学の黒木です。
お返事が遅くなり申し訳ありません。

まずある程度正確に音を鳴らしたいのでしたらPsychPortAudio関数を使うべきかと思いますので、方法1を採用すべきかと思います。

それで方法1の改善として2点ご提案します。
ひとつはreqlatencyclass(これは変数なので名前自体に意味はありません)で、PsychPortAudioTimingTestを参照してみてください。

もうひとつは、while文に入る前に、一度音を鳴らしておくということです。

この提案を含んだファイルを添付しております。
改善するかは分かりませんがお試しいただけますと幸いです。
よろしくお願いいたします。


noguchi1.m

野口光

unread,
Mar 7, 2018, 5:46:36 PM3/7/18
to 心理学実験について話そう
黒木様

お返事いただきありがとうございます。

添付いただいたファイルを実行してみました。
while の時間(30→120)を延ばしたときに、やはり音が重複することがありました。

PCのスペックにも依存するのでしょうか?
ちなみに、使用しているPCはFUJITSU AH77/KでOSはWindows10です。

野口

黒木@九州大学

unread,
Mar 7, 2018, 7:19:20 PM3/7/18
to 心理学実験について話そう
野口様

改善しませんでしたか。
私は、iMac Late 2015 を使っていますが、音が重複することはないようです。

もし可能でしたら、お使いのPCにLinuxをインストールすることをお勧めします。
ご存じかもしれませんが、Psychtoolboxの作者はLinux環境が最も望ましいと言っています。
特にWindowsは常駐プログラムも多いと思われますので、どこかのタイミングで音の再生を妨げていることはあるような気がします。

Linuxであればなんでもよいとは思いますが、こだわりがなければUbuntuが使いやすいかと思います。
ハードディスクに余裕があれば現在のWindowsを残したまま、Ubuntuをインストールできるはずですのでお試しください。
ただしインストールの手順を間違うとWindowsが削除されますので、バックアップを取られた上で作業をしてください。

解決に至らず恐縮ですが、どうぞよろしくお願いいたします。

野口光

unread,
Mar 8, 2018, 6:14:12 PM3/8/18
to 心理学実験について話そう
黒木様

お返事ありがとうございます。

Linuxの使用を検討したいと思います。

丁寧に説明して頂きまして、本当にありがとうございました。

野口
Reply all
Reply to author
Forward
0 new messages