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.

3.9.4. EOG Mode #

SignalDescription
Raw EOGUnprocessed electrooculographic signal.
Cooked EOGProcessed EOG signal.

3.9.5. Custom Mode #

SignalDescription
OutOutput signal generated by the current custom signal configuration.

3.10. Networking Resources #

Protocol/ToolResource
OSCOpenSoundControl Specification 1.0
MQTTMQTT specifications/OASIS MQTT Version 5.0
MQTT broker exampleShiftr.io
LSLLab Streaming Layer documentation
LSL viewersLSL viewers and compatible applications
LSL recordingLabRecorder
XDF viewingSigViewer

4. Configuration #

Figure 4.1 – Configure

The Configuration window provides access to the operating settings stored by THE SOURCE device. It is organized into Standard, Advanced, and Developer device modes so that routine signal configuration is kept separate from lower-level hardware controls. Settings can be read from THE SOURCE, edited in the application, uploaded to the device, and saved to the device when required.

For routine operation, select STD, choose the Signal Mode and Signal Out, adjust filtering if needed, and upload the configuration. ADV exposes the preamplifier and PWM controls for more detailed signal-path configuration. DEV is intended for low-level hardware setup and diagnostics, including direct switch, UART, and Chop controls.

4.1. Device Mode #

Device Mode determines how much of the device configuration is exposed. Changing Device Mode changes the controls shown in the Configuration window; it does not itself select the physiological signal mode.

ModeAvailable Controls
STDSet-Up and Filter Control.
ADVStandard controls plus Preamp Control and PWM Control.
DEVAdvanced controls plus the individual hardware Switches, UART, and Chop controls.

4.2. Mirroring and Refresh #

ControlFunction
MirroringControls whether configuration-mode changes are mirrored by the application/device integration.
RefreshReads the current configuration from THE SOURCE. The control is available when the device is connected.

4.3. Set-Up #

Set-Up defines the active signal configuration and the signal routed to the selected output path.

ControlFunction
Signal ModeSelects ECG, EMG, EEG, EOG, or one of five user banks (Bank 1–Bank 5). Selecting ECG, EMG, EEG, or EOG applies the corresponding signal preset; selecting a bank recalls its stored configuration locally.
Signal OutSelects the signal produced by the current mode. The available choices depend on Signal Mode.
Bank NameAppears when a user bank is selected. Bank names are limited to nine characters.
Power RegionSelects 60 Hz or 50 Hz operation.
ModulationTurns modulation on or off.
Signal ModeSignal Out choices
ECGRAW, COOKED, RSP, TOUCH, CUSTOM
EMGRAW, COOKED, CUSTOM
EEGRAW BAND, DELTA RAW/COOKED, THETA RAW/COOKED, ALPHA RAW/COOKED, BETA RAW/COOKED, GAMMA RAW/COOKED, RATIO
EOGRAW, COOKED, CUSTOM
Bank 1-5CUSTOM

When EEG RATIO is selected, an EEG Ratio control appears. The numerator and denominator can each be selected from DELTA, THETA, ALPHA, BETA, and GAMMA.

4.4. Filter Control #

Filter Control configures the biopotential and auxiliary signal paths. The auxiliary controls are always shown. Biopotential filter controls are shown when a Custom signal output or user bank is selected.

ControlFunction
Region FilterTurns the region filter on or off for the selected signal path.
LPF FrequencySets the low-pass filter frequency using the supported stepped frequency values.
LPF FilterTurns the low-pass filter on or off.
HPF FrequencySets the high-pass filter frequency using the supported stepped frequency values.
HPF FilterTurns the high-pass filter on or off.

4.5. Preamp Control (ADV DEV modes) #

Preamp Control is available in ADV and DEV modes. These controls configure the analogue preamplifier signal path and are synchronized with the underlying hardware switch states.

ControlChoices/Function
InputPREAMP or AUX IN.
HPF0 Hz, 0.005 Hz, 0.05 Hz, 0.5 Hz, or 5 Hz.
AC/DCAC or DC coupling.
ST1 Gainx1, x2, or x10.
ST2 Gainx1, x5, x10, or x100.
Total GainDisplays the combined Stage 1 × Stage 2 gain.
ST2 DischargeTurns Stage 2 discharge on or off.
ST2 0.005Hz HPFTurns the Stage 2 0.005 Hz high-pass filter on or off.
OutputPREAMP, AUX IN, or PWM.

