Skip to main content

Misophonia Stimuli Organization Using Python

Project description

PyPI-Server

MisoSOUPy

Misophonia Stimulus Organization Using Python

A Python package to customize stimuli for experiments on misophonia based on participants’ self-reported triggers.

About

Given the individual variability in sounds found to be triggering in misophonia, research experiments benefit from personalizing the stimuli for each participant. For instance, if a participant is bothered by office sounds but not chewing sounds, a study aiming to observe the effects of trigger sounds on performance wouldn’t accurately capture the phenomenon if only chewing sounds were used in the experiment.

MisoSOUPy exists to assist researchers in optimizing their experimental stimuli for each participant via a user-friendly selection process onscreen. Specifically, MisoSOUPy does the following:
  1. imports a list of sounds/stimuli that an experimenter has access to;

  2. displays the names of each sound in alphabetical order for participants to select which ones they find triggering (or not triggering);

  3. allows further refinement of the personalized sounds by requesting participants rank order the sounds they selected; and

  4. outputs a list of all sounds selected and ranked by the participant into a .txt file, including filenames for each sound for easy importation into a separate experimental paradigm.

Examples

In the command window, you will first be prompted to supply the participant number (or press ‘Enter’ for testing) as well as which sound list to select from, if multiple are found.

./docs/media/0_MisoSoupy_DemoVid.gif

Example: Typing participant “sub01” and selecting “sound_list.csv”

Participants then see an instruction screen. Options are customizable, depending on which categories of sounds (and how many stimuli in each) are desired.

./docs/media/instructions2.png

Example: Instructions for selecting both Trigger and Neutral sounds, at least 5 in each.

./docs/media/instructions3.png

Example: Instructions for selecting only Trigger sounds, at least 4.

Participants select sounds by clicking the box next to the name.

./docs/media/4_MisoSoupy_DemoVid.gif

Example: Selecting trigger sounds from the FOAMS sound list

For large stimulus sets, multiple pages may exist. Participants may click between pages and change answers as they go.

./docs/media/1_MisoSoupy_DemoVid.gif

Example: Selecting trigger sounds from the NaturalSounds165 sound bank (Norman‐Haignere et al., 2015), utilizing the back button.

If fewer sounds than the required number are selected, the participant begins selection again.

./docs/media/7_MisoSoupy_DemoVid.gif

Example: Selecting too few sounds leads to an error screen.

Once trigger sounds are selected, participants are presented with their selections and asked to rank order their top choices (corresponding to the number of desired sounds set by the experimenter) by clicking the box next to the name.

./docs/media/refinement1.png

Example: Instructions for refining sound selections, ranking the top 3.

./docs/media/5_MisoSoupy_DemoVid.gif

Example: Ranking trigger sound selections from 1 (more triggering) to 3 (less triggering).

When more sounds are selected than are needed for an experiment, not all sounds will be ranked. Refining the top sounds helps the researcher keep the number of sound choices consistent across participants.

./docs/media/2_MisoSoupy_DemoVid.gif

Example: Ranking top 5 trigger selections, leaving the rest blank.

If neutral sound selections are also desired for the experiment, the process may be repeated with neutral sounds. Participants see the same list again, with their previous (trigger) choices grayed out. They then rank their selections as before.

./docs/media/6_MisoSoupy_DemoVid.gif

Example: Selecting neutral sounds from the remaining items, then ranking top 3.

When ranking sounds, choices may be reset and changed if necessary.

./docs/media/3_MisoSoupy_DemoVid.gif

Example: Ranking top 5 neutral sounds, utilizing the reset button to make changes.

After selecting and ranking sounds, the participant’s choices will be saved to a tab-delimited .txt file.

./docs/media/data1.png

Example: Sample output from selection and ranking of FOAMS stimuli.

./docs/media/data2.png

Example: Sample output from selection and ranking of NaturalSounds165 stimuli (Norman‐Haignere et al., 2015).

./docs/media/data3.png

Example: Sample output from selection and ranking of FOAMS stimuli for trigger sounds only.

./docs/media/data4.png

Example: Sample output from selection of FOAMS stimuli for both trigger and neutral sounds, without the ranking step.

Installation

MisoSOUPy has been tested with Python 3.8.

To install MisoSOUPy, run the following command:

pip install misosoupy

To install MisoSOUPy from source, clone the repository:

git clone https://github.com/miso-sound/misosoupy.git

Then run the following command:

pip install .

Setup

To use MisoSOUPy, open and run run_misosoupy.py

By default, MisoSOUPy will request participants select and rank their top 5 trigger and neutral sounds. To change these default settings, edit config.ini

Example: change `step_select_neutral` to `False` in `config.ini` to only have participants select trigger sounds.

# Request participants to select their least triggering (or neutral) sounds. If triggering sounds are selected first, these options will remain in the list but appear grayed out. Step_select_sound_list must be True for this option to be True. (Default = True) step_select_neutral = True

Example: change the value for `num_items_to_select` in `config.ini` to match how many stimuli per category are needed for the experiment.

# Minimum number of sound labels participants must select in each sound category. If fewer labels than this number are selected, participants see an error screen and must restart. If step_refine_sound_list = True, participants will also rank order this number of sounds. Default = 5.

num_items_to_select = 5

Put a folder with your sound files (or a .csv of the sound names, see FOAMS_sound_list.csv for an example) in the /misosoupy/assets/ directory. Sound labels will be derived from the file names (or .csv) in this folder for presentation by MisoSOUPy.

Making Changes & Contributing

You can consult the contributor’s guide for more information on how to contribute to MisoSOUPy.

Note that this project uses pre-commit, please make sure to install it before making any changes:

pip install pre-commit
cd misosoupy
pre-commit install

It is a good idea to update the hooks to the latest version:

pre-commit autoupdate

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

misosoupy-0.1.3.tar.gz (66.1 MB view details)

Uploaded Source

Built Distribution

misosoupy-0.1.3-py3-none-any.whl (20.2 MB view details)

Uploaded Python 3

File details

Details for the file misosoupy-0.1.3.tar.gz.

File metadata

  • Download URL: misosoupy-0.1.3.tar.gz
  • Upload date:
  • Size: 66.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.13

File hashes

Hashes for misosoupy-0.1.3.tar.gz
Algorithm Hash digest
SHA256 dae355b9b9f64885c18045460a1e98e05f7a57f179ad81449b293c0e54e1db8b
MD5 6578f36c988734b49b5fbe38d6b0b98b
BLAKE2b-256 721f786d0db9b6e4e21ff78bec9d9d693e12d5be981a57667dc731492b897aab

See more details on using hashes here.

File details

Details for the file misosoupy-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: misosoupy-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 20.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.13

File hashes

Hashes for misosoupy-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ffcedb46d119270212663b06e52db5d2fc5eddc15a882eaed2f43d92f22edd59
MD5 09d0116d34fe46526d00cf8d36d47f83
BLAKE2b-256 ae9a7be8a729da885fc0d8b580cf3d932b8a5bd6a8c44358a6b8255a27f87cea

See more details on using hashes here.

Supported by

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