Backend
The backend part is comprising:
-
A dynamic reader implemented with the linecache library to avoid loading the entire corpus in memory when getting a new line of text.
-
A cryptography module using cryptography.fernet to encrypt and decrypt the participant identity, necessary to assert the right to oblivion.
-
A ssh client built with paramiko to send instructions to the spatialization sphere when playing the sound, changing tracks, and locating the reading head with jack_transport and ladish_control bash commands.
-
A timer with start, pause, resume and reset methods.
-
A non-bocking streaming recorder implemented with sounddevice, soundfile and queue libraries.