Report & slides

here the report for the work done this year and the slides used for the final presentation.

Final application

Here is a video showing the result reached after this first study year :

Emotiv EPOC : EEG raw signals

In a previous work (learn more), we found a way to get back the raw signals (from the headset electrodes). But this solution wasn’t very convenient (2 software and a specific component were needed).

So we decided to implement this possibility directly into the EEPOC component using the Emotiv API.

Indeed, the API offers the possibility of getting back the 14 EEG headset channels:

Read the rest of this entry »

OpenInterface : virtual component

Once again, Lawson L. has worked for us ! He realized a dynamic component, we needed, for Kyma.

This component is called “Virtual Interface”

This component has the ability of adding new inputs & outputs dynamically when the pipeline is running !

Read the rest of this entry »

CollectAndForward, OpenInterface API modified

Lawson L. (conceptor of OpenInterface Workbench) has worked for us (thanks to him !!) to implement an other way to define the adapter’ output arguments.

With the previous version, there was 2 ways to define the adapter’ output arguments :

  1. Static arguments defined by ourself in the .XML
  1. Dynamic arguments defined according to an input (output arguments are the same as input arguments)

Now, with the new version, it’s possible to define the arguments in the C++ code. That permits to define dynamic arguments, according to an input, but not necessary the same (as before). For example, and it’s the way used in our project, we can tell that the output argument will be an array of the input argument’s type (If we have INT, FLOAT, DOUBLE as input argument, we will have INT_ARRAY, FLOAT_ARRAY, DOUBLE_ARRAY as output argument).

Read the rest of this entry »

Participation to the KISS2012 !

A really good news has arrived :

Our project has the honor to be presented at the Kyma International Sound Symposium (KISS) 2012 (learn more).

This presentation will take place from 13 to 16 september 2012 at St. Cloud (Minesota) and and we will discuss about rapid prototyping (for Kyma) using OpenInterface Workbench.

Collect and forward data : time based epoching

Doing a signal processing in real time is not really feasible. For example, we can’t do a Fast Fourier Transform or a processing based on the frequency bands power with a continuous data stream. These processing need to be done on a data block if we want exploit them efficiently.

So, the first step to be done in our project, to be able to do signal processing on our raw data, is creating a temporal buffer to collect the data and forward them into blocks.

In signal processing, this algorithm is called Time Based Epoching.

Read the rest of this entry »

Communication with Kyma in OpenInterface (continued)

In a previous post, we have seen how to communicate with Kyma to get the sound current settings. To do that, we had to use a push button (or anything else that sends an event) to start the communication.

But, in a real time application, it could be interesting to get automatically the new sound settings when the sound is changed. It’s possible to do that with the Kyma OSC notifications (for our application we have only implemented ).

Read the rest of this entry »

Inplementing Qt in OpenInterface (continued)

In a previous post we’ve seen how implement a simple Qt widget in OpenInterface and we’ve done it as a static component. If we need only one widget, there is no problem but imagine if we need a lot of them ..

As you can see is not really convenient. So, we’ve decided to realize a Qt Adapter (remember, with an adapter we can have any number of outputs we want).

Read the rest of this entry »

OI C# (.Net) component

For the .Net programming languages (C#, VB, J#) we have to use a C++ wrapper. The Skemmi component will be coded in C++ but it will execute the .Net code.

1. Create a new general project, add the OI component folder, add a new Skemmi Diagram and draw the component

Read the rest of this entry »