- Fix a bug where appending data would not be correctly displayed in the history ([#446]) #446 by Benedikt Kloeckl)
- Add initial number of displayed channels in the raw plot to settings dialog and set default to 32 channels (#428 by Dennis Wambacher)
- Add edfio as core dependency and replace pyedflib, which means that EDF export is now supported out of the box (#425 by Clemens Brunner)
- Add pybv to required dependencies (#429 by Dennis Wambacher)
- Refactor readers to subclass
BaseRaw
(#434 by Clemens Brunner)
- Remove support for exporting to BDF (#425 by Clemens Brunner)
- Add option to select browser backend in settings (#415 by Clemens Brunner)
- Prepare support for plotting raw data with MNE-Qt-Browser (#403 by Martin Schulz and Clemens Brunner)
- Fix drag and drop for PySide ≥ 6.7.0 (#422 by Clemens Brunner)
- Add automatic light/dark theme switching on Windows (#398 by Clemens Brunner)
- Add support for importing .npy files (#213 by jgcaffari1 and Clemens Brunner)
- Add ability to import selected XDF marker streams (previously, all marker streams were automatically imported) (#395 by Clemens Brunner)
- Remove support for Python 3.8 (#396 by Clemens Brunner)
- Correctly scale data when exporting to BrainVision (#376 by Clemens Brunner)
- Fix ERDS maps plotting not working for MNE ≥ 1.1 (#382 by Jérémy Frey)
- Add Python 3.11 support (#364 by Clemens Brunner)
- Support more microvolt unit abbreviations in XDF import (#365 by Clemens Brunner)
- Show some keyboard shortcuts when no file is open (#350 by Clemens Brunner)
- Always show a notification when running the dev version (#351 by Clemens Brunner)
- Helpful error message when opening an unsupported file type (#360 by Clemens Brunner)
- Support importing 1D arrays from .mat files (#348 by Clemens Brunner)
- Restrict XDF marker channels to irregular sampling rate and a single channel (but arbitrary data type) (#349 by Clemens Brunner)
- Fix XDF marker stream regression (#346 by Clemens Brunner)
- Change the default cursor to a spinning wheel when the data is changed (#341 by Guillaume Favelier)
- Fix XDF marker stream detection and loading (#345 by Clemens Brunner)
- Fix loading of application icon (#339 by Guillaume Favelier)
- Add support to select and load multiple files at once (#257 by Florian Hofer)
- Add drag and drop reordering to sidebar (#261 by Florian Hofer)
- Add support for plotting evoked potentials averaged over channels (Plot – Evoked comparison...) (#256 by Florian Hofer)
- Exceptions are now shown in an error message box instead of being silently caught (#268 by Florian Hofer)
- Add "Details" button to "Select XDF Stream" dialog (#266 by Florian Hofer)
- Add support for plotting evoked potentials for individual channels including topomaps (Plot – Evoked...) (#63 by Florian Hofer)
- Add support for plotting topomaps of evoked potentials (Plot – Evoked topomaps...) (#277 by Florian Hofer)
- Add montage name and location count to infowidget (#271 by Florian Hofer)
- Add possibility to specify
match_case
,match_alias
, andon_missing
to "Set montage..." (#271 by Florian Hofer) - Add "Clear montage" to "Edit" menu (#271 by Florian Hofer)
- Add ability to pick channels by channel type (#285 by Florian Hofer)
- Add a settings menu (File – Settings...) (#289 by Florian Hofer)
- Add ability to import events from FIF files (#284 by Florian Hofer)
- Add support for plotting ERDS topomaps (Plot – ERDS topomaps...) (#278 by Florian Hofer)
- Add possibility to apply significance masks to ERDS plots (#279 by Florian Hofer)
- Add basic batch renaming of channels "Edit - Rename channels...") (#303 by Florian Hofer)
- Add support for loading data from .MAT files (#314 by Clemens Brunner)
- Add support for reading multiple XDF streams (via resampling) (#312 by Florian Hofer)
- Add app icon (#319 by Clemens Brunner)
- Add dialog to modify mapping between event IDs and labels (Edit - Events...) (#302 by Florian Hofer and Clemens Brunner)
- Add complete history for Find Events dialog (#333 by Clemens Brunner)
- Simplify rereferencing workflow (#258 by Florian Hofer)
- Move "Show information..." from toolbar to "File" menu and rename to "Show XDF metadata" (#266 by Florian Hofer and #318 by Clemens Brunner)
- Replace
utils.has_location
withutils.count_locations
, which returns the number of locations instead of a boolean (#271 by Florian Hofer) - Stop requiring existing annotations or events to enable editing them (#283 by Florian Hofer)
- Replace "(channels dropped)" suffix with "(channels picked)" and use
pick_channels
instead ofdrop_channels
(#285 by Florian Hofer) - The overwrite confirmation dialog is now fail-safe because it defaults to creating a new dataset (#304 by Clemens Brunner)
- Show signal length in hours, minutes, and seconds (#334 by Clemens Brunner)
- Show unique event counts if there are no more than seven unique event types in the main window (#335 by Clemens Brunner)
- Fix splitting name and extension for compatibility with Python 3.8 (#252 by Johan Medrano)
- Fix exporting to BrainVision with annotations starting with "BAD" or "EDGE" (#276 by Clemens Brunner)
- Exporting to .fif.gz now uses the correct extension on macOS (#301 by Clemens Brunner)
- Round physical minima and maxima to integers in EDF export (#310 by Clemens Brunner)
- Fix crop limit could exceed the signal length (#336 by Clemens Brunner)
- Switch to PySide6 (#237 by Clemens Brunner)
- Add button in Append dialog that simplifies moving data between source and destination lists (#242 by Clemens Brunner)
- Add dialog (File - Show XDF chunks...) which diplays chunk information for (possibly corrupted) XDF files (#245 by Clemens Brunner)
- Fix loading of XDF files that contained additional dots in their file names (#244 and #246 by Clemens Brunner)
- Improve microvolts unit detection in XDF files (#247 by Clemens Brunner)
- Add option to use effective sampling rate when importing XDF files (#236 by Clemens Brunner)
- Add option to disambiguate markers with identical names in different marker streams with the
prefix_markers
parameter (#239 and #240 by Clemens Brunner)
- Fix history for importing XDF files and dropping channels (#234 by Clemens Brunner)
- Remove support for Python 3.6 and 3.7 and add support for Python 3.10 (#233 by Clemens Brunner)
- Fix EDF/BDF export of data containing stim channels (#230 by Clemens Brunner)
- Close EDF/BDF file in export (#232 by Clemens Brunner)
- Remove auto-installation of
PySide2
when usingpip
(#196 by Clemens Brunner) - Removing annotations and events is now as fast as it should be (#206 and #207 by Clemens Brunner)
- Supported files can now be opened even if their extension is not all lower case (e.g. EDF) (#212 by Clemens Brunner)
- XDF files with missing channel units can now be imported (#225 by Clemens Brunner)
- Fix export to BrainVision files for newer versions of
pybv
(#226 by Clemens Brunner) - XDF files containing channels in microvolts are now correctly scaled during import (#227 by Clemens Brunner)
- Add Python 3.9 support (#190 by Clemens Brunner)
- PySide2 installed by default if wrapped Qt bindings (PyQt5, PySide2) are not found (#187 by Guillaume Dollé)
- Fix export functionality (#184 by Guillaume Dollé)
- Fix ICA computation in separate process (#192 by Clemens Brunner)
- Include
requirements-extras.txt
in MANIFEST.in (by Clemens Brunner)
- Include
requirements.txt
in MANIFEST.in (by Clemens Brunner)
- Add option to convert events to annotations (#166 by Alberto Barradas)
- Retain annotation descriptions when converting to events (#170 by Alberto Barradas and Clemens Brunner)
- Add support for basic ERDS maps (#174 by Clemens Brunner)
- Add syntax highlighting in history dialog (#179 by Clemens Brunner)
- Add copy to clipboard in history dialog (#180 by Clemens Brunner)
- Required dependencies are now listed only in one place (requirements.txt) (#172 by Clemens Brunner)
- Show correct signal length in seconds (#168 by Clemens Brunner)
- Fix export functionality (#177 by Guillaume Dollé and Clemens Brunner)
- Include missing icons in package (#158 by Clemens Brunner)
- Add support for automatic light/dark mode switching on macOS (#152 by Clemens Brunner)
- Fix bug that prevented exporting data (#156 by Clemens Brunner)
- Add support for appending continuous raw data (#108 by Lukas Stranger and Clemens Brunner)
- Add support for appending epoched data (#135 by Lukas Stranger)
- Add support for NIRS data and conversion to optical density and haemoglobin (#145 by Robert Luke and Clemens Brunner)
- Use QtPy to support both PyQt5 and PySide2 (#118 by Clemens Brunner)
- Remove resource file and include icons directly (#125 by Clemens Brunner)
- Improve internal logic of the ICA dialog (#136 by Lukas Stranger and Clemens Brunner)
- Remove Pebble again and use
multiprocessing.Pool
(#140 by Clemens Brunner) - Require MNE ≥ 0.20 (#146 by Clemens Brunner)
- Add function
utils.has_locations
to determine if channel locations are available (#147 by Clemens Brunner) - Refactor readers and writers (#148 by Clemens Brunner)
- Fix loading of BrainVision files that have an extension other than .eeg (#142 by Clemens Brunner)
- Add history for setting reference (#100 by Clemens Brunner)
- Add history for setting montage, switching/duplicating data sets, plot PSD, and plotting data with events (#109 by Clemens Brunner)
- Use environment markers in
setup.py
forinstall_requires
(#105 by Clemens Brunner) - Bump required minimum MNE version to 0.19 (#107 by Clemens Brunner)
- Spawn ICA process pool via
Pebble
instead ofmultiprocessing
to avoid Python segfaulting on macOSconda
installations (#119 by Richard Höchenberger)
- Fix blurry icons on macOS HiDPI screens (#102 by Clemens Brunner)
- Use
mne.channels.make_standard_montage
instead of deprecatedmne.channels.read_montage
(#107 by Clemens Brunner) - Ensure MNELAB is run using a "framework build" of Python on
conda
installations on macOS (#119 by Richard Höchenberger)
- Fix multiprocessing runtime error (context has already been set) (#98 by Clemens Brunner)
- Remove binary wheel on PyPI because of a macOS-only package dependency (#95 by Clemens Brunner)
- MNELAB is now shown as an app name in the menu bar on macOS (#83 by Clemens Brunner)
- The About dialog now lists all package dependencies (#88 by Clemens Brunner)
- Added a dialog (File - Show Information) that shows XDF meta information (stream headers and footers) (#92 by Clemens Brunner)
- Fixed dropping XDF files on MNELAB and loading XDF files without channel labels (#86 by Clemens Brunner)
- Disable XDF streams of type string in selection dialog (#90 by Clemens Brunner)
- Add MNELAB logo to About dialog (by Clemens Brunner)
- Export data is split into submenus with a separate entry for each supported export format (#66 by Clemens Brunner)
- Add support for exporting to BrainVision files (#68 and #75 by Clemens Brunner)
- Add support for loading .fif.gz files (#74 by Clemens Brunner)
- Add support for loading Neuroscan .cnt, EGI Netstation .mff, and Nexstim eXimia .nxe file formats (#77 by Clemens Brunner)
- Add support for cropping data (#78 by Clemens Brunner)
- The internally used
have
dictionary now contains version numbers for existing modules (#76 by Clemens Brunner)
- Correctly report file size for BrainVision data (#69 by Clemens Brunner)
- Retain events when creating epochs (#73 by Clemens Brunner)
- Better handling of file extensions (especially when there are multiple extensions such as .fif.gz) (#74 by Clemens Brunner)
- Add option to interpolate bad channels (#55 by Victor Férat)
- Add dialog to show the command history (#58 by Clemens Brunner)
- Add history when changing channel properties (e.g. bads, channel names, channel types) (#59 by Clemens Brunner)
- Add toolbar (#61 by Clemens Brunner)
- Update view when all bads have been deselected in channel properties dialog (by Clemens Brunner)
- Fix visual glitch in info widget when showing error dialogs (#57 by Clemens Brunner)
- Show version number in About dialog (#28 by Clemens Brunner)
- Add "Apply ICA" to Tools menu that allows users to apply a fitted ICA solution to the current dataset (#43 by Victor Férat)
- Plot raw shows the dataset name in the title (instead of "Raw data") (by Clemens Brunner)
- Add option to convert annotations to events (#50 by Clemens Brunner)
- Enable epoching of continuous data (#45 by Tanguy Vivier and Clemens Brunner)
- Fix crash when no channel labels are present in XDF file (by Clemens Brunner)
- Fix crash when opening a file from the Recent menu that doesn't exist anymore (#37 by Clemens Brunner)
- Fix crash when opening a BrainVision VHDR file where the EEG and/or VMRK file(s) are missing (#46 by Clemens Brunner)
- Fix crash when dropping channels (when using MNE < 0.19) (#49 by Clemens Brunner)
- Fix crash when importing annotations (#54 by Clemens Brunner)
- Initial release (by Clemens Brunner)