Connects to a Muse device using Web Bluetooth API.
const muse = await connectMuse();Returns a Muse instance.
The main class for interacting with the Muse device.
eeg: Array ofMuseCircularBufferinstances for EEG channelsppg: Array ofMuseCircularBufferinstances for PPG channelsaccelerometer: Array ofMuseCircularBufferinstances for accelerometer datagyroscope: Array ofMuseCircularBufferinstances for gyroscope databatteryLevel: Current battery levelstate: Connection state (0: disconnected, 1: connecting, 2: connected)
connect(): Initiates connection to the devicedisconnect(): Disconnects from the devicestart(): Starts data streamingpause(): Pauses data streamingresume(): Resumes data streaming
Starts recording EEG data.
Stops recording and returns processed data:
const data = await stopRecording();
// Returns:
{
rawEEG: number[][], // Raw EEG data
spectraData: number[][], // Power spectra
powerData: object[], // Power by frequency band
alphaData: number[] // Alpha band power
}React context provider for EEG functionality.
<EEGProvider>
<App />
</EEGProvider>React hook for accessing EEG functionality.
const {
muse, // Muse instance
isConnected, // Connection status
isMockData, // Whether using mock data
rawEEG, // Latest EEG readings
connectMuse, // Function to connect to Muse
connectMockData, // Function to use mock data
disconnectEEG, // Function to disconnect
startRecording, // Start recording function
stopRecording, // Stop recording function
} = useEEG();The library processes EEG data into the following frequency bands:
- Delta: 0.5-4 Hz
- Theta: 4-8 Hz
- Alpha: 8-13 Hz
- Beta: 13-30 Hz
- Gamma: 30-100 Hz
- Raw data collection (256 Hz sampling rate)
- Signal filtering and artifact removal
- Power spectrum calculation using periodogram method
- Frequency band power extraction
- Real-time data streaming to application
The library includes comprehensive error handling for:
- Bluetooth connection issues
- Data processing errors
- Device disconnection events
Errors can be caught using standard try-catch blocks:
try {
await connectMuse();
} catch (error) {
console.error("Connection error:", error);
}