The Oscillome · 25 — Methods and limits

How this was measured

Acquisition

Emotiv EPOC X, 14 saline electrodes (AF3 F7 F3 FC5 T7 P7 O1 O2 P8 T8 FC6 F4 F8 AF4), 128 Hz, 0.2–43 Hz bandwidth. The reference is the recording system's CMS/DRL pair, worn on the arms behind the ears; Emotiv designates these the P3/P4 reference positions, with the mastoid process as the alternative. Every analysis starts from that recorded reference. The harmonic analysis of §11, the wave analysis of §13 and the whole-head analysis of §22 re-reference to the common average; the phase-gradient analysis of §12 keeps the recorded reference, which is why its simulation places the reference near P3/P4. Spectra are reported to 45 Hz, above the headset's roll-off. One headset unit was used for every recording. Every statistic uses artifact-masked clean segments only — eye, amplitude, jump, movement and contact-quality masks.

Spectral analysis

Robust soft-L1 log–log aperiodic fits9 over 2–45 Hz, excluding detected peaks. Peaks are local maxima ≥0.10 log10 above background. Window-level alpha frequency uses artifact-weighted Welch at 0.125 Hz resolution with parabolic peak interpolation, band-edge maxima excluded.

Coupling and complexity

Phase–amplitude coupling: 4th-order Butterworth bands, Hilbert transform, 18-bin Tort modulation index11 against 100 circular-shift surrogates. Lempel–Ziv complexity is LZ7614 on median-binarized signal, normalized against a random sequence of equal length; the spatiotemporal variant interleaves all 14 channels. DFA runs on the alpha amplitude envelope over 0.5–15 s scales.

Asymmetry, waves, harmonics

All hemispheric asymmetry is computed on periodic power after subtracting each channel's own aperiodic fit. Wave vectors are weighted plane-wave fits to pairwise alpha cross-phase over 60-second windows on 2-D electrode positions. Harmonic evidence uses (α, α → 2α) bicoherence and 1:2 phase locking against circular-shift surrogates on the posterior channels.

Code

The analysis code is under version control (v1.5.0, MIT) and is being prepared for public release; the repository is not yet public. It contains the oscillome library (spectral parameterization, coupling, complexity, asymmetry, statistics), a generated notebook that runs the pipeline end to end, and the archive-wide scripts behind the wave, harmonic, dynamics, embedding and longitudinal sections. MIT licensed.

Statistics

The recording is the unit of analysis throughout. Group contrasts use recording-level permutation tests with 50,000 draws. Window-level models use profile-REML random intercepts per recording, tested on between-recording degrees of freedom.

Artifact detection and removal

Nothing on this site is computed on raw data. Every recording passes through the same five-detector screen, and every statistic is computed only on the samples that survive it. The screen is conservative by design: it excludes rather than repairs, so no interpolation, independent-component removal or regression ever synthesizes a value that was not recorded.

Inputs

The fourteen EEG channels at 128 Hz, each centered on its own mean. Alongside them, the headset's own auxiliary streams recorded in the same file: per-electrode and overall contact quality (CQ, 0–4 per electrode, 0–100 overall), the overall EEG quality index (EQ), the device's facial-expression detections for blink/wink and horizontal eye direction, the three-axis accelerometer, and the device's interpolated-sample flag.

Five detectors, each with its own padding

  1. Eye blinks and lateral eye movements. Any sample on which the device reports a blink, a wink, or a horizontal eye movement. Padded by ±0.75 s to cover the slow ocular potential on either side of the event. This is the largest category: a median of 14.8% of a recording.
  2. Head and body movement. Two accelerometer tests. Jerk: the 1-second RMS of the sample-to-sample change in the acceleration vector, flagged above a robust threshold (median + 8 MAD, or the 99th percentile, whichever is larger). Rocking: the 4-second RMS of the 0.6–3 Hz band of acceleration magnitude, flagged above median + 5 MAD or the 97.5th percentile. Padded ±1 s. Median 0.2%.
  3. Signal quality. Any sample that is device-interpolated, has overall contact quality below 35, has five or more electrodes at contact quality below 2 of 4, or has an EEG-quality index below 10. Padded ±0.5 s. Median 1.6%.
  4. Amplitude excursions. Each channel is scored against its own robust scale — 1.4826 × the median absolute deviation, floored at 5% of the channel's standard deviation so a nearly flat channel cannot make ordinary samples look extreme. A sample is flagged if any channel exceeds 14 robust units, or two or more channels exceed 8. Padded ±0.25 s. Median 9.6%.
  5. Jumps. The same test on sample-to-sample differences, which catches electrode pops and contact slips that stay inside the amplitude range: any channel above 18 robust units, or two or more above 10. Padded ±0.25 s. Median 0.7%.

From masks to data

The five masks are OR-ed into one artifact mask; its complement is the clean mask. Clean runs shorter than 2 seconds are discarded rather than used, because nothing spectral can be estimated from them and short fragments bias the aperiodic fit. Artifact runs shorter than 0.25 s are merged into their neighbors for reporting only.

Everything downstream works on those runs. Spectra are Welch estimates computed inside each clean run and averaged with weight proportional to run length — never on concatenated data, because concatenation manufactures spectral edges at every cut. Two-minute windows enter an analysis only if at least half of the window is clean; sixty-second wave windows must contain enough clean phase samples to fit. Coupling, complexity and burst measures are likewise computed per run.

Yield

Across the current archive of 56 recordings the screen keeps a median of 78.4% of each recording (range 24.7–94.8%): 71.4 of 100.1 recorded hours survive. One recording, LSD experiment 002, retained under a quarter of its samples under the standard screen and is analyzed on a sensitivity tier with the jump detector switched off; it is flagged wherever it appears. Every recording page shows its own artifact timeline and the share removed by each detector.

What the screen does not catch

There is no explicit muscle detector, so tonic jaw and neck EMG survives and gamma above 30 Hz at the temporal electrodes should be read as partly muscular. The blink and eye-movement detections, the largest category removed (a median of 14.8% of a recording), are the recording system's own proprietary facial-expression detections; their algorithm is not published and they have not been validated here against EOG or a camera. A persistently poor contact that stays above the quality thresholds is not removed — P7 and T7 carry degraded flags in roughly a third of all windows, which is why the asymmetry section treats their pairs with suspicion. Legacy recordings lack directly observed eye-state annotation, which is the confound of §16. Later protocols (from P2) contain fixed eyes-open and eyes-closed blocks, and classifier-derived eye-state labels are available for the wider archive (§16). Those labels are estimates from the EEG itself and are not equivalent to camera- or EOG-confirmed eye state. And the screen leaves a measurable footprint: within the office recordings, the clean fraction itself predicts alpha frequency (§15), a reminder that what is removed is not independent of what is measured.

Limits, stated plainly

One person. One consumer device. No blinding, no placebo, dose recorded for one session only, no source localization, no normative database, and no direct eye-state annotation for the legacy acute sessions (their eye state is a classifier estimate, not camera- or EOG-confirmed, §16). Gamma is muscle-contaminated, particularly at temporal electrodes. P7 is unreliable in a third of all windows. Nothing here is a diagnosis, and nothing here generalizes beyond the single nervous system it describes.

This site is a research notebook made public, not a clinical resource or a recommendation about psychedelic use. If you are experiencing symptoms that the thalamocortical dysrhythmia model is invoked for — persistent tinnitus, neuropathic pain, tremor, treatment-resistant depression — the right instrument is a clinical EEG or MEG read by a neurologist.

Photic resonance analysis

