Skip to main content

An OpenSesame Plug-in for playing and recording audio files with low latency on Linux

Project description

OpenSesame Plug-in: Audio Low Latency

An OpenSesame plug-in for playing and recording audio files with low latency.

Copyright, 2022, Bob Rosbag

1. About


The main goal of this plug-in is to play and record audio with minimal and predictable latencies to achieve a high accuracy and precision. The 'PyAlsaAudio' package which uses the Linux ALSA audio system provided the best results within Python. 'PortAudio' and 'sounddevice' are cross-platform and work on both Windows as Linux.

This plug-in consist of playback and recording items as well as foreground as background (multi-threaded) items. Both playback and recording have their own init item. These should be placed at the beginning of an experiment.

Difference between foreground and background:

  • Foreground items play/record until the file ends or the set duration has passed.
  • Background items consist of a 'start', 'wait' and 'stop' item. These are fully multi-threaded. After the start of the playback/recording, the item will immediately advance to the next item. When it reaches the 'stop' or 'wait' item, it will stop the audio or wait until the file ends or duration has passed.

Seven items for playback:

  • Play Init initialization of the playback audio device, this should be placed at the beginning of an experiment.

Foreground:

  • Play starts the playback of audio, it will play the entire audio file or will stop after the set duration has passed before continuing to the next item in the experiment.

Background:

  • Play Start starts the playback of audio, it will directly advance to the next item in the experiment.

  • Play Wait waits until the thread from 'Play Start' is finished (end of audio or surpassing the duration) before advancing to the next item in the experiment.

  • Play Stop sends a stop signal to the 'Play Start' thread to stop immediately and checks if the thread has finished.

  • Play Pause pauses playback of audio.

  • Play Resume resumes playback of audio.

Seven items for recording:

  • Record Init initialization of the playback audio device, this should be placed at the beginning of an experiment.

Foreground:

  • Record starts the recording of audio, it will record for the set duration before continuing to the next item in the experiment.

Background:

  • Record Start starts the recording of audio, it will directly advance to the next item in the experiment.

  • Record Wait waits until the thread from 'Record Start' is finished (surpassing the duration) before advancing to the next item in the experiment.

  • Record Stop sends a stop signal to the 'Record Start' thread to stop immediately and checks if the thread has finished.

  • Record Pause pauses recording of audio.

  • Record Resume resumes recording of audio.

Timestamps can be found in the log file by the name: time_stimulus_onset_[item_name]

Known bugs:

  • Recording with the PyAudio module does not seem to work at the moment

2. LICENSE


The Audio Low Latency plug-in is distributed under the terms of the GNU General Public License 3. The full license should be included in the file COPYING, or can be obtained from

This plug-in contains works of others. Icons are derivatives of the Faience icon theme, Faenza icon theme and Papirus icon theme.

3. Documentation


Installation instructions and documentation on OpenSesame are available on the documentation website:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opensesame_plugin_audio_low_latency-10.6.2.tar.gz (117.7 kB view details)

Uploaded Source

Built Distribution

opensesame_plugin_audio_low_latency-10.6.2-py2.py3-none-any.whl (189.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file opensesame_plugin_audio_low_latency-10.6.2.tar.gz.

File metadata

File hashes

Hashes for opensesame_plugin_audio_low_latency-10.6.2.tar.gz
Algorithm Hash digest
SHA256 f691e5e3775cfa20ddc11827562eadd1f2410768b42d4f264564a426561d2481
MD5 31bd6f9f11afde0e3dc3d49db0beeaf6
BLAKE2b-256 6e6af7b68b7a8a47969147cd264d523fab12facde68d3e7d3e6f8ef84ce15c05

See more details on using hashes here.

File details

Details for the file opensesame_plugin_audio_low_latency-10.6.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for opensesame_plugin_audio_low_latency-10.6.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 931cf5449219c67c632c1bfd88202f3ee8920deed40e966f305abd8601fa7759
MD5 ff756fcd173ef07b1b43f28fe3bd1ed6
BLAKE2b-256 45a3b87fc9abc09f716aa6fef42135aa3eb566caf304f5f9d4cc802854eb74d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page