| Reference | Downloads | Github

Ideas for future Versions of psychopy

Hi everyone,

First of all thanks for the great piece of software you developed!

However, by using version 1.83.04 i’ve got some ideas to improve the usability of the Builder which I wanted to share.

  1. In the Flow for large experiments it becomes cumbersome to add new routines and loops into the flow. Imagine a flow already exist with lets say 20 Routines and you want to add a new routine on position 19 or between to specific routines at the end of the flow. If you scale the flow view down you are not able to the the names of the routines so you cant figure out where to put the new one. So the only way as far as I know it is to scroll to the left klick on insert new routine and scroll all the way to the place where you want to set the new routine. If you need to do that a couple of times it becomes a bit cumbersome.
    My idea would be to have either a hotkey for that (there is a hotkey new routine but the new routine is not added to the flow) or in the flow part of the builder put the insert routine and insert loop into a new part so that it is always visible and usable.
  2. Also in the flow part it would be nice to have a function to copy a loop with its content and rename it. Would save some time and also avoid errors.
  3. Also in the flow part imagine a large experiment which shall be reused but some routines and/or loops shall be in a different order. It would be great if there would be a function to shift parts of the flow to the left or right in the flow. To my knowledge at the moment you need to delete routines/loops and do everything again. Well not totally the routine is still there and you can insert it at the new place but the loops you need to insert and configure again.

I could find a roadmap or something similar to check whether such ideas would be adressed and in the changelog for 1.84 as well.

I hope I described everything in a way it is understandable.

With regards,

I hear what you’re saying but those things aren’t trivial to program and aren’t going to be priorities in the near future.

I wonder whether you’re really using Routines optimally though (hard to know from this but it’s a guess) because having 20 objects in a Flow sounds more complex than most studies. For instance, to change the order of different trial types we would normally use a single Routine, with a loop to represent ‘trials’ and then an outer loop to represent ‘blocks’. Are you doing that sort of thing, or are you creating lots of Routines, one for each trial? You might be doing that all correctly and still have many Routines but I want to make sure first.


Hi Jon,

thanks for the fast reply.

Well, the experiment consist of 8 main routines with key, audio, mic, images components. Those routines do have a loop to hand over a randomly choosen condition file (with python code, for each routine different) and/or change values within the conditionfiles. After this subBlock (routine and routine loop) comes a fixation routine ( basically a screen where the user needs to press a key to continue, surely this could be done in python code directly in the end routine section). subBlock and fixation routine do have a loop (outer loop, to repeat subBlock x times). Between those Blocks (subBlock+fixation) comes a routine to let the user know that the block is finish an she/he should regain the concentration (take a break).
Together with an Instruction and End Routine this Experiment has 23 Routines and 16 Loops. I could delete the fixation routines which makes 15 Routines. But in my Opinion it’s better not to do that cause another persons (fellow, Student) will understand the flow of the experiment faster cause you can see there is a fixation routine.

With regards

Hi again,

for the first idea rather than to add an extra section for the insert loop/insert routine which might not easy to do probably you could try to add a right/left mouse klick menu when the user clicks on or near the “time line” (which connects all routines/loops) in the flow.

To illustrate the idea:

If the user moves the mouse curser along the “time line” there could be an visual indication like the circle after clicking insert loop in the current version. When the user moves between routine2 and routine3 and right clicks on the circle a menu opens with the entries “insert routine” and “insert loop”. The code in the current version should have the function for that but I don’t know how much of the code needs to be changed for that. Also I could imagine there will be a problem with the function for removing routines/loops in the flow when implementing this idea.


Yes, true, or adding a keyboard shortcut will be easy enough too :slight_smile: