core.wait命令 - 我是否使用pyglet?

时间:2014-11-07 11:26:45

标签: psychopy

我在Builder中设置了一个实验,以获得对音频刺激的快速反应时间,之后我一直在玩代码,让实验完全符合我的要求。特别是,我想要非常精确的反应时间,因此程序理想情况下会从每次刺激开始时占用CPU直到之后的固定点,并在此期间记录“w”和“e”的按键。

为了实现这一目标,我一直在音频刺激开始时重置时钟,然后将CPU占用2秒,如下所示:

event.clearEvents(eventType='keyboard')
response.clock.reset()
core.wait(2,2)
if response.status == STARTED:
theseKeys = event.getKeys(keyList=['w', 'e'])

这似乎工作正常。但是,我有一个问题:core.wait命令的文档说:

  

如果您想在等待期间获得按键,请务必使用pyglet。

如果我使用pyglet,我怎么知道?它是自动的,还是我需要以某种方式改变脚本以确保我使用它?

1 个答案:

答案 0 :(得分:1)

这是指用于显示刺激的窗口类型(pyglet或pygame)。 PsychoPy通常会使用pyglet,但可以肯定的是,您可以在创建时明确设置窗口类型。请参阅http://www.psychopy.org/api/visual/window.html处的窗口API:

  

winType:无,'pyglet','pygame'

     

如果没有,那么PsychoPy将会恢复   到用户/网站首选项

更重要的是,请确保您使用的是pyo音频库而不是默认的pygame。在PsychoPy首选项中设置此项 - >一般 - >音频库对话框字段。 Pygame肯定有声音延迟问题:你应该假设在播放声音与实际产生声音之间存在很大的滞后。 Pyo显然做得更好,但我认为你应该以某种方式独立验证这一点,以确保你对听觉刺激的反应时间是有意义的。