Presenting Audio and Visual Stimuli

I’m an undergrad designing an experiment for an Experimental Psychology class, and I’m having some issues presenting Audio and Visual stimuli at the same time.

The help file says to check the “end this event immediately after it is presented” and also to uncheck the “Wait for sound to finish playing” boxes.
It also says that the Sound Event must be presented before the Visual Event. I’ve done all this and it doesn’t work.

Here is my setup:

Sound Event
Visual Event

I have done as the help file says, but playing with the options still gives me one of three results:

  1. Sound Event finishes playing before Visual Event begins. I want them to be presented simultaneously.
  2. Sound Event is not presented until the tail end of Visual Event’s duration.
  3. Visual Event is presented, there is a delay, and then Sound Event goes on like a skipping record.

I have tried having all files pre-loaded. I have tried both Sound File event type and Audio File event type. I have also tried Movie event type. In none of these combinations was the Sound Event presented simultaneously with the Visual Event.

  1. Visual Event is presented, there is a delay, and then Sound Event goes on like a skipping record.

Hi,

It seems to me that the 3rd result you list has the correct options for displaying a visual stimulus and playing an audio file at the same time. If you’re running version 4.0.6a of SuperLab on a single core Windows machine, then the single core is switching back and forth from the sound playing process which accounts for the skipping.

My suggestion is to update to the latest version of SuperLab which is 4.0.6b.
http://community.cedrus.com/showthread.php?t=437

Let us know if you’re still having trouble.

Hong

I Already Have 4.0.6

My version is already upgraded to 4.0.6; my professor is pretty sure that it may even be the cause of the problem.

Do you have 4.0.6b build 3346?
You can find out which version of SuperLab by opening ‘About SuperLab 4.0…’ box in the ‘Help’ menu in SuperLab.

Also, you should be using an Audio Event rather than a Sound Event. Audio Event will give better performance and timing calculations. Furthermore, under Windows the Sound Event has trouble playing long sound files.

Could you please provide what kind of machine you’re trying to run the experiment on? Windows? Single core or multi-core? Which build of SuperLab?

Based on your issue, we’re assuming you’re running the experiment on a single core, Windows machine with SuperLab 4.0.6 build 3302.

Hong

Yep

Yes, it’s 4.06b, build 3346.

I’ve tried using both Audio Event and Sound Event, and neither of them works properly. I’m working on a single-core computer; this is all University computer lab property that I’m working off of, although I do have the trial version installed on my home laptop–which is whatever build is available for trial off of the website.

I’ve attached a modified copy of SuperLab 4.0.6b’s PortAudio Audio Presenter plug-in. This increases the audio buffer from 50ms to 200ms. I was able to get a little bit of skipping when playing two audio files at once in my single-core test configuration, and this made it go away for me.

Ultimately, anything that involves running separate threads on Windows is going to cause issues in SuperLab. Audio winds up going through DirectX which runs its own threads. On a single-core processor, the operating system must make a choice between SuperLab’s input loop and the other thread.

The attached plug-in only applies to the Audio Event type. After extracting the DLL from the zip file, put the DLL in Program Files\SuperLab 4.0\plug-ins\ and relaunch SuperLab.

ap-PortAudio.dll.zip (32.2 KB)

I Figured It Out

I was able to figure out the problem, but it was pretty much an inversion of what the current Superlab help file suggests.

This is how I was able to set it up:

I wanted to have a Visual Event and a Sound Event to occur simultaneously. The context is that I want to have some events happen, and then a Visual and Sound event to which there can be participant response.
My Sound Event should last 250ms, and the Visual Event should last 5000ms.

The help file is very clear about the order in which they must be presented;

“The order is important: the sound event must come first.”
In other words, in my trial I need this:

Events:

[x] Sound Event
[x] Visual Event

And then I need the “end immediately after the event is presented” checkbox on, and the “wait for sound to finish playing” checkbox off.

But that didn’t work.

What did work was this:

Events:

[x] Visual Event(0ms)
[x] Sound Event(250ms)
[x] Visual Event(copy)(4750ms)

It is important to have the Sound Event come second. Here’s why:
For whatever reason, the Sound Event refused to allow the Visual Event to be presented concurrently; it either would wait for the Audio File to finish playing first, or the Audio File would play at strange times and skip, or other things.

Essentially, you have to maintain the same properties that the Help File describes, except switch the order of the events.

The Visual Event should “end immediately after the event is presented.” Then the Sound Event (which needs to be an Audio File type, by the way), will begin at the same time as the Visual Event–and since it isn’t a visual type of Event, it won’t clear the screen and the Visual Event will remain displayed until the Trial is over, or some other visual-type Event supplants it.

Anyway, the settings on the Sound Event should be:

Stimulus:
[x]Stop audio: when the event ends
Input: End This Event and Move to the Next One:
[x]After any response from the participant
[x]…or a time limit.

But I’m not done. I want the Visual Event to continue past the Sound Event, but if the Sound Event doesn’t end at the same time that the Audio File does, it will extend the Audio File’s duration by looping it in a record-skipping kind of way. And I don’t want that.

So to have the Visual Event continue past the Sound Event, I just copy the Visual Event and put it after the Sound Event, which becomes the Visual Event(copy).

If I want the total of the Visuals to be 5000ms, then there’s the 250ms of the Sound Event (which preserves the Visual Event onscreen), followed by a Visual Event(copy) which lasts 4750ms, which is a total of 5000ms of the same image presented onscreen.

What if I want participant response at any stage during the Visual Event? Well, that ties into this other thread that Hong helped me so much with. I use a Feedback setting to end the event as soon as any participant response occurs, and hey, presto, I’m done.

So: essentially, the properties of the Sound Event and the Visual Event are reversed. Participant response will be coded to the Sound Event, the end of which will signal the end of the Visual Event.

Thanks for all of the help I’ve received!