P300 Speller Stimulator

Summary

Doc_BoxAlgorithm_P300SpellerStimulator.png
  • Plugin name : P300 Speller Stimulator
  • Version : 1.0
  • Author : Yann Renard
  • Company : INRIA
  • Short description : Generates a stimulation sequence suitable for a P300 speller
  • Documentation template generation date : Oct 29 2020

Description

This box is used to generate a 2D P300 stimulation timeline. Depending on its parameters, it generates all the necessary flagging stimulations for an P300 experiment, such as when a flash starts, when it stops, when the repetitions are finished etc.

Imagine a P300 speller application. Such application is based on a matrix of letters / numbers. The lines and columns of this matrix are flashed consecutively a number of time. Then a decision can be made and the user can relax. Then same process restarts and so one. Such experiment can be driven by this box.

Inputs

1. Incoming stimulations

This input is used to start the generation of the pipeline. As soon as the start stimulation arrives here, the generation process starts. (see setting 1)

  • Type identifier : Stimulations (0x6f752dd0, 0x082a321e)

Outputs

1. Produced stimulations

This output contains the stimulations used for P300 based experiments.

  • Type identifier : Stimulations (0x6f752dd0, 0x082a321e)

Settings

1. Start stimulation

This first setting tells which stimulation to use to start the generation process. This stimulation can be received from a keyboard for example (see Keyboard stimulator).

  • Type identifier : Stimulation (0x2c132d6e, 0x44ab0d97)
  • Default value : [ OVTK_StimulationId_Label_00 ]

2. Row stimulation base

This setting tells what stimulation base to use when flashing rows of the matrix. When row one should be flashed, this exact stimulation will be sent. When row two should be flashed, this stimulation + 1 will be sent, and so on.

  • Type identifier : Stimulation (0x2c132d6e, 0x44ab0d97)
  • Default value : [ OVTK_StimulationId_Label_01 ]

3. Column stimulation base

This setting tells what stimulation base to use when flashing columns of the matrix. When column one should be flashed, this exact stimulation will be sent. When column two should be flashed, this stimulation + 1 will be sent, and so on.

  • Type identifier : Stimulation (0x2c132d6e, 0x44ab0d97)
  • Default value : [ OVTK_StimulationId_Label_07 ]

4. Number of rows

This setting tells how many row the matrix has.

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 6 ]

5. Number of columns

This setting tells how many columns the matrix has.

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 6 ]

6. Number of repetitions

This setting tells how many times each row / column should be flashed in a trial.

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 5 ]

7. Number of trials

This setting tells how many trials should be generated.

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 5 ]

8. Flash duration (in sec)

This setting tells how long a flash longs.

  • Type identifier : Float (0x512a166f, 0x5c3ef83f)
  • Default value : [ 0.075 ]

9. No flash duration (in sec)

This setting tells how long this stimulator should wait after a flash is finished before sending a new flash.

  • Type identifier : Float (0x512a166f, 0x5c3ef83f)
  • Default value : [ 0.125 ]

10. Inter-repetition delay (in sec)

This setting tells how much rest is left to the user between the repetitions.

  • Type identifier : Float (0x512a166f, 0x5c3ef83f)
  • Default value : [ 2 ]

11. Inter-trial delay (in sec)

This setting tells how much rest is left to the user between the trials. Please note that the end of a trial is also the end of a repetition. So the rest duration includes both times.

  • Type identifier : Float (0x512a166f, 0x5c3ef83f)
  • Default value : [ 5 ]

12. Avoid neighbor flashing

This setting is not used for now.

  • Type identifier : Boolean (0x2cdb2f0b, 0x12f231ea)
  • Default value : [ false ]

Examples

This box is used in the P300 speller and the P300 magic card BCIs. Please see those scenarios in the sample openvibe-scenarios.

Miscellaneous

Note: Even if this box has been created for flashing matrices, it could be used for flashing 1D things. However, in order to have more efficient results on matrices, this box flashes one line, then one column, then one line etc. It never flashes a line and then another line. Thus in the 1D case, you have to know that the same behavior will occur, resulting on the flashing of the low-part of your 1D set, then high part, then low part etc...

The sequence generated by this box is typically something like this :

OVTK_StimulationId_ExperimentStart

        OVTK_StimulationId_RestStart
        OVTK_StimulationId_RestStop

        OVTK_StimulationId_TrialStart
                OVTK_StimulationId_SegmentStart

                        OVTK_StimulationId_Label_0B
                        OVTK_StimulationId_VisualStimulationStart
                        OVTK_StimulationId_VisualStimulationStop

                        OVTK_StimulationId_Label_03
                        OVTK_StimulationId_VisualStimulationStart
                        OVTK_StimulationId_VisualStimulationStop

                        ...
                        ...
                        ...

                        OVTK_StimulationId_Label_04
                        OVTK_StimulationId_VisualStimulationStart
                        OVTK_StimulationId_VisualStimulationStop

                OVTK_StimulationId_SegmentStop
                OVTK_StimulationId_SegmentStart

                        ...
                        ...
                        ...

                OVTK_StimulationId_SegmentStop

                ...
                ...
                ...

        OVTK_StimulationId_TrialStop

        OVTK_StimulationId_RestStart
        OVTK_StimulationId_RestStop

        OVTK_StimulationId_TrialStart

                ...
                ...
                ...

        OVTK_StimulationId_TrialStop

        ...
        ...
        ...

OVTK_StimulationId_ExperimentStop