Each sweep's block onsets were recovered by cross-correlating the 6–17 Hz posterior power envelope with the logged on/off pattern (onset error under 1 s). Per 20 s block, the drive-bin signal-to-noise ratio is posterior (O1, O2, P8) power in a 0.25 Hz bin at the drive frequency over the median of 0.5–2 Hz sidebands, minus the same ratio in the preceding dark block; amplitude is the square root of the floored difference. A Lorentzian fitted to amplitude against drive frequency gives f0 and Q, the latter reported only where the fitted half-width exceeds the grid's 0.25 Hz; 95% intervals from 600 residual-bootstrap resamples. In v4 every sweep was also re-fitted with the protocol's reference script and with an exact-frequency estimator bootstrapped within blocks. Code and sweep logs are in the repository

Stimulation masking, eye-state labels and the later analyses

Stimulation masking. Recordings that contain flicker or light noise have every stimulation interval, and the 30 s after it, excluded before any archive-level measure is computed; phase, wave and long-range-correlation measures are computed per unstimulated segment and combined at the window level, never across a gap. On Workday recording 016 masking lowers occipital 8–13 Hz power by up to 41%. The three v3 recordings that contain sweeps (Resting baseline 003 part 2, Workday recording 015, LSD experiment 016) were re-analyzed the same way, LSD experiment 016 also without its final movement episode; unmasked, Workday recording 015 had an alpha share of 0.50 where the masked value is 0.39. Resting baseline 003 part 2 keeps only 2.4 clean minutes once its sweep is removed, so its recording-level values are placeholders.

Comparability. The v4 numbers come from the archive's own scripts, run on the new sessions with their outputs redirected. The driver was validated by recomputing an existing recording from its raw file through the whole chain: every deterministic table reproduces to 10−13; surrogate-based z-scores differ by about 2% from random-number ordering.

Light-noise analysis. The stimulator clock was measured against the recording clock in every run (ratio 0.99932–0.99938) and the EEG resampled to 1,280 samples per true stimulus period. Impulse responses are period-averaged and deconvolved against the known input; significance is response energy at 0–0.5 s against lags of 1.5–9 s. Intensity effects use block-bootstrap intervals, a DerSimonian–Laird random-effects pool with Hartung–Knapp intervals, and a null built from every unstimulated, alpha-dominant eight-minute span in the archive.

Long-term fits. Constant, linear, quadratic, saturating-exponential, single-step, one-changepoint and penalized-spline (effective df ≤ 3) forms, compared by AICc with searched breakpoints counted as parameters and by leave-one-out error; permutation tests for any dependence and for curvature beyond a line, with the model search repeated inside the null; 90% bootstrap bands with selection repeated in each resample; Benjamini–Hochberg within each cohort's 42 tests.

Eye-state classifier. Logistic regression on posterior relative alpha, alpha-peak height above a fitted 1/f background, and the posterior/frontal alpha ratio; 8 s windows on a 4 s hop; windows with P(closed) between 0.35 and 0.65 are left unlabeled. Transitions in the labeled blocks were located from the alpha step and the frontal eyelid deflection, which agree to 1–2 s and showed the nominal block timings to be off by up to 40 s. Evaluated by leaving out whole sessions. It detects alpha presence: eyes closed with suppressed alpha read as open, so closed fractions under a psychedelic are probably under-estimates. Because the classifier's inputs are alpha measures, a comparison of any alpha-derived quantity with eye state matched (phase gradients, wave direction, alpha frequency) is partly matched on alpha strength as well. That can remove part of a genuine difference together with the eye-state confound, or leave a residue that is really a difference in how clearly alpha stands above the background. The timed eyes-open and eyes-closed blocks of protocol P2 and later are labeled by the clock rather than by alpha, and they are the clean test.

theoscillome

A single-subject EEG archive: 56 recordings, 100.1 hours, 19 acute sessions, four psychedelic classes, 34 photic resonance sweeps, thirteen light-noise runs, one brain, February to October 2026. All 56 recordings form the analysis cohort.

theoscillome.com
February–October 2026
Non-diagnostic research