Bundle of Max4Live devices using EEG signal for dynamical audio-visual composition. It is designed to provide flexible mapping of real-time EEG signals for digital artists
This bundle is primarilly intended to be coupled with the use of EEG_synth (https://github.com/hyruuk/eegsynth/tree/dev_cbc) and Muse headset. The EEG_stream module allows to receive the OSC messages and stream it to any other module that requires it. If the user doesn't have a Muse headset, the module EEG_playback allows to stream pre-recorded EEG signals. The modulation modules can be used without the live EEG stream.
Insert the EEG_stream module in any Ableton track and set the UDP port accordingly to your EEG_synth patch. The light will flash if data is received.
Insert the Multi-mapper-MIDI or Multi-mapper-AUDIO modules in any Ableton track and write the OSC address that you want to map on any control parameter
The EEG_playback module can replace the EEG_stream module when pre-recorded signals are used. When signal is streamed, all the other modules are able to receive the data they are expected. You can find data examples recorded using a Muse headband in the /data_examples folder. To open a datafile, you need to press on the load button and select the file (you will be asked to select the file twice; this behavior needs to be fixed). Then, the speed parameter needs to be manipulated to control how fast the data is read. With the present files, you can set the speed to 1.15ms to reflect the original datastream sampling frequency.
The cognitive accumulator/trigger is a module designed to trigger events such as audio clips, or musical scenes. The trigger happens when a specific EEG feature reaches a chosen threshold and stays above it for a certain amount of time, indicating that ‘’a state’’ has been detected. This module allows to navigate between musical scenes based on the detection of cognitive states.
The quantizer-smoother-pitchbend works as both a smoother and a sample-and-hold. It whether computes the average or take a snapshot of an incoming each specified amount of time. The ramptime value indicates the time necessary to ramp to the next value. When pitch is set to ON, output values are directly routed to the pitchbend cc value. The quantize option allows to constraint the output value according to predetermined tunings. The Biotuner option allows to use dynamical biotunings as a reference tuning for pitchbend.
The thresholder is a module designed to trigger MIDI notes when a specific feature crosses a predetermined threshold.
These modules interface the Biotuner Python toolbox (https://github.com/antoinebellemare/biotuner) They allow to use dynamical microtonal tunings, modulations based on peak frequencies and euclidean rhythms derived from biosignals for realtime musical composition.
The Scale Foraging module allows flexible control over biotunings, whether by controlling how often the tuning changes, how many notes are in the tuning, as well as the degree of harmonic similarity between two successive tunings.
The MIDI-microtonality module allows to load tuning files from .scl and .txt, as well as write new tunings directly in the module. It can also be coupled with the Tuning Foraging module to receive tunings dynamically from the Biotuner.
The BT-peaks-chord module maps frequency peaks to notes, with controls for octave shift. Specify the OSC address of the incoming list of peaks to enable real-time chord generation based on biosignals.
The BT-LFO module generates LFOs based on spectral peaks detected in biosignals. These LFOs can be mapped to various parameters in real-time musical compositions.
- Dynamic Peak Modulation: Two spectral peaks from biosignals are mapped onto LFOs, each with adjustable depth and frequency ranges.
- Smooth Control: Control the smoothness of each LFO waveform, adjusting how quickly the modulation responds to changes.
- (Sub)harmonic Modulations: Toggle and adjust harmonic and subharmonic modulations, allowing for rich, complex waveform generation influenced by biosignals.
- Frequency Range Control: Set minimum and maximum frequency limits to tailor the LFO’s impact on the audio parameters.
The Biotuner-Euclid module produces euclidian polyrhythms based on EEG signal harmonic ratios. It can easily be coupled with EEG_mapper module by mapping EEG features on sustains, rate of change or complexity values. It takes MIDI notes as input, and can therefore be integrated in an instrument rack with the MIDI_microtonality and Tuning_foraging modules to use bioharmonies in frequency and time domains simultaneously.