Millisecond Forums

Video flashes

https://forums.millisecond.com/Topic18418.aspx

By Isha - 2/23/2016

Hi,
I have programmed an experiment in Inquisit on my laptop. In this experiment I have inserted a lot of movies (self-made and of only a few seconds, in .wmv format) within trials. There is no problem with running this experiment at my laptop, but when I run this experiment on a research-computer, there are some flashes at the start of every movie. The movies have a black background, and I want to keep this black background before and after the movie. 
You'll first see a coloured fixation-shape, then you see the movie, and after that there is positive or negative feedback. I discovered that with a white background, the problem of the flashes is gone. But this is very ugly because then the screen switches to white (fixation-shapes and feedback) and black (movie) within one trial. 
Can someone help me fixing this problem, so I can keep the black background but without any flashes in the video? My laptop and the research computer are both Windows. I tried different formats of the movies, but did'nt make any difference. 
My idea was to insert a pretrialpause before every movie (maybe this helps?), but I don't know really how to do that, because the fixationshape is also part of the trial. This is because in one phase of the experiment, the fixationshape is coupled to specific movies, and at another phase of the experiment, the fixationshape is random for every movie. (see below for an example)
driehoek / vierkant = fixationshape
filler_moeilijk_z / 1 =movie

<trial filler_moeilijk_z>
/stimulustimes = [1=driehoek; 1000=filler_moeilijk_z]
/correctresponse = ("z")
/validresponse = ("1", "q", "a", "z")
/ responsetrial = ("z", positieve_feedback)
/ responsetrial = ("q", negatieve_feedback)
/ responsetrial = ("a", negatieve_feedback)
/ responsetrial = ("1", negatieve_feedback)
/pretrialpause = 2000
</trial>

<trial 1>
/stimulustimes = [1=noreplace(driehoek,vierkant); 500=1]
/correctresponse = ("1")
/validresponse = ("1", "q", "a", "z")
/ responsetrial = ("1", positieve_feedback)
/ responsetrial = ("q", negatieve_feedback)
/ responsetrial = ("a", negatieve_feedback)
/ responsetrial = ("z", negatieve_feedback)
/pretrialpause = 1000
</trial>

Besides the idea of inserting a pretrialpause, I would be really happy to hear other suggestions of how to fix this problem.
Thank you!
By Dave - 2/23/2016

> There is no problem with running this experiment at my laptop, but when I run this experiment on a research-computer, there are some
> flashes at the start of every movie.

IIRC, brief flashing was a problem in one older / outdated Inquisit 4 version. My guess would be that the Inquisit installation on that research machine is not up-to-date. Thus, the first thing I'd recommend is getting the latest Inquisit 4 release version from https://www.millisecond.com/download/ and installing it on the research machine.
By Isha - 2/24/2016

Thank you Dave!
I just downloaded the newest version of inquisit 4 at the research machine, but unfortunately I still got the same problem. Might there be another solution?

By Dave - 2/24/2016

