Howdy, Stranger!

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

Supported by

Experiment is not proceeding after Sound set at duration "sound"

Hello, I recently downloaded OpenSesame 4.0 for a Mac. I'm running into an issue where the experiment will not automatically proceed following a Sound item set to duration "sound", which I remember it would do in previous versions of OpenSesame. I have the following sequence of items:

Sketchpad_1 (Duration = keypress)

Keyboard_response (Allowed responses = 1)

Sketchpad_2 (blank; Duration = 250 ms)

Sampler (Duration = sound)

Sketchpad_3 (Duration = keypress)

After clicking "1", the experiment should move past Sketchpad_1, pause briefly (for Sketchpad_2, which is blank), play the entire Sampler sound, and then proceed to Sketchpad 3. However, after the sound plays, the experiment does not move on; it remains frozen with the blank Sketchpad_2 background.

I can get the experiment to move on if I set the duration of the Sampler to 0, but then the participant can click through subsequent slides while the audio is still playing. Is there perhaps an aspect of the newer version of OpenSesame which could be causing this issue?

Comments

  • Hi @JKellogg,

    Is your version of Open Sesame 4 up to date? I don't have a Mac to try it out but in Windows the sampler is working correctly with the duratiiobn set to "sound". There might be an issue on Mac but I'm not aware of it (@sebastiaan might be able to tell).

    In any case, if you can't get it to work with the sampler, an alternative would be to play the sound from code:

    from psychopy.sound import Sound
    import time
    
    # Play the sound and wait for its duration
    sound_file = pool["your_sound.wav"] # Replace with your file
    sound = Sound(sound_file)
    sound.play()
    time.sleep(sound.getDuration())
    

    I'd recommend placing the first two lines in an inline object at the beginning of your experiment and not in the trial loop (as importing these libraries only has to be done once and can take a second).

    I'm attaching a demo of both versions that work fine on my computer (Windows 11). If the first method doesn't work on Max, hopefully the second does.

    Hope this helps.

    Fabrice.

    Buy Me A Coffee

  • Hi @Fab, this worked, thank you! I'm able to get the sound to play correctly for its duration using the inline script with time.sleep.

Sign In or Register to comment.