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

Conversation

mlprt
Copy link
Member

@mlprt mlprt commented Nov 6, 2018

This is an abnormal pull request, directly updating the master branch of merlin-neurotech's repository with the contents of my fork's master branch. After this is approved, the master branch will be merged into the develop branch (note that my fork's master is up-to-date with the main develop branch already) from which further development will proceed.

This coincides with transferring ble2lsl from my repositories to the merlin-neurotech organization. It will also coincide with the next releases of WizardHat (0.2.1) and ble2lsl (0.1.3) which include the following updates:

  • Separate setup.py files and PyPI/pip distributions for ble2lsl and WizardHat. Both packages are already available through pip. Also initial setup of pytest, tox, and travisCI as we are preparing to cover the existing code with automatic tests.
  • Moved the example scripts to their own folder, since WizardHat and ble2lsl can now be installed into a virtual environment and importable from anywhere.
  • buffers.Spectra, transform.PSD, and plot.Spectra for managing, calculating, and plotting frequency-domain data.
  • acquire.Receiver.record constructor for capturing a finite duration of data over LSL.
  • Use device-specific names (e.g. Muse device IDs like "Muse-52C3") instead of addresses as source IDs when constructing LSL streams in ble2lsl; this allows acquire.Receiver to list devices in a way that should be easier for users to interpret.
  • Fixed packet processing for OpenBCI Ganglion.

From now on, issues and release notes will be managed separately for ble2lsl and WizardHat, in their respective GitHub repositories.

mlprt and others added 30 commits June 23, 2018 19:43
…ders for the required methods, and an initial (incorrect) definition of the datatype.
…epoints of data, and made it a subclass of `TimeSeries` to use existing functionality. Overloaded the `update` method since the `Transformer` will presumably be adding a single spectrum at a time, however a more general solution should be implemented in the future by changing `TimeSeries` method `_format_samples` to format based on channel dtype. Added `indep_name` property so that e.g. plotting methods will be able to appropriately name axes.
…ed into a data structure like FrequencySeries. Added an example_psd script tfor testing
…kes strong assumptions about the structure of the data stored. Implemented in `TimeSeries` to return only the channel data (not timestamps). This only requires that the channels have the same dtype (e.g. all single float64, as in EEG data; all constant-length spectra, as in Spectra). If the channels have different dtypes, an error is raised.
Spectra Buffer subclass for storing channels of spectral/histogram data associated with a constant independent range of values (e.g. frequencies). Each channel sample is a list of values corresponding to this independent range.
…to be an array rather than a list, still needs threading and cleaner code
…update when new data is available: instead of running in separate threads and watching the buffer, the buffer instance has an EventHook instance that registers callbacks in each of the dependent objects. When buffer receives new data, it calls all of the registered callbacks, thereby updating all of its dependent objects. Also, starting to refactor PSD.
… user, or inferred if possible from the timestamps in the buffer object at the time of instantiation of PSD.
…e) for time series data. Added get methods for the unstructured data in `TimeSeries` buffers that allow the user to specify the # of most recent samples to get.
…tory... undid that. Also fixed PSD temporarily for the coding session tonight.
…eries; this allows a window of data to be recorded, and after it is filled for the buffer to stop updating. This is not optimal; it might be better for the Receiver to stop altogether but I am not sure that Receiver.stop() will stop the recording at the right moment... Also changed Receiver to exclude recordings/buffers/inlets for streams with nominal sampling periods larger than the specified window, and give the user a warning.
…on based on low sampling rate (division by zero in case of )
Copy link
Contributor

@bncuthbert bncuthbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I consent.

@OmriNach
Copy link
Contributor

OmriNach commented Nov 6, 2018

Approved

Copy link
Contributor

@OmriNach OmriNach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@mlprt mlprt merged commit ad14ce9 into merlin-neurotech:master Nov 6, 2018
@danjgale
Copy link

Now that this is done, we can properly proceed with #7 and #9 in each repo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants