Software

VST3 and Standalone Application User Guide #

Getting Started #

Getting Help #

1. Main View #

Figure 1.1 – Main View

1.1. Main Controls #

1.2. Input and Signal Display #

1.3. Signal Modes #

1.3.1. ECG Mode #

1.3.2. EMG Mode #

1.3.3. EEG Mode #

1.3.4. EOG Mode #

1.3.5. Custom Mode #

1.4. Audio Outputs #

The Audio Outputs display shows the current audio/output-channel mapping for the selected mode. Channels are presented as Ch1 through Ch12. Channels that are not used by the current mode are shown as N/A. The mapping updates automatically when the biophysical signal mode changes. Audio Outputs are available to your host application when using the VST3 plugin.

1.5. Status and Software Information #

The bottom of the Main View provides device and software status information. THE SOURCE displays the current authorization state and shows “Input not available” when the device is not authorized. The installed software version is displayed continuously. When an update is available, an Update Available link can be shown with the new version number.

DisplayFunction
Authorization statusShows the current device authorization state.
Input not availableAppears when the device is not authorized for input.
Software VersionDisplays the installed THE SOURCE software version.
Update AvailableAppears when a newer software version and download location are available.

2. Simulator #

Figure 2.1 – Simulator

The Simulator provides a built-in signal source for testing THE SOURCE without requiring a live physiological input. It can switch between the hardware input and simulated signals, generate several waveform types, and display the resulting raw and processed signals in the same real-time scope used for monitoring. Input is available only when the device is authorized. If the device is not authorized, the Simulator displays “Input not available when not authorized” and automatically uses Simulation.

To use the Simulator, select Simulation under Signal Source, choose a waveform, and adjust its available rate/frequency/speed and amplitude controls. The generated signal is processed by THE SOURCE and can be observed in the live scope. Switching the application’s biophysical signal mode automatically updates the default simulator waveform and the scope channel layout.

2.1. Signal Source #

Figure 2.2 – Simulator close-up

Signal Source selects whether THE SOURCE processes the live hardware input or the internal simulator.

ControlFunction
InputUses the signal arriving from THE SOURCE hardware.
SimulationUses the internally generated simulator signal.

2.2. Mode-Aware Defaults #

When the biophysical signal mode changes, the Simulator automatically selects a corresponding default waveform. The waveform can then be changed manually from the Waveform menu if desired.

THE SOURCE ModeDefault Simulator Waveform
ECGECG
EMGEMG
EEGEEG
EOGEOG
CustomSine

2.3. Waveform #

The Waveform menu selects the signal generated by the simulator. The available choices are Sine, Square, Triangle, ECG, EMG, EEG, and EOG. The Simulator displays a short description of the active simulation algorithm beneath the waveform controls. This description updates automatically when a different waveform is selected.

WaveformSimulation Method
SineA pure sine-wave oscillator at the selected frequency and amplitude.
SquareA two-state waveform alternating between positive and negative amplitude at the selected frequency.
TriangleA piecewise-linear waveform that ramps between positive and negative amplitude.
ECGA periodic ECG wavetable oscillator based on a stored 256-sample clinical ECG cycle with linear interpolation between table samples.
EMGBroadband white noise shaped by three cascaded second-order 3 kHz Chebyshev Type-II low-pass filters and controlled by a sinusoidal amplitude envelope.
EEGA five-component additive oscillator bank using components at 1, 6, 10, 18, and 33 Hz with self-amplitude modulation and independent scaling.
EOGA horizontal eye-position model producing fixation plateaus, rapid saccades, reading-like stepped gaze positions, a return saccade, slow drift, and low-level noise.

2.4. Waveform Controls #

Amplitude controls the simulator output level from 0.000 to 1.000. The second waveform control changes according to the selected waveform.

WaveformControlRange / Behaviour
Sine / Square / TriangleFrequency0.00 – 500.00 Hz
ECGRate20.0 – 140.0 BPM
EMGEnvelope0.10 – 2.00 Hz
EEGFrequencyDisabled; the EEG simulator uses its fixed oscillator-bank frequencies.
EOGSpeed0.25 – 4.00 x

2.5. Live Scope #