No idea, to be honest, particularly if your computer (no flashing issue) and the research machine (flashing issue present) are running the same, up-to-date Inquisit version. It might be a codec issue on the research machine and perhaps installing a codec-pack such as K-Lite ( http://www.codecguide.com/ ) might help.

If not, can you create a simple, runnable example script (only one or two trials, using only one or two of your videos) that illustrates the problem? Put that script in a ZIP archive along with the video(s) and attach it to this thread (click +Insert -> Add File to upload attachments). Thanks.
By Isha - 2/26/2016

Hi Dave,

Thank you so much for your suggestions. Unfortunately it didn't make any difference. I did insert the example script as attachment, but I guess it's something in the settings of the research machine, instead of something in the script. Anyway, when I set the background color at (40, 40, 40), it's still kind of a dark (grey) background, and the flashes are (almost) gone. So that's probably the best option. 

Actually I have another question now as well, which is definitely about the script. In the experimental phase of my experiment, I want that inquisit shows 144 trials. These has to be randomly selected from different lists. For example, I have 8 lists with each list containing 3 fillertrials. So in total I want Inquisit to show 24 filler trials through the experimental phase. I also have 4 lists of experimental trials (one of 29, two of 30 and one of 31 trials, so in total 120 trials). So I want that every single filler trial and every single experimental trial is shown once (144 trials in total), and in random order. 
This is not what is happening in either of the two following options I tried:

<block experimenteel>
/trials = [151=pauze; 152, 154=noreplace(na_pauze_makkelijk_q, na_pauze_moeilijk_z); 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294=noreplacenorepeat(1, q, a, z, filler_makkelijk_1, filler_makkelijk_q, filler_makkelijk_a, filler_makkelijk_z, filler_moeilijk_1, filler_moeilijk_q, filler_moeilijk_a, filler_moeilijk_z); 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, 263, 265, 267, 269, 271, 273, 275, 277, 279, 281, 283, 285, 287, 289, 291, 293, 295=noreplace(positief, negatief)]
/preinstructions = (instructies_begin)
</block>

<block experimenteel>
/trials = [151=pauze; 152, 154=noreplace(na_pauze_makkelijk_q, na_pauze_moeilijk_z); 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294=noreplacenorepeat(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, filler_makkelijk_1, filler_makkelijk_1, filler_makkelijk_1, filler_makkelijk_q, filler_makkelijk_q, filler_makkelijk_q, filler_makkelijk_a, filler_makkelijk_a, filler_makkelijk_a, filler_makkelijk_z, filler_makkelijk_z, filler_makkelijk_z, filler_moeilijk_1, filler_moeilijk_1, filler_moeilijk_1, filler_moeilijk_q, filler_moeilijk_q, filler_moeilijk_q, filler_moeilijk_a, filler_moeilijk_a, filler_moeilijk_a, filler_moeilijk_z, filler_moeilijk_z, filler_moeilijk_z); 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, 263, 265, 267, 269, 271, 273, 275, 277, 279, 281, 283, 285, 287, 289, 291, 293, 295=noreplace(positief, negatief)]
/preinstructions = (instructies_begin)
</block>

The second part where I define noreplace(positief, negatief) is not relevant for the question. For the first option I defined only each list (with lists I mean that these are also seperately defined in different itemlists and different trials). But then the filler items are shown way too often. In the second option, the proportions with which the different trials are selected are better, but I'm still unable to find out how Inquisit can just make sure every item is shown once, and in random order. 

Thank you for all your efforts! 
By Dave - 2/27/2016

The proportions you enter into a selection pool in the /trials attribute are what matters:

/trials = [1-30=noreplace(a,b)]

will sample a and b in *equal proportions* (1:1 ratio) , i.e. you'll end up with 15 a-trials and 15 b-trials in random order.

/ trials = [1-30=noreplace(a,a,b)]

will give you a 2:1 ratio, i.e., you'll end up with 20 a-trials and 10 b-trials in random order.

This is to say that the 1st option you specified

<block experimenteel>
/ trials = [...; 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294=noreplacenorepeat(1, q, a, z, filler_makkelijk_1, filler_makkelijk_q, filler_makkelijk_a, filler_makkelijk_z, filler_moeilijk_1, filler_moeilijk_q, filler_moeilijk_a, filler_moeilijk_z); ...]
...
</block>

will not (and is not supposed to) give you what you want. You are sampling from all elements in equal proportions.

The 2nd option is the proper one. However, there is a mistake in it.

You have correctly specified the selection pool itself, i.e., there are 144 elements in it:

noreplacenorepeat(

1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1, -> 29

q,q,q,q,q,q,q,q,q,q,
q,q,q,q,q,q,q,q,q,q,
q,q,q,q,q,q,q,q,q,q, -> 30

a,a,a,a,a,a,a,a,a,a,
a,a,a,a,a,a,a,a,a,a,
a,a,a,a,a,a,a,a,a,a,a, -> 31

z,z,z,z,z,z,z,z,z,z,
z,z,z,z,z,z,z,z,z,z,
z,z,z,z,z,z,z,z,z,z, -> 30

filler_makkelijk_1, filler_makkelijk_1, filler_makkelijk_1, -> 3

filler_makkelijk_q, filler_makkelijk_q, filler_makkelijk_q, -> 3

filler_makkelijk_a, filler_makkelijk_a, filler_makkelijk_a, -> 3

filler_makkelijk_z, filler_makkelijk_z, filler_makkelijk_z, -> 3

filler_moeilijk_1, filler_moeilijk_1, filler_moeilijk_1, -> 3

filler_moeilijk_q, filler_moeilijk_q, filler_moeilijk_q, -> 3

filler_moeilijk_a, filler_moeilijk_a, filler_moeilijk_a, -> 3

filler_moeilijk_z, filler_moeilijk_z, filler_moeilijk_z -> 3
);

However, you are actually drawing *145* samples from this pool, not *144*, which messes things up. This becomes easier to see when you group the trial numbers you specified in groups of ten:

 001, 003, 005, 007, 009, 011, 013, 015, 017, 019,
 021, 023, 025, 027, 029, 031, 033, 035, 037, 039,
 041, 043, 045, 047, 049, 051, 053, 055, 057, 059,
 061, 063, 065, 067, 069, 071, 073, 075, 077, 079,
 081, 083, 085, 087, 089, 091, 093, 095, 097, 099,
 101, 103, 105, 107, 109, 111, 113, 115, 117, 119,
 121, 123, 125, 127, 129, 131, 133, 135, 137, 139,
 141, 143, 145, 147, 149, 156, 158, 160, 162, 164,
 166, 168, 170, 172, 174, 176, 178, 180, 182, 184,
 186, 188, 190, 192, 194, 196, 198, 200, 202, 204,
 206, 208, 210, 212, 214, 216, 218, 220, 222, 224,
 226, 228, 230, 232, 234, 236, 238, 240, 242, 244,
 246, 248, 250, 252, 254, 256, 258, 260, 262, 264,
 266, 268, 270, 272, 274, 276, 278, 280, 282, 284,
 286, 288, 290, 292, 294

You'll want to amend the /trials attribute accordingly:

<block experimenteel>
/ trials = [...; 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294=noreplacenorepeat(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, q, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, filler_makkelijk_1, filler_makkelijk_1, filler_makkelijk_1, filler_makkelijk_q, filler_makkelijk_q, filler_makkelijk_q, filler_makkelijk_a, filler_makkelijk_a, filler_makkelijk_a, filler_makkelijk_z, filler_makkelijk_z, filler_makkelijk_z, filler_moeilijk_1, filler_moeilijk_1, filler_moeilijk_1, filler_moeilijk_q, filler_moeilijk_q, filler_moeilijk_q, filler_moeilijk_a, filler_moeilijk_a, filler_moeilijk_a, filler_moeilijk_z, filler_moeilijk_z, filler_moeilijk_z); ...]
By Isha - 2/28/2016

Thank you so much Dave! A stupid mistake, but I couldn't figure it out myself...
Great! It's all good now.