Awesome
a Quark for SuperCollider
main author: redFrik
OpenBCI
SuperCollider classes for communicating with Open Source Brain-Computer Interfaces.
The following boards are supported...
-
Cyton + Daisy (16 channels) untested
//install
Quarks.fetchDirectory
Quarks.install("OpenBCI-SuperCollider")
//recompile
OpenBCI.openHelpFile
For more info see https://openbci.com
Note that several of the examples here are ported from the official application OpenBCI_GUI v4.2.0.
overview
-
Cyton, CytonDaisy, Ganglion - use these SuperCollider classes if you connect to your board via bluetooth serial (the dongle). Maximum sample rate is 250Hz (Cyton) and 200Hz (Ganglion).
-
CytonWifi, CytonDaisyWifi, GanglionWifi - these SuperCollider classes require the WiFi Shield (also DIY) and a special firmware ( Arduino sketch ) for sending OSC. Maximum sample rate for these classes is 16000Hz.
-
PlaybackData - is a class tha can play back recorded data from file (e.g. the files recorded onto the onboard SD-card).
-
SyntheticData - with this class you generate synthetic test data. No hardware board needed.
-
DataFilterNotch, DataFilterBandpass, DataSmoothing, DataFFT, DataRecord etc - these are classes for analysing and modifying data.
(screenshot showing gui widgets ported from OpenBCI_GUI.app)
troubleshooting
see https://docs.openbci.com/Troubleshooting/TroubleshootingLanding/
changelog
- 1.91 - add mind mirror example, minor refactor and helpfile improvements
- 1.90 - major improvement in all examples using fft and filters
- 1.87 - focuswidget bugfix and bandpower improvements
- 1.86 - fft fixes, revert to default fft window, DataSmoothing filterLog
- 1.85 - changed SyntheticData to match 4.2.0, button bugfix, filterN, smoother drawing
- 1.82 - fft optimisation and windowtypes, fixing links, increase framerate in examples
- 1.81 - important bugfix for recorded/raw data file playback
- 1.80 - default bufferSize reduced from 1024 to 512, filters now calculate in place, use Image class
- 1.75 - added three scsynth examples and fixed some outdated links
- 1.71 - phase coherence added to -8ch nf, nf_plotter.scd added (with audio player and 'PlayFile' folder)
- 1.70 - neurofeedback-2ch and -8ch added
- 1.63 - impedance tests and examples, autoscale accelerometer
- 1.62 - readme updates with screenshot
- 1.61 - bugfix, remove wifi reset argument, simplify focus widget example
- 1.60 - file recording class, changed dataAction arguments
- 1.53 - file playback class
- 1.52 - focus widget
- 1.51 - bugfix for numChannels that made most examples stop working
- 1.50 - renamed buf, fft, lag, seq, test classes and added OpenBCIboard, bandpower widget
- 1.40 - rewrote filters and OpenBCIfft again, bufferSize, added OpenBCIlag, fixed examples
- 1.30 - rewrote filters and OpenBCIfft, added internal board buffer, fixed examples
- 1.20 - added filter functionality and classes, scaling inside classes, many example fixes
- 1.13 - ported some openbci_gui widgets, added tests, currentSampleRate, active flags
- 1.12 - added new sequencer class, buffer class stop bugfix, fixed examples
- 1.11 - added new buffer class
- 1.10 - big fixes to fft, clean up examples
- 1.02 - changed to direct ip instead of broadcast - need latest WifiShieldOSC
- 1.01 - improved helpfile, added initAction feedback, new advanced example
- 1.00 - big breaking rewrite and restructure of classes, added osc wifi classes
todo
- are getRadioChannel, setRadioChannel, setRadioHostChannel, getRadioPollTime, setRadioPollTime, setRadioHostBaudRate, getRadioSystemStatus, attachWifi, removeWifi supposed to work with wifishield?
- document all methods in Cyton, CytonDaisy and Ganglion classes
- add a 10sec timeout on initAction
- implement and test the different aux commands
- finish and test Ganlion classes - both serial and wifi
- finish and test Daisy classes - both serial and wifi
- deal with muted channels in test and fft classes
- converter class for SD log file data
- ganglion impedance