Several flickering tasks run simultaneously

pati-confidence pati.confidence at gmail.com
Fri Jul 8 00:11:27 UTC 2011


Thank you for your so detailed and valuable relies.
I have implemented the required task by the use of the Slide, with four
targets flickering in 10Hz, 11Hz, 12Hz and 15Hz respectively, which is much
easier than flickering in 7.5Hz, 8.6Hz, 10Hz, 12Hz.
And I will attempt your method later.
Thank you very much!

guobing Wu

On Fri, Jul 8, 2011 at 3:08 AM, David McFarlane <mcfarla9 at msu.edu> wrote:

> Ah, checked my own E-Prime FAQ, and here is the link of where I have
> addressed this kind of question before: http://groups.google.com/**
> group/e-prime/browse_thread/**thread/fda0b9bbe3a149c3<http://groups.google.com/group/e-prime/browse_thread/thread/fda0b9bbe3a149c3>
>
> -- David McFarlane, Professional Faultfinder
> (Now next time someone asks this, I will try to direct them to the thread
> from today :))
>
>
>
> At 7/7/2011 03:03 PM Thursday, David McFarlane wrote:
>
>> Mich beat me to the punch, and with the answer that I would have given at
>> first.  And Mich adds a crucial concern that I would have overlooked, namely
>> that your chosen flicker times only work if they are each commensurate with
>> your display refresh rate, which they probably are not (your chosen flicker
>> frequencies translate to periods of 83.3, 100, 116.3, and 113.3 ms,
>> respectively, and you would have to find a common divisor to all of those in
>> the range of roughly 8.3 to 16, good luck!).  But I can't resist weighing in
>> further...
>>
>> Setting aside your incommensurate flicker rates, can E-Prime do this?
>>  Well (as Mich already said), yes, in principle; but in practice, for this
>> particular task you might be far better off using something like
>> Presentation, or MATLAB with the Psychophysics Toolkit (my own first choice
>> for your task).  You would like a toolset that includes pre-made objects
>> that can flicker themselves at specified rates, and then set those running.
>>  AFAIK, EP has no such facility, but maybe Presentation or MATLAB or
>> Psychopy do, and then Bob's your uncle!
>>
>> Next, you could try Mich's fine suggestion, but once again I fear that
>> incommensurability will raise its ugly head.  Now you not only need a common
>> divisor, but you need a List that contains the pattern of on-off images for
>> each time point until the entire temporal pattern repeats, and that will not
>> happen until you reach the least-common-multiple of the individual period
>> times, and in your case that will be greater than, say, 83.3 * 113.3 = 9.5
>> s, and perhaps as great as 83.3 * 100 * 116.3 * 113.3 = 30.7 h.  Yikes!  Of
>> course, if you are not wedded to these period times, then you might adust
>> them to more workable values (there's a nice academic exercise for you).
>>
>> But I said E-Prime could do this, and here's how.  It would require some
>> intricate code, the same way that you could do it in any full-featured
>> programming language, such as C or C++ or even JavaScript, and I have done
>> things like this myself in C.  You would need to contruct your own "event
>> loop" (do a search of the Group or the Forum on that phrase to see where I
>> have discussed this before).  In short, you create an array that holds the
>> upcoming transition time for each object (in this case, your four flickering
>> targets).  Each time through the loop it just checks each of these times
>> against the current clock time, and when any one reaches its next transition
>> time then the loop updates that target and adjuts its transition time for
>> the next one.  Your loop just does that for the duration of the display.
>>  Here is some pseudo-code for that (using my own odd mixture of C-like and
>> other notation):
>>
>> while( presentation_ongoing )
>>    for( i = 1 to nTargets )
>>        if( Clock.Read >= target[i].tNext )
>>            target[i].toggle
>>            target[i].tNext = target[i].tNext + target[i].tPeriod
>>
>> Of course, you also have to initialize .tPeriod and .tNext for each
>> target, and I left out the mechanics of how to implement anything like a
>> .toggle method to redraw a target between its two states, but I leave those
>> as exercises.
>>
>> -- David McFarlane, Professional Faultfinder
>>
>>
>> (P.s.  For those who know more C-like notation, the pseudo-code above
>> could be more nicely written as
>>
>> while( presentation_ongoing )
>>    for( i = 1 to nTargets )
>>        if( Clock.Read >= target[i].tNext )
>>            target[i].toggle
>>            target[i].tNext += target[i].tPeriod
>>
>> Isnt' that nice?)
>>
>>
>> At 7/6/2011 05:12 AM Wednesday, Michiel Spape wrote:
>>
>>> Oh, wait, simultaneous tasks, you say?
>>> I think there are a few ways of handling this...
>>> How about you make one slide with your four targets. These are four text
>>> "sub objects". Each target has a colour: white (as in, off, since the
>>> background is white), or black. See first how you can make them black or
>>> white (it's the background colour thing). Then, set each to [Target1Colour],
>>> [Target2Colour], [Target3Colour] and [Target4Colour] instead. The slide has
>>> a duration of slightly below your maximum refresh rate (i.e. 15 ms if your
>>> monitor runs at 60 Hz), and onset sync is on.
>>> Make a list, sequential selection, 1 procedure, and set Exit after to 1
>>> sec (i.e., it repeats for one second). Drag the slide you just made to the
>>> one procedure.
>>> Add 4 procedures to the list: Target1Colour, Target2Colour,
>>> Target3Colour, Target4Colour. Think of the list as one second, and add
>>> levels accordingly: if your monitor runs at 60 Hz, there should be at least
>>> 60 levels. Find out, at each level, which of the targets is black. For
>>> instance, your second target, flickering at 10 Hz, should be black at the
>>> first level (time = 0 ms), 7th level (time = 100 ms), 13th level (time = 200
>>> ms) and so on, but white at level 2-6, and so on.
>>>
>>> Well, voila, there you go, it should now flicker. Of course, nothing is
>>> randomised, but it should work, and I think you might be able to take it
>>> from there. Also, no code yet.
>>> Best,
>>> Michiel
>>>
>>> Michiel Spapé
>>> Research Fellow
>>> Perception & Action group
>>> University of Nottingham
>>> School of Psychology
>>> www.cognitology.eu
>>>
>>>
>>> -----Original Message-----
>>> From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.**com<e-prime at googlegroups.com>]
>>> On Behalf Of pati-confidence
>>> Sent: 06 July 2011 06:17
>>> To: E-Prime
>>> Subject: Several flickering tasks run simultaneously
>>>
>>> I want to build a BCI system, which presents four targets on LCD
>>> screen, with flickering frequencies of 12Hz, 10Hz, 8.6Hz and 7.5Hz.
>>> respectively.
>>>
>>> And the four targets are flickering simultaneously.
>>>
>>> Can E-prime achieve the goal?
>>>
>>> Any tips will be appreciate.  Thank you.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "E-Prime" group.
>> To post to this group, send email to e-prime at googlegroups.com.
>> To unsubscribe from this group, send email to e-prime+unsubscribe@**
>> googlegroups.com <e-prime%2Bunsubscribe at googlegroups.com>.
>> For more options, visit this group at http://groups.google.com/**
>> group/e-prime?hl=en <http://groups.google.com/group/e-prime?hl=en>.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "E-Prime" group.
> To post to this group, send email to e-prime at googlegroups.com.
> To unsubscribe from this group, send email to e-prime+unsubscribe@**
> googlegroups.com <e-prime%2Bunsubscribe at googlegroups.com>.
> For more options, visit this group at http://groups.google.com/**
> group/e-prime?hl=en <http://groups.google.com/group/e-prime?hl=en>.
>
>

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.linguistlist.org/pipermail/eprime/attachments/20110708/4aec593c/attachment.htm>


More information about the Eprime mailing list