Skip to content

Tips for using LSL4Unity

Markus edited this page Oct 1, 2016 · 10 revisions

Dealing with targetFrameRate

In the case, you intend to stream the application/game state as an LSL stream. You got several options to sample the game state. Be aware that in any case the sampling rate might not be stable and could have a significant jitter caused by heavy game logic

Sample on Update or LateUpdate

Sample on FixedUpdate

Grouping Markers with one timestamp

double thisMoment = liblsl.local_Clock(); provides a time stamp from a high precision clock. Use this to write multiple marker within the same moment in your code. LSLTimeSync.cs is an predefined component you could use for this requirement. Make sure, that this Script get executed before all other scripts. See the Script Execution Order documentation

Postpone marker to the end of a frame

An example snippit from the LSLMarkerStream script.

    public void WriteBeforeFrameIsDisplayed(string marker)
    {
        pendingMarker = marker;
        StartCoroutine(WriteMarkerAfterImageIsRendered());
    }

    IEnumerator WriteMarkerAfterImageIsRendered()
    {
        yield return new WaitForEndOfFrame();

        Write(pendingMarker);

        yield return null;
    }
Clone this wiki locally