Skip to main content
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

Metadata

Release files for misosoupy 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for misosoupy 0.1.3
File Size Uploaded Provenance
misosoupy-0.1.3.tar.gz 66.1 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for misosoupy 0.1.3
File Interpreter ABI Platform
misosoupy-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 86.3 MB

Release files / misosoupy-0.1.3.tar.gz

Download URL misosoupy-0.1.3.tar.gz
Size 66.1 MB
Tags Source
SHA-256 checksum
How to use checksums
dae355b9b9f64885c18045460a1e98e05f7a57f179ad81449b293c0e54e1db8b
BLAKE2b-256 checksum
How to use checksums
721f786d0db9b6e4e21ff78bec9d9d693e12d5be981a57667dc731492b897aab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.13

Release files / misosoupy-0.1.3-py3-none-any.whl

Download URL misosoupy-0.1.3-py3-none-any.whl
Size 20.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ffcedb46d119270212663b06e52db5d2fc5eddc15a882eaed2f43d92f22edd59
BLAKE2b-256 checksum
How to use checksums
ae9a7be8a729da885fc0d8b580cf3d932b8a5bd6a8c44358a6b8255a27f87cea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.13

Security for misosoupy 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page