使用 audiomath 安排多个音频事件的最佳方法是什么?

What is the best way to schedule multiple audio events with audiomath?

我想在任意时间安排多个音频片段的播放。从 audiomath 文档中,我认为我应该使用 PyschPortAudio 来获得最可预测的延迟。同样从文档中,我了解到我可以 schedule 播放单个声音。我很好奇是否可以在准确的时间(模延迟)提前安排多个短段?另外:理想情况下,可以在播放期间更改此时间表。

是的,多个独立 PsychPortAudio 播放器的协调预安排是可能的。作为一个最小的例子,以下似乎对我有用 Mac:

import audiomath as am
am.BackEnd.Load('PsychToolboxInterface')

p1 = am.Player(am.TestSound('12'))
p2 = am.Player(am.TestSound('34'))

t0 = am.Seconds()

p1.Play(when=t0 + 2.0)
p2.Play(when=t0 + 2.2)   # overlaps p1, but offset by 200ms

这将不允许p1p2完全无缝地定时——每个预定的开始仍然会被大约为几百微秒。随着刺激呈现的进行,这非常好,但可能(取决于声音内容)仍然足以在声音之间创建可听的过渡伪影。这取决于你想要达到什么样的效果——最好的办法是尝试一下,看看它是否符合你的需要。根据您希望声音和行为的确切方式,可能有比 PsychPortAudio 预调度更好的策略(例如:not 加载 PsychPortAudio 后端,但循环播放声音并然后在 Player 到达它们之前即时更改 Sound 数据的部分。)