2017-02-06 93 views
0

私はpsychtoolboxで実験を作成しようとしていますが、その一部は参加者が応答しなくなったときにアラームを鳴らすというものです。psychtoolboxのアラーム音を作成するmatlab

私はビープ音を使用しようとしましたが、アラームのようには聞こえません。外付けのサウンドをダウンロードせずにこれを達成する方法はありますか?

私は音や音波の知識がないので、助けてください!私に

+0

最も簡単なのは外付けサウンドをダウンロードすることです。あなたが望むアラームのように聞こえる '.mp3'ファイルを探してください。 –

答えて

1

follコードは.wavファイルをロードし、Psychtoolboxオーディオシステムで再生します。これにより、サウンドのタイムスタンプを発することができ、sound()やビープ音を使用するよりも大きな制御が可能になります。代わりに、MATLAB自体を使用してトーンを生成することもできます(特定の周波数の正弦波を生成するのは簡単です).wavデータの代わりにその周波数を使用します。

%% this block only needs to be performed once, at the start of the experiment 

% initialize the Psychtoolbox audio system in low latency mode 
InitializePsychSound(1); 

% load in a waveform for the warning 
[waveform,Fs] = audioread('alarm.wav'); 
numChannels = size(waveform, 2); 

% open the first audio device in low-latency, stereo mode 
% if you have more than one device attached, you will need to specify the 
% appropriate deviceid 
pahandle = PsychPortAudio('Open', 2, [], 1, Fs, numChannels); 


%% during the experiment, when you want to play the alarm 
PsychPortAudio('FillBuffer', pahandle, waveform'); 
startTime = PsychPortAudio('Start', pahandle, 1); 

%% at the conclusion of the experiment 
PsychPortAudio('Close'); 

あなたは、あなた自身の音を発生Psychtoolbox機能「MakeBeep」、および代替を見てみたい場合 ことで、代わりに波形の、例えば、1000Hzのトーン、250msの持続、 44.1kサンプリングレートで:

% generate a beep 
beepWaveform = MakeBeep(1000,.250,44100); 

% make stereo 
beepWaveform = repmat(beepWaveform, 2, 1); 

% fill buffer, play 
PsychPortAudio('FillBuffer', pahandle, beepWaveform); 
startTime = PsychPortAudio('Start', pahandle, 1); 
+0

ありがとうございました! – TYL

0

beepは、このようなループの中でそれを複数回プレイすることにより、あなたがやりたいことができます。

load('gong'); % This sound seems suitable to me for alarm. Try others from the list 
for k=1:100 
    sound(y,Fs); pause(1); 
end 
:あなたはこのように、組み込みのサウンドを使用することができ、より

% Adjust the no. of loop iterations depending on how long you want to play the alarm 
for k=1:100 
    beep; pause(1); 
end 

その他

ここビルトインのリストがありますが、あなたが試してみたいことが聞こえる:

chirp 
gong 
handel 
laughter 
splat 
train 
+0

これらの変数は 'load( 'gong')'などで上書きされるので、コード内で変数名として 'y'と' Fs'を使用しないようにしてください。 –

+0

ビープ音の問題は(1)それですオペレーティングシステム固有のものなので、実験はオペレーティングシステム間で同じではありません。(2)Psychtoolboxに組み込まれている関数に比べ、タイミングの制御が少ない – DMR

+0

答えに記載されているようにビルトインサウンドを使用できます。いいえ? –

関連する問題