Devices & Data Formats
Supported Devices
Neurosity Crown
The Neurosity Crown is an 8-channel consumer EEG headset.
| Property | Value |
|---|
| Channels | 8 |
| Channel Names | CP3, C3, F5, PO3, PO4, F6, C4, CP4 |
| Sample Rate | 256 Hz |
| Montage | International 10-20 subset |
| Connection | WiFi (SDK) or Bluetooth |
Channel locations map to the standard 10-05 montage:
- Frontal: F5, F6 (lateral frontal)
- Central: C3, C4 (motor cortex, left/right)
- Parietal: CP3, CP4 (centro-parietal)
- Occipital: PO3, PO4 (parieto-occipital)
Muse (Muse 2, Muse S)
The Muse headbands are 4-channel consumer EEG devices.
| Property | Value |
|---|
| Channels | 4 |
| Channel Names | TP9, AF7, AF8, TP10 |
| Sample Rate | 256 Hz |
| Montage | International 10-20 subset |
| Connection | Bluetooth (Web Bluetooth API) |
Channel locations:
- Temporal: TP9, TP10 (behind ears)
- Frontal: AF7, AF8 (forehead, above eyebrows)
The API accepts raw CSV data as a string. The CSV should contain:
- A header row with channel names (and optionally a timestamp column)
- Data rows with values in microvolts (µV)
timestamp,TP9,AF7,AF8,TP10
1700000000.000,15.2,-4.1,6.3,-8.7
1700000000.004,14.8,-3.9,6.1,-8.2
The timestamp column is optional. If present, it’s ignored during processing — ZUNA uses the sample rate to reconstruct timing. But it’s useful for aligning with other data sources.
Output: JSON Channel Data
When output_format: "json", the response includes a channel_data object with per-channel arrays:
{
"channel_data": {
"TP9": [1.23, -0.45, 2.67, ...],
"AF7": [0.89, 1.34, -0.78, ...],
"AF8": [2.01, 0.56, 1.89, ...],
"TP10": [-0.34, 1.12, -0.23, ...]
}
}
Each array contains output.n_samples values in microvolts (µV).
Output: CSV
When output_format: "csv", the response includes output.csv_content:
timestamp_s,TP9,AF7,AF8,TP10
0.000000,1.230000,-0.450000,2.670000,...
0.003906,0.890000,1.340000,-0.780000,...
The timestamp_s column contains time in seconds from the start of the recording.
ZUNA Processing Details
What ZUNA Does
ZUNA (by Zyphra) is a foundation model for EEG signal processing. It was trained on large-scale EEG datasets to understand the structure of brain signals.
Denoising removes:
- Eye blink artifacts (frontal channels)
- Muscle artifacts (jaw clenching, head movement)
- Environmental noise (50/60 Hz line noise)
- Electrode contact noise
While preserving:
- Neural oscillations (alpha, beta, theta, gamma, delta)
- Event-related potentials
- Frequency-specific power patterns
Processing Pipeline
- CSV → FIF: Convert CSV to MNE RawArray with standard 10-05 montage
- Preprocessing: Resample to 256 Hz, bandpass filter, epoch into 5-second segments, normalize (std = 0.1)
- Inference: Run ZUNA model on GPU (diffusion-based denoising)
- Post-processing: Convert output tensors back to FIF, then to CSV/JSON
Key Constraints
| Constraint | Value | Reason |
|---|
| Minimum duration | 5 seconds | ZUNA epochs are 5s long |
| Recommended buffer | 1 second | The API trims partial epochs |
| Sample rate | Any → 256 Hz | ZUNA resamples internally |
| Channel names | Standard 10-20 | Required for montage positioning |
| Output length | ≤ Input | Partial final epochs are dropped |
Example: Duration Math
| Input Duration | Epochs | Output Duration |
|---|
| 5.0s | 1 | 5.0s |
| 6.0s | 1 | 5.0s |
| 10.0s | 2 | 10.0s |
| 12.5s | 2 | 10.0s |
| 30.0s | 6 | 30.0s |