Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement sound design #479

Closed
18 tasks done
Tracked by #689 ...
jbphet opened this issue Feb 2, 2021 · 7 comments
Closed
18 tasks done
Tracked by #689 ...

Implement sound design #479

jbphet opened this issue Feb 2, 2021 · 7 comments
Assignees

Comments

@jbphet
Copy link
Contributor

jbphet commented Feb 2, 2021

Below is the checklist that will be used to guide the process of adding sound to this sim:

Checklist for Adding Sound

  • Create a sound design document and work with the sound designer(s) to get to the point where enough has been
    worked out that it becomes desirable to start prototyping. For an example, please see the Molecules and Light Sound
    Design
    document. Done, see this link.
  • Create an issue for adding sound to the simulation, use the title "Implement sound design". Here is an example
    GitHub issue
    . Done (this is the issue).
  • Figure out if it's okay to turn sound on for the simulation. This will hinge upon whether there will need to be
    releases made off of master before the sound implementation is complete. Generally you'll want to turn sound on, but in
    cases where that isn't possible, skip the two sub-steps below, and the query parameters supportsSound and
    supportsEnhancedSound can be used to turn sound on for testing during development.
  • Explicitly turn off sound for any common UI components that now produce sounds that are not needed, if there are
    any. This is done by looking at the options and setting any sound players to Playable.NO_SOUND. Search through the
    code base for example usages.
  • Add any behavior for any common-UI sound generation that is different from the default behavior. This is done
    by creating a Playable (often a SoundClip instance) and passing it in as an option for the sound player.
  • Decide whether or not to have a separate "sound view" or to use the existing ScreenView files. Both approaches
    have been used, and both are legit, and it probably depends on how much sound generation is needed and whether adding it
    all to the ScreenView file(s) is likely to make the file too large and/or difficult to maintain. As of this writing,
    WavesScreenSoundView is an example of a separate class where the sounds are hooked to the model, and
    FrictionScreenView is an example of where sound was interwoven with the visual view code. Note that in some cases it
    is necessary to know what the user was doing that triggered the need for sound generation, and in these cases the sound
    generation will need to be inside the view element so that the code has access to all the needed information. An
    example where this often comes up is if different behavior is needed when a value was changed via keyboard interaction
    versus mouse or touch interaction.
  • Decide whether a "Sound Options" dialog is needed to allow designers to compare different sound design ideas in
    context. This has been found to be very useful when iterating on a sound design. There is more information on this in
    the User Guide, and [an example in the Tambo demo]
    (https://github.com/phetsims/tambo/blob/master/js/demo/SoundOptionsDialogContent.js).
  • Add sim-specific sound generation. See previously sonified simulations for examples on how to do this, but the
    general idea is to create sound generators and hook them up to the model and/or view elements that they are meant to
    sonify, all based on the sound design document.
  • Iterate on the sound design. Regular meetings and good note taking (generally in GitHub issues) have been found
    to be quite helpful for this. This is basically like the implementation process for all other portions of the sim, and
    involves publishing dev versions, getting feedback, refining the sim, rinse, and repeat. One observation: It seems to
    be more difficult for people to imagine how they will like a sound in context than a visual design element, so be
    prepared for a lot of iteration, and use the 'Options' dialog if and when it can help.
  • Once all of the sounds have been finalized, do a "mix" step where the primary sound designer goes through the
    sim and sets the volume level for all sim-specific sounds. Create a separate sub-issue for this. see Adjust relative sound levels #496
  • Once the sound design is thought to be complete, or nearly complete, publish a dev version and create a checklist
    of all of the sound designers and other stakeholders in the original sound design GitHub issue and ask them to either
    approve of the implementation or log their objections. Example:
    Finalize the sound implementation molecules-and-light#233 (comment) see Sound design review #501
  • Finalize the names of all sound files that have been added and get uncompressed versions of them and add them to
    the assets directory. Make sure the names match, e.g. bonk.mp3 in the sounds directory and bonk.wav in the
    assets directory.
  • If an options dialog was added or if content was added to an existing options dialog to support comparative
    evaluation of sounds, remove said content
  • If there were individuals who were only involved in the sound design and thus not already on the team or
    other lists in the credits, add them using the soundDesign key.
  • Once the sound design is approved, mark the issue as ready-for-testing and have it tested with the other
    aspects of the simulation through the publication process.
@jbphet
Copy link
Contributor Author

jbphet commented Feb 9, 2021

Here's a link to a prototype that was created a while back and is referenced in the sound design document. This link will probably not last forever: https://bayes.colorado.edu/dev/html/phet-io-wrapper-sonification/1.0.0-dev.113/phet-io-wrapper-sonification/balloons-and-static-electricity/html/balloons-and-static-electricity-sonification.html?sonificationFile=sonificationOptions&accessibility.

jbphet added a commit that referenced this issue Feb 10, 2021
@jbphet
Copy link
Contributor Author

jbphet commented Feb 10, 2021

A dev version with sound partially implemented has been published for us to use as a comparison point during future reviews. This one includes, among other things, the "slide whistle" sound for the balloon's drift motion and the more realistic grab and release sounds for the balloon. It also has sounds for move of the basic UI components.

Link: https://phet-dev.colorado.edu/html/balloons-and-static-electricity/1.5.0-dev.19/phet/balloons-and-static-electricity_en_phet.html

@jbphet
Copy link
Contributor Author

jbphet commented May 25, 2021

@Ashton-Morris: We're at the point where we need to finalize the sound files. In order to do this, I'll need .wav files for the following sounds that made it into the final sound design:

  • balloon-grab-006
  • balloon-hit-sweater
  • balloon-release-006
  • charges-in-wall-blip-002-muffled

@jbphet jbphet assigned Ashton-Morris and unassigned jbphet May 25, 2021
@Ashton-Morris
Copy link

I have also modified the file names assuming that you'd prefer that. Here are the files.

  • balloon-grab.wav
  • balloon-hit-sweater.wav
  • balloon-release.wav
  • charge-deflection.wav

@Ashton-Morris Ashton-Morris assigned jbphet and unassigned Ashton-Morris Jul 1, 2021
@KatieWoe
Copy link
Contributor

These sound seem ok in dev.35. On Win 10 Chrome

@KatieWoe
Copy link
Contributor

There have been a few potential sound issues (#533 and another incoming issue) so I don't want to close this yet. @Nancy-Salpepi https://docs.google.com/document/d/10YGIROBfW2u4DA6JAA6XZuP0mAmErsquIJjaZ_AB5sM/edit to describe the sounds in the sim, but I'm not sure if this is the document to look at for this issue. Can you clarify what should be looked for in this issue @jbphet?

@jbphet
Copy link
Contributor Author

jbphet commented Oct 29, 2021

The sound design has gone through several reviews and has been approved. It's in the 1.5 release branch, and that branch is on its 2nd RC, and I expect it to go out soon. I think it's safe to close this issue now.

@jbphet jbphet closed this as completed Oct 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants