Recording#
A recording captures the raw signal from a streaming headset to a file on the phone. You start and stop it from several places in the app — most directly with the ● Rec button in the Live signal viewer dock. This page covers starting and stopping, where the files go, the BDF and CSV formats, markers, and snapshots.
Starting and stopping#
Where |
How |
|---|---|
Viewer dock |
● Rec — tap to start, tap again to stop |
Device card |
● Rec — starts streaming and recording in one tap; while recording the same button becomes a stop button with a timer |
Contact check |
Record — switches to streaming and starts recording |
Notification |
Stop — stops all streams and finishes their recordings |
When a recording finishes you get Saved m:ss · FORMAT · filename with an Open button that takes you straight into review (see Recordings and review).
Where files go#
Android/data/com.neurotec.brainaccessmobile2/files/Documents/BrainAccess/recordings/
Filenames: YYYY-MM-DD-HH_mm_ss_TAG.bdf (or .csv), where TAG is a short
identifier derived from the headset’s Bluetooth address so two headsets are
distinguishable in a directory listing — for example
2026-08-04-22_07_16_A1B2C3.bdf. If you set a Session label it is
appended as a slug: 2026-08-04-22_07_16_A1B2C3_eyes-closed.bdf.
Because Android 11 and newer restrict file-manager access to this folder, the reliable way to get files off the phone is the in-app Share (see Recordings and review), or a USB connection from a computer. See Files, storage and privacy for more on where recordings live and how to move them.
Choosing a format#
BDF (default) |
CSV |
|
|---|---|---|
Format |
24-bit BDF+ (BioSemi/EDF+ family) |
Plain text, comma separated |
Opens in |
EDFbrowser, MNE-Python ( |
Any spreadsheet, pandas, MATLAB |
Size, measured at 32 ch / 250 Hz |
~95 MB per hour |
~350 MB per hour (about 3.5× BDF) |
Markers |
Stored as BDF+ annotations. Total capacity is about four markers per second of recording length (a dense burst is fine; it is the total that counts). Markers beyond that are dropped when the file is closed, and the app warns you once |
Stored in a |
Contact flags |
Not included |
One |
Dropped-sample flag |
A |
A |
If the session ends abnormally |
Robust — every second is committed as it is written, so an interrupted or killed session still opens, and its markers are recovered |
Less robust — if the final write fails (typically because storage ran out) the file may be discarded entirely |
Warning
If storage runs out mid-session, a CSV recording can be discarded entirely — a failed final write can lose the whole file. BDF commits every second as it is written, so an interrupted session still opens. Prefer BDF for long or unattended sessions.
BDF contents. One signal per active EEG channel, labelled with your
electrode names, in uV; then Accelerometer x/y/z in m/s^2 if the
headset has one; then a Streaming flag signal (1 where the sample arrived
over Bluetooth, 0 where the link dropped it and it was filled with zeros);
then annotation channels for markers. Data is written in one-second records at
the configured sample rate; a trailing partial second is dropped. The session
label is stored in the header.
CSV contents. Header row:
sample,time_s,P8_uV,O2_uV,…,accel_x,accel_y,accel_z,contact_P8,contact_O2,…,streaming,marker
sample— running sample index,time_s— seconds from the start with four decimals,<name>_uV— the raw signal in microvolts,accel_*— accelerometer in m/s² (only if the headset has an accelerometer),contact_*— 1 when the headset reports that electrode as connected, otherwise 0,streaming— 1 when the sample arrived over Bluetooth, 0 when the link dropped it and it was filled with zeros,marker— the marker label on that sample, if any.If you set a session label, the file starts with a
# session: <label>comment line.
Note
Recordings always contain the raw signal. Display filters, the notch and contact suppression are not applied to the file.
While recording#
The session survives leaving the viewer, switching apps and the screen turning off, as long as the ongoing notification is present.
The device card and viewer show a running
m:sstimer.⚠ N samples lostcounts samples the Bluetooth link dropped and the headset filled in.Samples the Bluetooth link dropped are filled with zeros and marked in the file — the
Streamingsignal in BDF, thestreamingcolumn in CSV. The count is shown when the recording is saved, so you can tell afterwards whether a session was affected and by how much.There is no size or duration limit other than free storage. Measured on a 32-channel 250 Hz headset, expect roughly 95 MB per hour as BDF and 350 MB per hour as CSV — check you have room before a long session.
What ends a recording#
Event |
Result |
|---|---|
Rec / notification Stop / viewer Stop |
File is closed cleanly and saved |
Disconnect while recording |
You are asked to confirm: This device is recording. Disconnecting ends the recording now — the file is kept, but everything after this moment is lost. |
Headset goes out of range or switches off |
The recording is finished at the last written second and saved. It is not resumed when the headset reconnects |
A firmware update |
Refused while a recording is running — stop it first |
Storage runs out |
The recording stops and you are told. With BDF everything written up to the last completed second is kept. With CSV the file may be discarded entirely — for long or unattended sessions prefer BDF |
App killed by the system |
A BDF keeps everything written up to the last second, and its markers are recovered when you open it. The app tells you the recording was interrupted and how much was recovered |
Markers#
Markers are timestamps with a label, written into the recording and drawn on the plot as amber dashed lines (see Live signal viewer).
Tap the Marker chip to drop a marker with the last label you used (the chip flashes to confirm). The label is remembered between sessions.
Tap the caret (or long-press the chip) for the preset list: Marker, Note, Bad, Event by default, plus Edit presets….
Edit presets… — add your own labels (up to 24 characters, up to 8 presets, at least one), remove them, then Save.
The Marker action in the ongoing notification drops a marker on every running stream without opening the app.
Markers land in the CSV marker column, or as BDF+ annotations. A BDF’s
annotation capacity is a whole-file budget of roughly four markers per second
of recording length, so bursts are fine but a very long marker list on a
short recording can overflow; the surplus is dropped when the file is closed
and the app tells you once that CSV keeps every marker. The plot shows the most
recent 256 markers — the file keeps them all.
Snapshots#
The camera icon in the viewer saves a PNG of the current view to the same
folder as your recordings, named snapshot-YYYY-MM-DD-HH_mm_ss.png, and
confirms with Snapshot saved:
See also#
Live signal viewer — the live viewer, where you start recordings and drop markers.
Recordings and review — browse, open, share and delete recordings and snapshots.
Files, storage and privacy — where recordings live on the phone and how to get them off.