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.