Skip to content
Snippets Groups Projects
user avatar
Ryan Maloney authored
Uses the parameters array to create XML data for parameter settings on
each channel when saving.

This only works for processors that use the parameters array, though I
updated LFP and Signal Generator to update that in parallel (LFP seems
to have an unrelated bug in dealing with channels that is causing some
problems). Eventually, all parameters should be used in the parameters
array, since it opens up a lot of possible holes when using default
values (they need to be specified twice), and once loading is
implemented. I've fixed some of the problems with parameters, so this
should be easier to do.

As part of this, I also fixed the implementation of
addParameterEditors. The old way of implementing a custom parameter
editor was to rewrite the virtual function, but because it was called
in the constructor, this didn't work (constructors use the type of the
parent). Instead, all editors now also pass a bool
"useDefaultParameterEditors" which is used by addParameterEditors() to
determine whether to do anything. I think this is the best way to do
it. It's initialized to default as true, though I had some trouble with
it implicitly taking the argument and so had to add true to most of the
editor functions (which is probably good practice anyway).

I also fixed some of the functions for generic processor to get
parameter index and parameter name.

Obviously, this is of considerable less use without functions for
loading parameters, but I figured it'd be better to make available for
testing with just the loading in case the changes to Parameters broke
anything I missed.
58c8797d
History

Welcome to the Open Ephys project!

This GUI was designed to provide a fast and flexible interface for acquiring and visualizing data from extracellular electrodes. It's still lacking many features, and isn't yet robust enough for widespread release, but the overall framework will make it easy to extend.

Everything is written in C++, with the help of the Juce library. Juce is lightweight, easy to learn, and completely cross-platform. What's more, it includes a variety of classes for audio processing, which have been co-opted to process neural data. It might be necessary to create custom data processing classes in the future, but for now, Juce takes care of a lot of the messy bits involved in analyzing many parallel data streams.

This repository contains all of the files (save for a few dependencies) you'll need to compile and run the GUI on Linux and Mac OS X. The makefile (for Linux) and XCode project (for Mac) are located in the Builds/ directory. To build the GUI on Windows, you'll need to use Visual Studio 2012. The Visual Studio project files can be found in the Builds/ directory, and Windows dependencies (such as DLLs) are conveniently located in the windeps/ folder.

We recommend reading through the GitHub wiki before attempting to make any changes.

If you want to add files, you'll have to do that through "The Jucer," using the "open-ephys.jucer" file. The Jucer makefiles are located in the JuceLibraryCode/jucer/Builds folder, or as part of the Juce library package on SourceForge.