Hi everyone!
I recently released edfcore, an open-source, zero-dependency TypeScript library for reading EDF-family biosignal recordings directly in browser and Node.js applications.
It supports EDF, EDF+, BDF, and BDF+ and provides programmatic access to signal samples, channel metadata, per-channel sampling rates, physical units, annotations, and recording timelines.
I built it because I work with EEG data pretty often and wanted reusable JavaScript/TypeScript infrastructure for browser EEG viewers, BCI applications, research platforms, and Node.js tools without having to route every file through Python first.
A few of the format details it handles:
- Different sampling rates between signals
- EDF+ annotations
- Discontinuous EDF+D recordings
- Signed 24-bit BioSemi BDF samples
- Physical/digital calibration
- Large recordings without treating the whole file as one uniform signal matrix
Install:
npm install edfcore
GitHub:
Documentation:
npm:
https://www.npmjs.com/package/edfcore
It is MIT licensed.
I also maintain edf2csv separately for researchers who simply want EDF/BDF recordings converted to CSV:
Would really appreciate feedback from anyone who works extensively with EDF/BDF recordings, especially unusual files or edge cases I should be testing.