THALis: preprocessing stages and namespace change

alpha + beta filters, notch, DC removal... need to keep track of what happens where. compare a sharp transient before/after each stage sometime, curious how much gets smeared

  • implementation references: 9c8ef22 introduces EEGPreprocessor in clean.py; 0fbb669 records filtering fixes and renames unicornlsl to unicorneeg.
  • stages described by the archive: alpha-band 8–13 Hz and beta-band 13–30 Hz filtering, 60 Hz notch filtering, DC-offset removal, artifact rejection and callback-based delivery. Separate alpha/beta outputs later feed dual-band features.

Unicorn streaming callback errors
Unicorn streaming callback errors

Band-pass filter frequency response
Band-pass filter frequency response

  • files: src/unicorneeg/clean.py, src/unicorneeg/stream.py, and wiring in src/main.py. Short development recordings numbered 2–5 accompany the fix iteration.
  • review questions: confirm filter order, coefficients, causal/stateful behavior and treatment of startup transients in the actual code. Which channels are filtered, and how does artifact rejection affect timestamps/window availability? The archive does not establish the exact cause of the eight-line fixes, so possible filter instability or channel-selection errors must not be promoted to a confirmed diagnosis.