
Thus, each List level may run a different The Procedure run at each level is specified within the List, not Makes it easy to, say, make a List with 5 copies of some filler itemįor each target item (no need to make duplicate rows). Indicates how many times that level should appear in the List - this Each row (or "level", in EP parlance) has a "Weight" value that Looping according to settings provided by the user. Such things are insteadĮmbedded right into the program as "List"s, and the Lists do all the Typically, use external "condition files". First, the E-Prime GUI has no explicit loops, and it does not, Group admins that it is bad form for me to mention that name here, (Ahem) did someone say, "E-Prime"? I have been warned by one of the (half subjects get orderA and half get orderB)? To write it!? -) And how do we handle the counterbalancing issue
#PSYSCOPE BLOCK RANDOMIZING CODE#
As withīuilder->Coder you can't go back - if you uncheck the 'custom'īox you revert to the code generate by the GUI controls. (without having to use a separate code component). AtĪny point they can click custom and write/modify their own code Users can see the effect of adding caveats into the GUI. Populate a box to the right showing the actual code that will OK, so below you can see an idea: we have a much bigger conditionsĪrea, with multiple controls in it on the left hand side, and they So that they can go and make custom designs as crazy as they like!
#PSYSCOPE BLOCK RANDOMIZING HOW TO#
Now, ideally we'd show people how to generate the code they needed Writing a code component then have to output a temporary conditions Right now the constraint that it expects a file means that users List of dicts) rather than expect a filename for its conditions. as a mimimum psychopy should be able to take a variable (a I've no idea how to represent that in a GUI. people have often asked for a way to perform counterbalancingīy subject/group. I'm pretty sure people haveĪsked to present only random subsets before I believe something that says "only select N of my (larger) Mikes idea of adding the ability to randomise but includingīlocking over one of the variables may help (I'm not sure how often Packages do? How does eprime handle blocked designs and Given how much people are requesting such things. I agree that we need some scope for improving the current methods, But as the stimulus features of PsychoPy have grown and matured, increasingly it will be the experimental design constraints that will limit what people can easily achieve with Builder. I suspect Jon already gave a lot of thought to this when he designed Builder, so more than likely I'm completely underestimating the complexity involved. But I wonder if we could cater to the most common ones by also allowing "random" or "sequential" (?and ideally "randomise by block") to be specified per column, rather than just globally for the whole conditions file? Between that and the current scheme, we would probably be covering 90% of designs via the GUI. I know this is opening a whole bag of hurt, as there are so many possible experimental design schemes. It makes me wonder if Builder could have a simple way of exposing more granular control of sequential vs random loops via the GUI rather than requiring breaking out onto custom Code components. Long variables aren't so practical to type out in a code component, but there was a useful solution posted quite a while back of reading in a template conditions file, shuffling selected variables, and saving a copy back to disk to be used as the actual conditions file for that run. Not being part of the conditions file, these variables need to have their values explicitly added to the data on every trial. In simple examples (as in the past week or so), we can create variables in a Coder component, and step through them either sequentially or randomly, whereas the remaining variables from the conditions file are stepped through with the opposite method.

A simple variation where say, all the important variables are counterbalanced, but with the inter-trial interval is randomly selected, can't be done without a code component. Questions of differential randomisation across experimental condition variables in Builder have come up frequently over the last year.Īt the moment, Builder loops are really conceived around fully counter-balanced designs.
