Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Splitting ble2lsl from WizardHat and creating a new release. #15

Merged
merged 38 commits into from
Nov 6, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
5eba604
Creating the `Spectrum` datatype. Added basic documentation, placehol…
mlprt Jun 23, 2018
4677ec0
Fixed dtype, added `initialize` function and `range` property.
mlprt Jun 25, 2018
3a169bb
Renamed `Spectrum` to `Spectra` to reflect that it holds multiple tim…
mlprt Jun 26, 2018
07183e7
Basic working version of a PSD transformer, still needs to be funnell…
OmriNach Aug 27, 2018
7f00327
Multi-channel spectra class. Slight change to file naming, to use tim…
mlprt Aug 29, 2018
12ef2b7
Fixed unstructured. Not implemented in abstract class because this ma…
mlprt Aug 29, 2018
650ee5a
Merge branch 'feature-frequency_data' into develop
mlprt Aug 29, 2018
ef96f8c
added spectra class support and time function for the psd to run ever…
OmriNach Aug 29, 2018
ef20ad1
adding psd feature to develop for testing on spectra class
OmriNach Aug 29, 2018
5423908
PSD feature now working with Spectra buffer. Changed the indep_range …
OmriNach Aug 29, 2018
72a023b
Added threading to transformer PSD class
OmriNach Aug 30, 2018
d8f3597
Starting to edit PSD. Committing only so it is available elsewhere.
mlprt Aug 30, 2018
4e8ae48
Fixed merge conflicts (minor)
mlprt Aug 30, 2018
71d948e
Significant change to how objects that depend on the data in buffers …
mlprt Sep 3, 2018
c2bf472
Some minor updates to PSD and a small fix in plt.
mlprt Sep 4, 2018
8f047e0
Working PSD plot. Dummy frequencies are offset slightly to the right …
mlprt Sep 4, 2018
eebb990
Should not assume sample rate. Instead, it is either specified by the…
mlprt Sep 4, 2018
b8158fc
Convolution + moving average transformers (not fully working but clos…
mlprt Sep 5, 2018
790baa8
Added method to `TimeSeries` to allow new samples to be added if they…
mlprt Sep 6, 2018
701fa26
Initial version of setup.py, including basic metadata.
mlprt Oct 9, 2018
2476f5f
A couple of minor changes.
mlprt Oct 9, 2018
d9c28ef
Removed ble2lsl package from this repository (separated into another)
mlprt Oct 9, 2018
6ca07a7
added specific device name message to acquire, fixed BGAPI not connec…
OmriNach Nov 2, 2018
6c4b0cb
fixed update dwith deltas by switching + to -
OmriNach Nov 4, 2018
e23d94b
I guess I accidentally committed the clone of ble2lsl in the WH direc…
mlprt Nov 4, 2018
20deeee
dummy device name
OmriNach Nov 5, 2018
350c483
buffer fix for psd data
OmriNach Nov 5, 2018
e4b8d20
ganglion fix
OmriNach Nov 5, 2018
b750518
Merge pull request #10 from OmriNach/develop
OmriNach Nov 5, 2018
7c0f331
Fixed merge conflicts.
mlprt Nov 5, 2018
0a04c32
Merge branch 'merlin-neurotech-develop' into develop
mlprt Nov 5, 2018
d73b1dc
Moved scripts to own folder now that import/pip is not a problem.
mlprt Nov 5, 2018
3da3237
Added `record` constructor to Receiver and store_once option to TimeS…
mlprt Nov 5, 2018
0bdfa1d
Merge branch 'feature-epochs' into develop
mlprt Nov 5, 2018
3d832d9
Updating README to reflect pip vs. cloning
mlprt Nov 5, 2018
8801abb
Fixed Receiver.record to take duration argument. Fixed stream exclusi…
mlprt Nov 6, 2018
f1d69c3
Merge branch 'develop'
mlprt Nov 6, 2018
10ff90a
Accidentally added Jupyter notebook to repository
mlprt Nov 6, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 30 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# WizardHat
# WizardHat
![logo](https://github.com/merlin-neurotech/WizardHat/blob/master/WizardHatLogoSmall.jpg)

WizardHat is a library for the streaming and handling of EEG data from consumer-grade devices using the Lab Streaming Layer (LSL) protocol. WizardHat's prupose is to enable users and especially first timers to flexibly build brain-computer interfaces (BCIs) without the fuss of configuring a streaming environment. WizardHat was built by Merlin Neurotech at Queen's University. Currently, WizardHat supports the Muse (2016) brain-sensing headband, the OpenBCI Ganglion, and runs on Python 3.6. WizardHat is easy to use and only requires three lines of code to get started. WizardHat's framework enables streaming, manipulation, and visualization of online EEG data.
Expand All @@ -8,26 +8,49 @@ For first time python users, please refer to our [beginner's guide](https://docs
## Note : Active Development
Our dedicated team at Merlin Neurotech is continously working to improve WizardHat and add new functionality.
Current on-going projects:
- Frequency Spectrum Data Class
- MNE Library Compatibility
- Implementing simple filters
- Power spectrum transformer

Check back soon if the feature you are looking for is under development!

## Getting Started

To set up WizardHat, begin by cloning this repository on your local environment. Once cloned, ensure you are in a new virtual environment and download the required dependencies.
The procedure for installing WizardHat depends on whether or not you will be contributing to its development. In either case, begin by creating and activating a new python virtual environment.

### Installing for use only
Simply run

pip install wizardhat

This will automatically install the most recent release of WizardHat along with the required dependencies.

### Installing for development
To set up WizardHat for development, begin by forking the repository on GitHub, then clone your fork:

git clone https://github.com/<your-github-username>/WizardHat.git

If you are also developing for ble2lsl, fork and then clone the ble2lsl repository as well, and install its dependencies:

git clone https://github.com/<your-github-username>/ble2lsl.git
cd ble2lsl
pip install -r requirements.txt
pip install -e .
cd ..

Whether or not you cloned ble2lsl, install the remaining dependencies for WizardHat:

cd WizardHat
pip install -r requirements.txt

### Finally

For more details on how to set up your python environment on Windows/MacOS/Linux please refer to our detailed instructions in the documentation file.
For more details on how to set up your Python environment on Windows/MacOS/Linux please refer to our detailed instructions in the documentation file.

Next, to ensure a bug free experience, open [your virtual env name]/lib/python3.6/site packages/pygatt/backends/bgapi/bgapi.py in a text or code editor and add:

time.sleep(0.25)

between line 200 and 201 and save the file. This ensures that the bluetooth protocol will be given adequate time to connect to the Muse before timing out.
between line 200 and 201 and save the file. This ensures that the Bluetooth protocol will be given adequate time to connect to the Muse before timing out.

Now you are ready to use WizardHat!

Expand Down Expand Up @@ -83,4 +106,4 @@ Chris,
Hamada

## Acknowledgements
This project was inspired by Alexander Barachant's [muse-lsl](https://github.com/alexandrebarachant/muse-lsl) from which some of the modules are derived or informed (particularly `ble2lsl` and some of `wizardhat.acquire`). The device specification for the OpenBCI Ganglion is largely derived from [OpenBCI_Python](https://github.com/OpenBCI/OpenBCI_Python).
This project was inspired by Alexander Barachant's [muse-lsl](https://github.com/alexandrebarachant/muse-lsl) from which some of the modules were originally based. The device specification for the OpenBCI Ganglion is largely derived from [OpenBCI_Python](https://github.com/OpenBCI/OpenBCI_Python).
2 changes: 0 additions & 2 deletions ble2lsl/__init__.py

This file was deleted.

Loading