The scope displays the signals produced after the selected simulated input passes through THE SOURCE processing. Its channel labels follow the active biophysical signal mode.

ModeScope Channels
ECGFirst two ECG output channels (Raw and Cooked).
EMGFirst two EMG output channels (Raw and Cooked).
EEGRAW, DELTA, THETA, ALPHA, BETA, GAMMA.
EOGFirst two EOG output channels (Raw and Cooked).
CustomOne channel out.

2.6. Scope Controls #

ControlFunction
Volts / Div (+/-)Sets the vertical scope scale from 0.01 to 10.00.
Timebase (Secs)Sets the displayed time window from 0.01 to 30.00 seconds.

3. Networking #

Figure 3.1 – Networking UI

The Networking tab provides real-time network access to signals and derived data generated by THE SOURCE. Data can be transmitted simultaneously using Open Sound Control (OSC), MQTT, and Lab Streaming Layer (LSL).

Each protocol is configured independently. You can enable or disable OSC, MQTT, and LSL separately, and each protocol has its own per-signal controls in the lower portion of the Networking tab.

3.1. Networking Modes #

You can enable or disable each networking mode by checking the toggles at the top.

Enabling or disabling a networking protocol does not alter the underlying signal processing performed by THE SOURCE. It only determines which signals are made available to external applications.

3.2. Reset Defaults #

Reset defaults restores the Networking tab’s default configuration, including protocol settings, per-protocol namespaces and polling intervals, LSL channel names, and LSL configuration.

Figure 3.2 – Networking configuration and resetting to Default

3.3. Open Sound Control (OSC) #

Open Sound Control (OSC) is a message-based communication format widely used in audio, interactive media, creative coding, and real-time multimedia applications. OSC identifies values using hierarchical addresses beginning with /, making it convenient for applications such as Max, Pure Data, SuperCollider, TouchDesigner, Unity, and other network-enabled environments.

To learn more, please visit the OpenSoundControl website.

When OSC is enabled, THE SOURCE sends each selected signal to the configured Host and Port. Host specifies the destination IP address. 127.0.0.1 sends OSC to another application running on the same computer. Port specifies the destination network port. The default is 9000.

Each signal has its own OSC Namespace and OSC Poll (ms) value. These settings are independent of MQTT. For example, Raw ECG may be transmitted as /Raw_ECG. A Poll setting of 20 ms sends the current value approximately every 20 ms.

3.4. Message Queuing Telemetry Transport (MQTT) #

MQTT is a lightweight publish/subscribe messaging protocol suitable for distributing THE SOURCE data to networked applications, remote systems, IoT infrastructure, and cloud services.

To learn more, please visit MQTT.org.

When MQTT is enabled, THE SOURCE publishes selected signals through the configured MQTT broker. URL specifies the MQTT broker and connection information. Client ID identifies THE SOURCE application to the broker. The connection indicator shows the current MQTT connection state. Each signal has its own MQTT Namespace and MQTT Poll (ms) value. These settings are independent of OSC, so the same signal can use different addresses and different transmission intervals for the two protocols.

For an example of an MQTT broker for artists, visit: Shiftr.io

3.5. Lab Streaming Layer (LSL) #

Figure 3.3 – Lab Streaming Layer settings

Lab Streaming Layer (LSL) provides synchronized streaming of time-series data between applications and computers. It is particularly suited to physiological signals, experimental systems, multimodal recording, and research applications.

The Lab Streaming Layer documentation website provides a detailed description of LSL and how to use it.

Unlike OSC and MQTT, LSL is not controlled by a polling interval. Enabled channels are transmitted as a continuous LSL time-series stream from THE SOURCE. In the current implementation, the stream has a nominal sampling rate of 2000 Hz and uses float32 channel values.

The LSL configuration includes:

ControlFunction
Stream NameIdentifies the THE SOURCE stream to LSL clients.
Source KeyThe LSL source_id: a stable, unique identifier for the source. Example: THE-SOURCE-001.
Stream TypeAutomatically follows the current signal mode: ECG, EMG, EEG, EOG, or Custom.
StatusIndicates whether the LSL outlet is currently streaming.

