modified matrix using the software BCI2000

Forum for software developers to discuss BCI2000 software development
Locked
rnapolitano
Posts: 1
Joined: 01 Jul 2013, 13:07

modified matrix using the software BCI2000

Post by rnapolitano » 01 Jul 2013, 13:39

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

mellinger
Posts: 1052
Joined: 12 Feb 2003, 11:06

Re: modified matrix using the software BCI2000

Post by mellinger » 01 Jul 2013, 15:25

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

stacyfran
Posts: 1
Joined: 02 Jul 2013, 04:32

Re: modified matrix using the software BCI2000

Post by stacyfran » 02 Jul 2013, 04:54

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

mellinger
Posts: 1052
Joined: 12 Feb 2003, 11:06

Re: modified matrix using the software BCI2000

Post by mellinger » 02 Jul 2013, 08:58

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

Francesco
Posts: 17
Joined: 09 Jun 2011, 03:13

Re: modified matrix using the software BCI2000

Post by Francesco » 02 Jul 2013, 11:14

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

mellinger
Posts: 1052
Joined: 12 Feb 2003, 11:06

Re: modified matrix using the software BCI2000

Post by mellinger » 02 Jul 2013, 11:27

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

Francesco
Posts: 17
Joined: 09 Jun 2011, 03:13

Re: modified matrix using the software BCI2000

Post by Francesco » 21 Jul 2013, 06:56

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

mellinger
Posts: 1052
Joined: 12 Feb 2003, 11:06

Re: modified matrix using the software BCI2000

Post by mellinger » 22 Jul 2013, 09:31

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

Locked

Who is online

Users browsing this forum: No registered users and 1 guest