Closed adammorrissirrommada closed 2 months ago
This is partly a symptom of the fact that the logic to update parameters is not actually packed into the design class, but rather happens in block.m
. That logic was partially duplicated into the rsvp code when it was first created. A better solution would be to consolidate into something encapsulated in design (or block, or at least somewhere), but that's too much to think about right now!
I also think it would be nice if addRSVP()
could optionally accept a function handle as the first input rather than a design
object, and in that case, simply call the function with every update (similar to how the noise stimuli are implemented) rather than cycle through a design object "trial" list. Any thoughts on the merit of this?
@bartkrekelberg and @cnuahs , sorry to bombard you with PRs. @dshimaoka is trying to run an experiment and ran into a bunch of problems that are fixed across these new PRs. Can you perhaps let us know if you'll have time to review any time soon? If not, I suggest that @dshimaoka creates a branch of his own and merge all three of my bug fixes into that one for use in the meantime. You can also review the code yourself and test it in your own rigs and for your purpose.
RSVP is implemented as "mini-trials" using a design object. But, the logic for updating params from the design spec left out the logic to support adaptive parameters like jitter.
Here's a minimal example that previously did not call the
updateOrientation()
with each rsvp frame but does in this PR.