在循环中播放声音序列时的用户输入[matlab]

时间:2013-06-21 16:32:25

标签: matlab audio psychtoolbox

我正在为实验编写任务,我需要用户听到400个纯音的声音脉冲和介于600毫秒之间的间隔,但是 - 在10%的时间间隔内,间隔的持续时间会有变化

用户每次识别持续时间的变化(需要在阵列中保存时间......)时都需要按一个键,如果没有变化,用户就不会触摸键...(所以它是0没有输入,1表示输入)

for i = 1:pulse_number;
    wavplay(amplitude*beep,Sr,'async')
    pause(ISIarray(i)) % array of different interval duration
end

我找不到运行循环的方法并在循环内收集用户输入( GetChar(psychotoolbox),等待用户输入继续)

谢谢!

1 个答案:

答案 0 :(得分:1)

使用KbCheck或KbQueueCheck(如果使用队列)。您将无法使用暂停。相反,使用while循环:

start_time = GetSecs;  
while GetSecs - start_time < interval_duration(i)  
    [press secs] = KbCheck;  
end