Compatible applications automatically discover LSL streams and do not require OSC-style host and port settings. NOTE: The Source Key should be stable and unique on the LSL network and should not simply duplicate the Stream Name.

3.6. LSL Recording and Viewing #

For a simple LSL recording workflow, bioMECI currently documents LabRecorder (LSL) for recording LSL streams to XDF and SigViewer for opening and inspecting the recorded XDF file. These are independent third-party tools and are not required for THE SOURCE to transmit LSL.

The workflow is as follows: THE SOURCE transmits LSL → LabRecorder (LSL) records and saves the recording as an XDF file → SigViewer allows you to view and playback the file. LSL receiver applications can subscribe to multiple streams simultaneously. This allows signals from several THE SOURCE devices to be combined with data from other LSL-compatible devices and recorded concurrently within a synchronized session.

See the following website for a list of LSL viewers and compatible applications.

3.7. Signals #

The lower portion of the Networking interface is divided into independent OSC, MQTT, and LSL sections. Signal Type and Value are display-only; the protocol-specific controls determine how each signal is transmitted.

SectionControls
OpenSoundOn/Off · Signal Type · Value · Namespace · Poll (ms)
MQTTOn/Off · Signal Type · Value · Namespace · Poll (ms)
Lab Streaming Layer (LSL)On/Off · Signal Type · Value · Channel Name

3.8. Polling and Streaming #

OSC and MQTT periodically read the current value of an enabled signal and transmit it according to their own protocol-specific Poll (ms) setting. For example, OSC could transmit Cooked ECG every 20 milliseconds (ms) while MQTT publishes the same value every 500 milliseconds (ms).

LSL instead carries enabled channels as a continuous time-series stream and is not affected by either OSC Poll or MQTT Poll. Multiple enabled LSL channels are transmitted together in the same stream, with their individual Channel Name metadata identifying them to compatible LSL clients.

This allows THE SOURCE to use the same signal simultaneously for creative/networked communication through OSC or MQTT and for synchronized recording or research workflows through LSL.

For OSC and MQTT, Namespace and Poll (ms) are independent. Changing the OSC settings does not change MQTT, and changing MQTT does not change OSC. LSL Channel Name is also independent of both network namespaces.

Changing a Namespace or LSL Channel Name only changes how a signal is identified externally; it does not alter the underlying signal or processing performed by THE SOURCE. LSL channel names may contain spaces, for example Raw ECG and Cooked ECG.

A single signal could therefore be configured simultaneously as:

SettingExample
Signal TypeCooked ECG
OSC Namespace/Cooked_ECG
OSC Pool20 ms
MQTT Namespace/ecg/processed
MQTT Poll500 ms
LSL Channel NameCooked ECG

3.9. Signal Types #

The available signals automatically change according to the currently selected signal mode. The Current Mode indicator identifies the active mode.

3.9.1. ECG Mode #

SignalDescription
Raw ECGUnprocessed ECG signal.
Cooked ECGProcessed and filtered ECG signal.
BPMCalculated heart rate in beats per minute.
R2RInterval between successive detected R-peaks.
ValenceDerived valence value calculated by THE SOURCE.
ArousalDerived arousal value calculated by THE SOURCE.
RSPRespiration signal derived from the physiological signal.
RSP RateCalculated respiration rate.
RSP EffortDerived measure of respiration effort.
Touch PlateCurrent value of the touch-plate input.

3.9.2. EMG Mode #

SignalDescription
Raw EMGUnprocessed electromyographic signal.
Cooked EMGProcessed EMG signal.

3.9.3. EEG Mode #

SignalDescription
Raw BandBroadband EEG signal before individual band processing.
Raw DeltaRaw Delta-band signal.
Cooked DeltaProcessed Delta-band value.
Raw ThetaRaw Theta-nad signal.
Cooked ThetaProcessed Theta-band value.
Raw AlphaRaw Alpha-band signal.
Cooked AlphaProcessed Alpha-band value.
Raw BetaRaw Beta-band signal.
Cooked BetaProcessed Beta-band value.
Raw GammaRaw Gamma-band signal.
Cooked GammaProcessed Gamma-band value.
RatioDerived EEG band-ratio value.
Updated on September 11, 2026

Share with