Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Solution for having the participant replay different audio stimuli within a trial

edited January 3 in OpenSesame

Hello everyone,
I am new to Open Sesame and not sure if and how I can solve the following issue using the Open Sesame GUI. If someone has an idea for inline scripting, this is also highly appreciated.

I want to present 106 pairs of audio stimuli to participants (i.e. a total of 212 audio stimuli). The participants have to make judgements regarding the stimuli, e.g. if they sound the same. For this, the stimuli are presented in a loop with each pair being presented in a trial. I now want to give the participants the opportunity to listen to the stimuli within a trial as often as they want and in any order, before they make a decision and move on to the next trial.

Thanks for your help,


  • edited January 1

    I solved the problem by now. For anyone interested: I tried coroutines, but had problems here, so I did it this way in the end: I used a loop to loop over the audio pairs. Within each trial both audio stimuli are presented. A keypress asks for a rating. If the participant wants to listen to either of the stimuli again (indicating this by pressing 1 or 2), we - as indicated in the sequence tab - enter another loop (with empty rows and columns) that presents the same two stimuli again for 1000 times (just an absurdly high number; that much will not actually be needed by the participant). Here, audio stimulus A is only played if 1 has been pressed; audio stimulus B is only played if 2 has been pressed (indicated in the sequence tab). After each loop, a keypress is collected again. The internal repeat loop breaks if [response] = y or [response] = n (indicating the participant rating yes or no, respectively). I did not use inline scripting, here. However, you need to make sure that the variable [response] is not empty before the external loop. If you do not have the variable filled by then, use this inline script right before the loop: exp.set ('response','')

Sign In or Register to comment.