I am using python-based OpenSesame for building an experiment. The whole experiment is working fine except for one thing. I wrote an inline python script to give conditional auditory feedback to the participants. In the first condition, the 'Sound_Win.wav' feedback should occur if the sum of 2 variables is more than 0 (working fine). In the second condition, the 'Sound_Lose.wav' feedback should occur if the sum of 2 variables is less than 0 (working fine). In the third condition, the 'Sound_No.wav' feedback should occur if the sum of 2 variables is equal to 0. However, using the following code, the third condition is playing 'Sound_Lose.wav' feedback instead of 'Sound_No.wav' feedback (error). Any help would be highly appreciated.
if [loss]+[win] > 0:
src = pool['Sound_Win.wav']
my_sampler = Sampler(src, volume=1.0)
my_sampler.play()
if [loss]+[win] < 0:
src = pool['Sound_Lose.wav']
my_sampler = Sampler(src, volume=1.0)
my_sampler.play()
elif [loss]+[win] = 0:
src = pool['Sound_No.wav']
my_sampler = Sampler(src, volume=1.0)
my_sampler.play()
If I understand you correctly then loss
and win
are simply integers, so your code should be:
if loss + win > 0:
src = pool['Sound_Win.wav']
my_sampler = Sampler(src, volume=1.0)
my_sampler.play()
elif loss + win < 0:
src = pool['Sound_Lose.wav']
my_sampler = Sampler(src, volume=1.0)
my_sampler.play()
else:
src = pool['Sound_No.wav']
my_sampler = Sampler(src, volume=1.0)
my_sampler.play()
You simply add together loss
and win
. Also since integers are very closely defined, then using an if/elif/else
chain like this covers all the possibilities.