4.6. PWM Control (ADV DEV modes) #

PWM Control is available in ADV and DEV modes and configures the device PWM signal source.

ControlFunction
OutputSelects ACTIVE IN or PWM.
PWM FrequencySets the PWM frequency using the supported stepped frequency values.
PWM AmplitudeSets PWM amplitude from 0.00 to 1.00.
WaveformSelects SINE, SQUARE, TRIANGLE, ECG, ECGCLINICAL, or EXTERNAL_ADC.

4.7. Switches (DEV mode) #

DEV mode exposes the individual hardware switch states A, B, C, D, E, F, G, H, I, J, K, L, O, P, R, and S. These are low-level controls underlying the higher-level preamp and routing settings. For normal configuration, use the Preamp controls rather than changing individual switch states directly.

4.8. UART (DEV mode) #

UART controls are available in DEV mode for serial communication testing and diagnostics.

ControlFunction
Baud RateSelects 2400, 9600, 57600, 115200, 230400, 500K, 1M, 2M, or 4M.
UART TestTurns UART test mode on or off.
RX Bytes/secDisplays the current receive rate.
ReceivedDisplays received UART test information.

4.9. Chop (DEV mode) #

Chop controls are available in DEV mode and expose low-level modulation and diagnostic state.

Control/DisplayFunction
PIN N StateDisplays the current PIN N state.
USB PlugDisplays the current USB plug state.
ModulationsTurns modulation on or off.

4.10. Sending Settings to THE SOURCE #

The SEND SETTINGS section determines how the edited configuration is transferred to the device. These controls are enabled when THE SOURCE is connected.

ControlFunction
Upload onlyUploads the current settings to THE SOURCE over CDC without invoking the save-and-reboot action
Upload & SaveSends the current settings to THE SOURCE for saving and rebooting.

Settings are considered changed when the current signal-defining configuration differs from the last synchronized configuration. User-bank names are associated with the active bank and can be edited before saving.

5. Firmware and Factory Reset #

Figure 5.1 – Firmware and Factory Reset

The Firmware and Factory Reset window provides two device-maintenance functions for THE SOURCE: installing device firmware from a UF2 file and restoring the device to its factory settings.

5.1. Device Firmware #

The Device Firmware section is used to select and upload a UF2 firmware file to THE SOURCE. A firmware file can be selected using the file-selection area or dropped directly onto it.

Control/DisplayFunction
Firmware file selectionClick to browse for a UF2 firmware file, or drag a UF2 file onto the selection area.
File to uploadDisplays the name of the currently selected firmware file. Before a file is selected, the display reads “No UF2 file selected.”
Upload FirmwareReboots THE SOURCE into its bootloader and initiates copying of the selected UF2 firmware file.
Firmware statusDisplays firmware-related status information.
Firmware update linkCan appear when an available firmware update and download location are provided.

5.1.1. Selecting Firmware #

Select the firmware file by clicking the firmware-selection area and choosing a UF2 file, or by dragging the UF2 file directly onto the selection area. The selected filename is then shown under File to upload.

The Upload Firmware button is disabled until the application determines that firmware file is available.

5.1.2. Uploading Firmware #

After selecting the required UF2 file, choose Upload Firmware. THE SOURCE is rebooted into its bootloader and the selected UF2 file is copied to the device. The status area is used by the application to report firmware and upload information.

5.1.3. Knowing The Firmware Version And Available Updates #

The firmware status area displays the current device firmware/version state. When the application provides both update text and an update location, an underlined update link is displayed beside the firmware status. The link is hidden when no update is available.

5.2. Factory Reset THE SOURCE #

The Factory Reset Device section restores THE SOURCE factory settings and reboots the device. Because this operation replaces the current device configuration with the factory configuration, the interface presents a warning area before the Factory Reset control.

Control / DisplayFunction
WarningDisplays the factory-reset warning presented by THE SOURCE.
Factory ResetRestores THE SOURCE factory settings and reboots the device.
Reset StatusDisplays the current factory-reset status or result.

5.2.1. Performing a Factory Reset #

Choose Factory Reset to begin the reset operation. The control is available only when the application enables factory reset for the connected device. Status information is displayed beneath the button as the application reports the result of the operation.

Updated on October 15, 2026

Share with