Signal Studio is the visual workspace for neural data — node-based pipelines, real-time waveforms, sharable workflows. The full power of MNE and EEGLAB, with the interface you've always wished they had.
Used in labs & classrooms at
Traditional EEG tools were built for the 1990s. Signal Studio is built for how you actually think — visually, iteratively, in conversation with the data.
App Mode hides the graph until you need it. Drop in a file, pick a template, hit run. No scripts, no Matlab license, no rage-quitting.
No tiers. No paywalls. No "enterprise" footnotes. The whole stack lives on GitHub under MIT — fork it, audit it, ship it.
Write a Python node in under 20 lines. Publish it to the hub. Your lab's preprocessing pipeline becomes everyone's. Reproducibility, by default.
Built like a pro audio plugin — macro knobs, animated meters, eight visualization tabs, full theming. EEG analysis that doesn't feel like punishment.
Connect models, filters, and analyses on an infinite canvas. Inspect every intermediate result. Tweak one knob, see the impact downstream — live.
Every model, every filter, every transform is a node. Connect them on an infinite canvas where every intermediate state is inspectable. New users start in App Mode — a clean, parameter-only view that hides the graph until you're ready.
Every workflow is a file. Drag one in, run it on your data, fork it, publish your version. The community library covers ERP analysis, ICA decomposition, microstates, sleep staging, source localization — kept up to date by the people doing the research.
Raw waveforms, spectrograms, topographies, ICA components, ERP overlays, source maps, connectivity matrices, statistical reports — each one is a tab away, all driven by the same node graph. Switch themes for poster prep, lab demos, or late-night sessions.
Every pipeline below was published by a researcher. Open one, run it on your data, then share what you build on top.
Reference workflow for event-related potentials. Re-referencing, baseline correction, ICA, epoching, averaging.
Automated sleep staging pipeline with custom epoch overrides and quality flagging for human review.
Forward model from individual MRI, noise covariance estimation, eLORETA inverse solution with bootstrap.
Wrap any function with @node and it becomes a draggable block — typed inputs, typed outputs, full UI. Publish to the registry with one command. No build system. No yaml hell.
# Drop this in ~/.signal-studio/nodes/ — it shows up in the palette. from signal_studio import node, Signal from scipy.signal import butter, filtfilt @node(category="filter", color="#1d4ed8") def bandpass( x: Signal, low: float = 1.0, high: float = 40.0, order: int = 4, ) -> Signal: b, a = butter(order, [low, high], fs=x.sfreq, btype="band") return x.with_data(filtfilt(b, a, x.data))
An open project belongs to the people who use it. Discord, GitHub, monthly community calls, a public roadmap. Every issue gets read.
"I spent three years writing the same preprocessing script for every new dataset. Signal Studio exists because nobody else's PhD should look like that."— FOUNDING NOTE · 2025
Free, open source, runs locally. No account required to download. Onboarding takes about ninety seconds.