EEG Controlling Music through Raspberry Pi

Imagine controlling Pandora with your brainwaves. Whenever a song comes up that you do not enjoy, make it switch to the next one. All you need is an EEG sensor, a pianobar and a single board computer such as the RBPi or Raspberry Pi. Once you train the RBPi to differentiate the bad from good music, you are good to go.

You need to train the Bayesian classifier to recognize good music from the bad. However, basic machine learning techniques do not always turn out very good. Therefore, with this time-series data, you can use it in sequences to reduce false positives.

Using an EEG headset to control songs you dislike is great, especially when you are moving around or doing something away from your computer. You simply slip on the Mindwave Mobile headset from the Brainwave Starter Kit and use the included app to see your brainwaves change in real-time on your mobile. You can monitor your levels of relaxation and attention while watching the response of your brain when you are listening to your favorite music. The Brainwave store has multiple brain training games and educational apps, which are classified according to age and personal interests.

Data from the Mindwave Mobile headset travels via Bluetooth to communicate wirelessly with the RBPi. Using the free developer tools available online from NeuroSky, you can write your own programs to interact with the Mindwave Mobile headset. On the Mindwave Mobile, you can see the EEG power spectrums of alpha, beta and other waves from your brain. With the NeuroSky eSense, you can even sense eye blinks and differentiate between attention and meditation states.

When using the EEG headset with the RBPi and a Bluetooth module, you can record data of some labeled songs that you like and some that do not appeal to you. From the Mindwave headset, the RBPi will get data on waves from your brain such as the delta, theta, low alpha, high alpha, low beta, high beta, mid gamma and high gamma. It will also get an approximation of your meditation and attention levels using FFT or Fast Fourier Transform. Additionally, the headset also provides a skin contact signal level.

It is difficult to make out much from the brainwaves unless you have received adequate training to do so. Machine learning helps here, as you can use software to differentiate good music from the bad. The basic principle is to use Bayesian Estimation to construct two multivariate Gaussian models, one based on good music and the other representing bad ones.

Initially, the algorithm may only be accurate about 70-percent of the time. Although this is rather unreliable, you can use the temporal data and wait for say, four simultaneous estimates before you decide to skip the song. The result is a way to control the songs played, using only your brainwaves.

Pianobar on the RBPi controls the music stream to Pandora. You start pianobar and then start the EEG program using python. It will tell you if the headset is placed properly on your head since it gives a low signal warning. Once it detects a song, it will skip it once it detects four bad signals in a row.