Page 1 of 1

modified matrix using the software BCI2000

Posted: 01 Jul 2013, 13:39
by rnapolitano
hi,
we are students who are doing research on innovative software BCI. In particular our aim is to create a modified matrix using the software BCI2000: the six elements of a line or of a column of the matrix 6x6 standard become the elements of a new matrix,where :in the central area of the matrix we'll find the elements extracted from the line or column.
In the other parts there will be a no value or zero.
The aim is to reduce the use of the peripheral vision, by reducing the space where the letters that the user has to choose are.

Rachele Napolitano

Re: modified matrix using the software BCI2000

Posted: 01 Jul 2013, 15:25
by mellinger
Hi,

I'm not sure whether this is a question, but I think you can implement that by modifying P3Speller::LoadMenu() such that matrix elements are assigned rectangles in the center of the screen, rather than distributing them across the screen in a non-overlapping manner.

Regards,
Juergen

Re: modified matrix using the software BCI2000

Posted: 02 Jul 2013, 04:54
by stacyfran
Hello,
I'm working in the same design as Rachele, thank you for your reply.
We want to develop a new interface where:
At first the user sees a 6x6 matrix; than a random line (or column) is placed in the center of the screen in a 3x2 matrix with the rest of the display empty. Than another line (or column) replace the one shown above randomly. This process is repeated till all the characters are shown in the center of the screen. Can we do it with the Load menu?
Regards,
Anastasia Mazzoli

Re: modified matrix using the software BCI2000

Posted: 02 Jul 2013, 08:58
by mellinger
That depends on how exactly your paradigm is supposed to work.
At first the user sees a 6x6 matrix
So this is an initial phase without stimulus presentation (flashing)?
than a random line (or column) is placed in the center of the screen in a 3x2 matrix with the rest of the display empty. Than another line (or column) replace the one shown above randomly. This process is repeated till all the characters are shown in the center of the screen
Is the replacement already identical with stimulation, or will there be flashing of that entire line, or of individual entries thereof?

The existing code will take care of flashing existing stimuli in groups (e.g., rows or columns), as defined during LoadMenu(). Also, you may have any number of copies of individual stimuli, located at different points on the screen, or having different sizes. You may also switch presentation behavior from flashing to show/hide for individual stimuli.

For more fine-grained tuning of stimulus behavior, you might override the OnStimulus() hook of the StimulusTask base class -- see the wiki entry for the StimulusTask base class for details.

HTH,
Juergen

Re: modified matrix using the software BCI2000

Posted: 02 Jul 2013, 11:14
by Francesco
I need the same thing. I think that the idea is to place a 3x2 matrix or other dimensions, where the letters inside change at every stimulus presentation. It is possible in BCI2000, how?

Regards,
Francesco

Re: modified matrix using the software BCI2000

Posted: 02 Jul 2013, 11:27
by mellinger
If stimulus presentation is done by displaying the stimuli, then just switch each stimulus's presentation mode to show/hide in LoadMenu().

For more detailed questions, please use the wiki search function to locate possible answers. If you have specific questions that cannot be answered from the wiki, feel free to ask again.

Regards,
Juergen

Re: modified matrix using the software BCI2000

Posted: 21 Jul 2013, 06:56
by Francesco
I created a new P300 Speller window putting in a 3x2 matrix, where the letters inside change at each stimulus presentation. Now I want read the text stimuli associated to inStimulusCode. How can I read the text stimuli by:
SetOfStimuli mStimuli=Associations()[ inStimulusCode ].Stimuli(); ?


Francesco

Re: modified matrix using the software BCI2000

Posted: 22 Jul 2013, 09:31
by mellinger
Don't change letters or positions of stimuli between presentations. Instead, for each combination of position, and letter, create a separate stimulus. Classification is done on targets, which may or may not correspond directly to individual stimuli. To deal with this, make sure you understand the conceptual difference between stimulus presentation (e.g., flashing of a speller row), and target selection (e.g., determining which letter to spell):

Anything to be presented corresponds to a stimulus, and anything to be selected corresponds to a target. Typically, multiple stimuli are presented simultaneously, such as the stimuli making up a single row or a single column in the standard speller. Each simultaneous presentation corresponds to an "association", with a unique stimulus code. An association holds both stimuli to be presented, and targets associated with those stimuli. In the standard P3Speller, there is a 1-to-1 correspondence between stimuli (matrix elements) and targets (letters to be spelled), but this may be different. E.g., there might be multiple stimuli connected to the same letter. The P3Speller's selection algorithm will be able to deal with any relation between stimuli, and targets, as long it is informed about that relation by making sure to add both stimuli and targets to each association.

This is also explained in detail on the StimulusTask class wiki page.

Best regards,
Juergen