Sounds combined from different loops stop being played back on Pavlovia

OS: MacOS Sequoia 15.3.1
PsychoPy version: 2024.2.4 Py 3.9.13
Standard Standalone Installation? yes
URL of experiment: lexical_access [PsychoPy]
Do you want it to also run locally? yes
What are you trying to achieve?: This is an experiment about identifying Spanish words from an initial sequence of sounds displayed on the screen. Participants must press the space bar as soon as they recognize a word starting with the sequence of sounds previously indicated. Feedback is provided after each participant’s response in the form of a green tick (right response), red cross (wrong), or sand clock (too slow). Target words appear always in the last position of a list of 2, 3, 4, or 5 words, which serve as fillers. The experiment contains several pieces of code to randomize two blocks of stimuli and to randomize filler words and target words within each block too. The flow in each block contains three loops: external (Block), it sets the block; medial (Sequences), it randomly takes a target word; and internal (Fillers), it places this target word at the end of a list of randomly selected filler words.

What did you try to make it work?: The experiment runs fine locally. Also, the different sound components are set to start at 0.3 s, as suggested to run the experiment online on Pavlovia, so that all the sounds in the loop can be played back.

What specifically went wrong when you tried that?: Pavlovia does not raise any errors and the experiment can be run. However, already in the training part, after the TrainingSequences loop is completed once, the corresponding feedback sound (tick, cross, sand clock) stops working, although the image is displayed. Then the target word “pelo” for the sequence PEL at the end of the 4th word list is not played back (even if the speaker icon on browser tab indicates it is). This happens also later after the training part is done, during the TestSequences, where the feedback isn’t there and the last sound of certain word lists is missing.

This is the folder containing the experiment:
lexical_access.zip (7.3 MB)

I note that some of these sounds have 0 start times.

I also note that you have some JS code I don’t recognise.

Why is this Both code? I would recommend using the skip function in Routine settings instead.

Thanks a lot @wakecarter, that was helpful, especially because I hadn’t set up an experiment in the latest versions of Psychopy and wasn’t used to the Routine component. I’ve put those bits of code intended to control the flow into their Flow tab, and I’ve also made sure that starting times of all sound components are not 0. However, the initial problem still persists, and some of the target words are not played back online (such as “pelo” in the sequence PEL at the end of the 4th word list of training).

What intrigues me is why some of the target words at the end of the word lists are played back while others aren’t, especially when the browser tab shows a speaker icon indicating that the sound is being played, but it isn’t there, and the clock sand shows as if the participant had missed the trial (as if the stimuli had been administered).

Since the experiment works fine locally and the starting times of target words are not 0, I can’t get my head round the problem (sorry, but I’m not an expert on JS). Again, any help is much appreciated.

There goes the corrected .psyexp file:
lexical_access.psyexp (125.3 KB)

The problem has been solved. I followed @wakecarter’s advice and after checking the code thoroughly, I spotted a mistake in one of the conditions, which prevented some sound files to be played back.

Thanks again!