JSON config file for good FFT visualizations in MuseLab?


How are people visualizing FFT data with MuseLab? Does anyone have any JSON configuration files that display FFT graphs?


Hi Kartik,

The raw FFT data can be visualized with the Stationary Line Graph visualizer type. I’ve posted a JSON config file for MuseLab on the dev site that sets this up (using port 5000 to receive OSC messages). It also has graphs for raw EEG data, blink, jaw clench, and on-head indicators. Check out the attached picture to get an idea of how it should look.

Grab the JSON file here: https://sites.google.com/a/interaxon…b/config-files

EDIT: vBulletin is insisting on making the screenshot image tiny for some reason. I’ve posted it to the page linked above.


Thanks for putting this config together Tom. Looks like I ran into a glitch though – when I tried loading the JSON config, it locked up MuseLab. I waited for several minutes and it remained locked up. This is on my Linux system (Fedora 20).


Interesting, I’m not familiar with that issue. I will forward it to the lead developer on MuseLab, thanks for letting us know!

In the meantime, are you familiar with how to manually configure MuseLab? If so, you should find it fairly easy to set up a Stationary Line Graph and assign the four /muse/elements/raw_fft* streams to it. The MuseLab tutorial (https://sites.google.com/a/interaxon.ca/muse-developer-site/muselab/tutorial) describes how to set up a Scrolling Line Graph, but the procedure is pretty much identical for a Stationary Line Graph.




I’m able to set up the stationary line graph manually and display /muse/elements/raw_fft*. I guess what is throwing me is the lack of units on the x axis. Is the x-axis frequency in kHz, with low frequencies on the left and high frequencies on the right? Is it possible to enable units on the x axis?

Also, another thing I realized when looking at your screenshot is that the y-axis zoom for the EEG data is different from the blink and other data. When I previously set it up manually, I added all of those data elements on the same graph, so I wasn’t able to clearly notice the latter elements. Now that I have set up multiple graphs, I can see both data sets more clearly with separate zoom settings.


Looking at this thread, I think I have a better understanding:


I’m assuming that raw_fft0 is the leftmost element displayed on the x-axis in the stationary view. If this is the case, then it would correspond to 0 Hz and the rightmost element would correspond to 110 Hz.


Hey Kartik,

Yep, that’s more or less correct. Although /muse/elements/raw_fft0 is an array of data, not a single element. For Channel 0, raw_fft0[0] is the leftmost element, and raw_fft0[128] is the rightmost. The number in the /muse/elements/raw_fft* path refers to the channel number.