Skip to content

remrama/smacc

Repository files navigation

Sleep Manipulation And Communication Clickything

CI Release Python Ruff

A clickable interface for running sleep-related experiments.

  • Trigger audio cues
  • Collect dream reports
  • Trigger EEG portcodes
  • Save a detailed event log
  • and more!

Installation

To install SMACC, go to the releases page, click the Assets dropdown for the latest release, and download the SMACC.exe file. Once downloaded, double-clicking this file will run SMACC.

Note that for some features, you will need to open SMACC with Administrator privileges (Right-click to open and select Run as administrator).

Optional setup

  • If you don't want to use the default ~/SMACC folder, you can change this by setting a new environment variable called SMACC_DATA_DIRECTORY equal to whatever directory you want to use. SMACC will create it and all the subfolders (if not already present).

  • Place any sound files in the ~/SMACC/cues folder (must be .wav files!).

  • There is a Record Dream Report button that will start to record from whatever external recording device is selected from the SMACC menubar. There is also an option to have it pop open a website URL. I use this to open up a dream report survey I have set up on Qualtrics. If you want it to open something, update the SURVEY_URL variable in config.py. If planning to record dreams, choose sound device for recording audio from the menubar (Audio > Input device > [choose device]).

Development

This project uses uv for environment management.

uv sync --extra dev        # create the environment with dev tools
uv run python entry.py     # launch the app
uv run pytest              # run the test suite
uv run ruff check .        # lint
uv run ruff format .       # format
uv run mypy                # type-check
pre-commit install         # enable the lint/format/type-check git hooks

Build the standalone Windows executable:

uv run pyinstaller entry.py --name SMACC --onefile --noconsole

Releases are built automatically: pushing a v* tag (e.g. v0.0.7) triggers the release workflow, which builds SMACC.exe and attaches it to the GitHub Release.

About

Sleep Manipulation And Communication Clickything

Topics

Resources

License

Stars

Watchers

Forks

Contributors