peyecoder
About peyecoder
Peyecoder is used for coding eye movements in looking-while-listening experiments. It was designed as a replacement for the now-outdated program iCoder developed at Stanford in the early 2000s.
User Manual
The User Manual can be downloaded as a pdf or viewed as a Google Doc:
- User Manual(pdf)
- User Manual(Google Doc)
Additional Materials
- Sample video, trial orders, and coded files Coding example
- Exported data from peyecoder and Tobii X2-60 eyetracker, and R scripts Data processing
Installing peyecoder
There are three ways to obtain peyecoder.
- Download an executable version of the program attached to a GitHub Release.
-
Install from the Python Package Index
pip install peyecoder
An executable script
peyecoder-gui
will be installed as part of the peyecoder package. - Download the source code from GitHub
For audio playback, peyecoder requires that ffmpeg be available in the system path.
Building executable files for distribution
The executable files attached to releases are built using PyInstaller. Steps to build an executable are:
- download the peyecoder source from GitHub
- create an associated venv and install peyecoder dependencies (see requirements.txt)
- install PyInstaller
Building on Windows and Linux
Create a single-file executable using the command:
pyinstaller run-peyecoder.py --name peyecoder --onefile
Building on MacOS
Additional parameters may be necessary on MacOS.
pyinstaller run-peyecoder.py --name peyecoder --onefile --windowed --hiddenimport pkg_resources.py2_warn
The .spec file generated by this command (peyecoder.spec
) will need to be updated to include a High Resolution setting
to work properly with Retina displays. Set NSHighResolutionCapable to True as in the example below. Additionally,
set the CFBundleDisplayName and CFBundleName as below so that the application menu is correctly titled.
app = BUNDLE(exe,
name='peyecoder.app',
icon=None,
bundle_identifier=None,
info_plist={
'CFBundleDisplayName': 'peyecoder',
'CFBundleName': 'peyecoder',
'NSHighResolutionCapable': 'True'
}
)
see the PyInstaller docs for more information.
Finally, re-run PyInstaller using the .spec file as input:
pyinstaller peyecoder.spec