How Best to Save Data From Flicktok
Lab streaming layer (LSL) is the system we use to synchronize data between Bessy and whatever Bessy is talking to, whether that be Unity, CLIP, MindTV or some other app. It is also where Bessy gets data from the headset. The good part about this is that this makes it possible to recreate sessions offline because we have all the info that passed between headset, Bessy, and the application if we save the “streams”. This is also suboptimal, because whoever is running the session then needs to open a second application, called labrecorder, to save the session info.
Recently, we have been discussing how we could get rid of the requirement by having Bessy automatically save it all. I thought that this might be somewhat straightforward, because there is python support for LSL in the form of the pylsl library, however pylsl lacks the ability to save entire streams, and the part of labrecorder that does this is written in c++ so it is not an easy thing to add.
We have also talked about the command line version of labrecorder. Hosein Bahari looked into this in a previous spike Spike on Labrecorder CLI/batch version. He found a separately maintained repo (ie. not Chadwick Boulay) called liesl that allows for command line reading and save of streams. However, I am not optimistic about this, because it would require us to automate command line calls from python, which might be tricky. Additionally, this repo is lacking documentation and has no recent updates, so I am feeling wary of mixing it into Bessy.
So my final recommendation is that we push automated stream saving down the road and use the Lab Recorder GUI again for flicktok.
To save application related info we can create an outlet with pylsl and send markers about what is going on in the application, ie. “new video duration = x”, “navigated to app screen”, “navigated to training scene”, or whatever else Anna wants to pull from the application.