A Rust-based, cross-platform and low-delay task creation tool for (auditory) neuroscience research.
!!! Highly experimental. API subject to frequent change. Use at your own risk. !!!
Install Cargo. (On Windows, Cargo requires C++ build tools and the Windows SDK.)
Clone repository: git clone https://github.com/menoua/task-runner
Use cargo to download dependencies and compile package: cd task-runner && cargo build --release
The resulting binary will be located at target/release/task-runner for macOS and Linux, and target\release\task-runner.exe for Windows.
Compiled binaries are provided for macOS and Linux in bin.
The simplest usage is to put the appropriate binary file in the task directory (see below) and run it, whether by double-clicking (macOS and Windows) or running it from the terminal (macOS, Linux, and Windows).
To avoid having a separate copy of the binaries for each task, you can use an argument to specify the task directory, e.g.:
bin/task-runner-macos examples/Skeleton.
A task directory is a directory that contains a task.yml file and any additional files that are needed to run the task (audio, image, etc.). The task.yml file should be in valid YAML format and defines the structure of the task to be run. Look at the very basic Skeletion example to see what a task definition file should look like.
-
Linux-only: If during compilation you get an error saying failed to build
alsa-sys, you need to get the ALSA development files. For example, on Ubuntu you can get them using:sudo apt-get install libasound2-dev. -
Linux-only: If the binary fails to startup with the message
GraphicsAdapterNotFound, the program cannot find a proper graphics adapter to use. This happens if trying to run the program on a virtual machine that doesn't have full access to the GPU, or are missing the Vulkan library files. For the second case, e.g., on Ubuntu you can get them using:sudo apt-get install libvulkan1 -
Windows-only: If during compilation you get an error saying
linker 'link.exe' not found, you need to get the Visual Studio C++ build tools. -
Windows-only: Currently, the Windows binary is not quite stable. I have to look into it at some point.
-
For some reason, on some speakers the left-right speaker channels are flipped. However, this behavior is consistent with the same device, so as long as you determine once which is which for a device there shouldn't be any problems going forward.