   EEG Discussion Extracting the data from an NIA
  Hi Everyone,I know this isnt really a game programming question but the entire thing was started because im trying to follow game testing procedures as denotes by Lenart E Nacke in his thesis. I wanted to record alpha, beta, theta and delta waves and interperet them as according to his paper page 125.Ive posted on the nia forums but id like to create a more general discussion here and this / general programming seemed like the best area to post.So far there is nothing that will out put in explicity teh required wavelengths due to the current innability to interperet the raw NIA data?I decided to have a play with an idea of my own and discuss it.Basically i decided that currently the best reader of the data is the NIA software itself with its brainfingers, so i created a game profile where it presses certain keys depending on the data on certain frequencies.The logic here is each wave, could be represented by each joystick controller, so i asigned 1st = alpha1, 2ncd = beta 1, 3rd = alpha 2, 4th = Beta 2. Then for each i adjusted the signal to be within the frequencies as denoted by Nacke:"Brain waves are usually described in terms of frequencybands, such as Delta (1–4 Hz), Theta (4–8 Hz), Alpha (8–14 Hz),Beta (10–30 Hz), and sometimes Gamma (30–50 Hz)."So i set 1st joystick freqency to 11 for alpha2nd joystick frequency to 20 for beta3rd joystick frequency to 6 for theta4th joystick frequncy to 40 for gamma (although i might switch this to alpha 3, set frequency to 2.5 for delta)then i set their sensativity quite low (all to the magnify value of 0.6)each joystick presses certain keys as mentioned, for example the 1st one presses 0,1,2,3 depending on its postition.Then i wrote a quick program which has the basic logic of:float HighestQuadrant = 2;float HighQuadrant = 1.5;float LowQuadrant = 1;float LowestQuadrant = 0.5;//alphaif(input->IsKeyDown(OIS::KC_0)){alpha=HighestQuadrant;}else if(input->IsKeyDown(OIS::KC_1)){alpha=HighQuadrant;}else if(input->IsKeyDown(OIS::KC_2)){alpha=LowQuadrant;}else if(input->IsKeyDown(OIS::KC_3)){alpha=LowestQuadrant;}Its effectively digital readings but its enough to say whether the readings are high or low. The program and required NIA gameprofile is  Now available to download =] The question are:   -Is my logic completley flawed? im i taking complete rubbish in terms of results?  -Is anyone willing to run it through a few tests(hmm this might belong in game design afterall =]  -Has anyone had any experience  fourier transforms  i discovered them after writing my project and they look like they would interperate the raw data of the NIA....shame im running out of time and dont understand the maths =PAnywho it would be nice to get any kind of feedback on this idea, fourier transforms and the NIA in general. Ill be very thankfull to anyone who can help get the ball rolling on this one![Edited by - ChrisPepper1989 on April 18, 2010 8:01:52 PM]
  Sorry, I still don't really understand what you want to do.Are you trying to generate a wave-form from user input on some joysticks? Or use a wave-form input to control some mechanical device? Or just what?   ;Quote:Original post by ZahlmanSorry, I still don't really understand what you want to do.Are you trying to generate a wave-form from user input on some joysticks? Or use a wave-form input to control some mechanical device? Or just what?Sorry i should have clarified a bit more on what the NIA is and does.Im using the OCZ NIA which is an EEG reader for game controlling.However i wanted to use it to analyse brain waves of game testers to see how immersed they are feeling, when they are frustrated and so on.Currently there are no ways of converting the NIA to a standard EEG reader. This is my attempt so far and i was wondering if anyone else had any ideas.The NIA is a stanadard HID device and thus can be accessed and read, but the data is currently not fully understood by the people that have tried before me. However people have been succesfull in getting raw brain wave data from it but no one as of yet has been able to take this and split it into usefull wavelengths, i.e. alpha, beta, gamma and delta.My work around was to use the standard software that comes with the nia, which is meant for controlling games. The idea is you set up "joysticks" (which frankly is a bad name) each "joystick" is associated to a certain wave and its frequency can be adjusted. Then you can speciy when you want to trigger keys and mouse clicks based on the position of the "joystick" which i suppose is really the wave.So at certain bands of the wave i get the program to press certain keys, and my program then interprets these key presses as the current position of the wave. does that make sense? its a very digital solution to something that is analogue and im not sure if it is actually a solution at all. I hope that makes what im doing clearer? i wanted to discuss this approach and other approaches that could be taken!Thank you for your reply!