Tags: faq realtime

Does the FieldTrip realtime buffer only work with MATLAB?

No, the FieldTrip realtime buffer defines a network communication protocol at the level of the TCP/IP protocol. It does not require any specific operating system, programming language or data analysis environment, although we happen to use it a lot in combination with MATLAB and with functions from the FieldTrip toolbox on the analysis side. Most of the applications on the data acquisition side are implemented in C or C++.

Furthermore, it helps to distinguish between the buffer server and the clients.

C client

This is the reference implementation, i.e. the authoritative example implementation. it is implemented in ANSI C to allow it to compile on a large number of platforms and available in fieldtrip/realtime/src/buffer. You can compile it as library and use it in your own software.

C++ client

A C++ wrapper around the reference implementation is available in fieldtrip/realtime/src/buffer/cpp, together with a number of classes that facilitate the development of client applications in C++. Please see this documentation for more details.

Python client

A native Python implementation of the client-side functions is available in fieldtrip/realtime/src/buffer/python. Please see this documentation for more details.

Java client

A native Java implementation of the client-side functions is available in fieldtrip/realtime/src/buffer/java. Please see this documentation for more details.

MATLAB client

The MATLAB implementation consists of the ft_read_header, ft_read_data and ft_read_event functions from the fieldtrip/fileio directory. Under the hood, these functions call a mex file in which the reference implementation is being used. Please see this documentation for more details and go through the getting started documentation.