Julia Processor

The julia processor is currently in development and only available in the 'jvoigts' branch - we'll move it to the main branch when we launch the plugin architecture.
This module is in dev and shouldnt be used by anyone not familiar with its function.

 

Background

Julia is a very young matlab-like programming language with a performance close to compiled c.
 
Julia vs. other languages (source: Jacob Quinn, on the julia google group, data from http://benchmarksgame.alioth.debian.org/) 

Function

The julia processor sends all neural data (and events) to Julia, where it can be processed by the user-defined Julia function oe_process!(data, events) and returned to the GUI.
oe_process currently works by just modifying data and events (events are still not functioning though).
The module works by embedding Julia into c, using the method described in the julia doc. For a good example of this method, also see the example in /julia/examples/embedding.c.

One function that's currently missing is a intermediate buffer (Nbuf. samples of data) that makes sure that the julia module always sees a specified amount of data. This could also be implemented in julia, but would be a nice feature to make the behaviour of the code more consistent even when changing the size of the GUI data buffer

Installation

Build julia from sources, some debian packages are missing the example code and seem to cause errors.
Test embedding by building and running the examples included with julia.

The path to the julia executable is currently hardcoded in juliaProcessor.cpp line 92. 

Parameters saved

none for now.

Upgrades needed

  • fix event passing
  • implement the variable buffer size with a rolling buffer  
  • add config options for julia executable path