Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Research on how to best encode data within audio stream #115

Draft
wants to merge 37 commits into
base: master
Choose a base branch
from

Conversation

vmdocua
Copy link
Collaborator

@vmdocua vmdocua commented Oct 22, 2024

Research on how to best encode data within audio stream (e.g. sequence of beeps), and tools/reprostim-timesync-stimuli to present that audio cue upon win.flip so we could match that timing to qrcode information in visual stream.

NOTE: below listed issues for the next PR on the same plate:

  • Distortion for soundcodes.
  • Tests for soundcodes.
  • PTB sound engine setup under Linux and singularity container.

@yarikoptic
Copy link
Member

just a comment on some additional utilities we identified while researching online, if e.g. approaching from aspect of watermarking:

@yarikoptic
Copy link
Member

here is how I was adding distortion at the level of encoded data before going to audio stream

❯ git diff
diff --git a/tools/audio-codes.py b/tools/audio-codes.py
index abf1273..8464ed3 100644
--- a/tools/audio-codes.py
+++ b/tools/audio-codes.py
@@ -113,6 +113,9 @@ class AudioFrame:
         if self.use_ecc:
             b = bytes(self.rsc.encode(b))
             logger.debug(f"  - ecc       : {len(b)} bytes, {b}")
+            for i in [0, 1]:
+                # distortion
+                b = b[:i] + bytes([(b[i]+1)]) + b[i+1:]
         return b

tools/README.md Outdated Show resolved Hide resolved
tools/README.md Outdated Show resolved Hide resolved
tools/README.md Outdated Show resolved Hide resolved
tools/README.md Outdated
Comment on lines 81 to 82
singularity overlay create --size 1024 overlay.img
sudo singularity exec --overlay overlay.img repronim-psychopy--2024.1.4.sing bash
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replace overlay.img with repronim-psychopy--2024.1.4.overlay or alike

exit
```

And now run the script with overlay:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to add more stuff (before we modify the ./generate_container.sh script) you can use

❯ sudo singularity exec --overlay repronim-psychopy--2024.1.4.overlay repronim-psychopy--2024.1.4.sing python3 -m pip install psychopy-sounddevice

for python level and

❯ sudo singularity exec --overlay repronim-psychopy--2024.1.4.overlay repronim-psychopy--2024.1.4.sing apt-get install -y pulseaudio-utils

Co-authored-by: Yaroslav Halchenko <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants