phetsims / quadrilateral

"Quadrilateral" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
1 stars 3 forks source link

Initial sound design for Quadrilateral #4

Closed jessegreenberg closed 2 years ago

jessegreenberg commented 3 years ago

We are beginning to work on sound design in this sim. In discussion today we decided to add two Properties to the model that represent the difference in oposite angles for the quadrilateral, being angle1DiffAngle3Property and angle2DiffAngle4Property. When both of these are below a threshold angle, the quad is considered to be a parallelogram.

We could begin to tie sounds to these two Properties, @Ashton-Morris can you please let me know when they are ready or if there is any other logic that will be needed to support the sound design?

Ashton-Morris commented 3 years ago

Initial Audio Mockups: Currently we are focused on parallels, length, and angles. Here is how my mockup is currently working.

Screen Shot 2021-09-08 at 2 21 31 PM

There are two different ways to do the audio but they both essentially map the same way. There are just more steps to the Chromatic version.

The Chromatic version has the files fading into and out of each other as they go up and down in scale. Visually that looks like this in my software. (the white angled lines are the fade points)

Screen Shot 2021-09-08 at 2 39 41 PM
jessegreenberg commented 3 years ago

Looks good @Ashton-Morris, thanks for writing this up. This definitely helps for my understanding of it. I could start adding information to the model to support this (Properties for pairs of parallel sides and Properties for side lengths) once we get a go-ahead from @emily-phet @BLFiedler or others.

emily-phet commented 3 years ago

@jessegreenberg - I think we need to consider Ashton's description of the sound mapping above, and translate that into terms that use 1) side length (to change across octaves) and 2) the variable we discussed yesterday comparing opposite angles. I think this is possible, and would stay more closely aligned with the definition of what a parallelogram is.

Regarding which of the two sound design variants to implement - @jessegreenberg can you get started and provide an update when you have a sense of how much more challenging the chromatic vs non-chromatic approach will be? The chromatic one sounds more dynamic which may result in something more pleasing to the ear, but if it's a lot harder to get working the non-chromatic one would give us a chance to try out the mappings and from there we could decide if the more complex variant is worth the effort.

brettfiedler commented 3 years ago

Quick paste in of Jenna's comments in Slack so they don't disappear into the ether:

Ashton Morris I listened to both of the mock-ups. Two quick realizations I had: 1) I need more of this in my life! (there was something very calming about watching/listening to these) and 2) I have a very untrained ear. Then, I read the descriptions that you typed out. Wowza! I'm in the same camp as Brett - I found Mockup 1 a bit more pleasant to listen to overall, truly I like watching/listening to it - the sound of reverberation or something of that nature was a nice effect - didn't sound quite as sharp as Mockup 2. Again - purely qualitative impression from an untrained ear that taught piano for years but no longer gets to play much, so there's that. I tried to listen to these with and without my eyes closed, but I couldn't make the mapping in my head of what was happening. After reading the descriptions you typed out, I think it might have been for two reasons: 1) I expected (though perhaps not correctly), there would be a more differential/steeper gradient as the sides were stretched. It somehow felt like I was visually seeing more stretching/changing than I was hearing (particularly in the initial stretches where both vertices moved. I found it better with the tonal up/downs when the 2 vertical sides were no longer parallel). 2) There's a lot going on as we anticipated in our meeting discussion last week - the whole "whether or not 2 sides were parallel or not" wasn't coming through to me via the audio, but I also wasn't "listening" for that if that makes sense. It's like I tricked myself into anticipating what I thought I should be hearing in some weird way. I don't much appreciate feedback that doesn't give tangible steps forward :slightly_smiling_face:, so I'm trying to decipher my own thoughts into "what could we try next". I'm curious if others felt there needed to be a steeper gradient/change in audio with the changes that were visually observed when the lines remained in parallel? If yes, we could play with the scaling. If not, it's my untrained ear to blame. Might we want to think about separating the audio of the movement of the sides with whether or not the sides are parallel? Almost like, once the side length movements are complete, then we make some type of "goal state" sound that indicates parallel-ism - ha!? My two cents to keep the conversation going. Very much enjoyed toying with this, and it gives me even more inspiration to develop easily "feelable" haptic demos!

brettfiedler commented 3 years ago

Listened a few more times now. Upon considering Ashton's mapping above, I actually find that I prefer the Non-chromatic. As I mentioned, the chromatic is more pleasant, but I am still having trouble catching the mappings while things are moving around with the chromatic. It's a lot more distinct to me in the non-chromatic (and I think this is will remain true for me even if we play around with the range of pitches).

I'll echo Emily's suggestion of getting up and running whatever is low-cost time-wise/effort-wise, but I'd also possibly like to consider that we try a version that I think is the simplest possible soundscape for our task: one that isolates the "parallel" nature. I think for this, that means having a version that removes the angle and length modulations?

jessegreenberg commented 3 years ago

I read the sound documentation in tambo. I also reviewed BalloonVelocitySoundGenerator, which was really helpful and well documented. I have a better sense of how to implement this now.

However, I don't fully understand why the chromatic version will be harder to implement. @Ashton-Morris by "more steps" in the chromatic example do you mean more steps in the mapping for playback rate to change the pitch? If so, I would expect them to be the same amount of effort to implement. Or did you mean that there are more technical steps required to make the sound?

Also, I am wondering if the labels are correct in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-915555926? Maybe I don't understand the sounds yet, but the "Non-chromatic" example actually sounds like it is going up a chromatic scale while the "chromatic" example sounds more like whole tones to me.

jessegreenberg commented 3 years ago

Actually, maybe the image in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-915555926 is showing that this would be implemented with multiple sound clips that fade in and out of each other and so it wouldn't be mapping to pitch but to volume and the right sound clip to play?

Ashton-Morris commented 3 years ago

@jessegreenberg The non chromatic is labeled that because it slips in-between notes and on notes as it goes up and down (like a slide whistle). But the chromatic one skips over tones that are not in a chromatic scale (more like a flute) effectively making it seem like any two positions will sound somewhat harmonic and probably more pleasant.

The non-chormatic version would be easier because you would map an angle parameter to the playback speed/pitch of a sound source. In the chromatic version you'd first create the ability to fade into and out of multiple sound sources (or the same sound source played at different playback rates) and then map that to the angle parameter.

My guess is that the code used to make the lengthening sides turn into lower octaves can be used to create the Chromatic angle parts as well so maybe it wouldn't be harder after all.

Ashton-Morris commented 3 years ago

Actually, maybe the image in #4 (comment) is showing that this would be implemented with multiple sound clips that fade in and out of each other and so it wouldn't be mapping to pitch but to volume and the right sound clip to play?

Yes that one would be mapping to volume and the pitch would be pre chosen by the clips we select.

jessegreenberg commented 3 years ago

OK thanks!

jessegreenberg commented 3 years ago

In the above commit I added model components for sides, so they are aware of their lengths to support sound design. They are also aware of their slopes, so if "determine if two pairs of sides are parallel" is ever needed we can easily use that.

image

jessegreenberg commented 3 years ago

From https://docs.google.com/document/d/1OMU2DGyN8F_QGo_CkiAy4qCBeFe8BOOvA9ANzH7ZEbM/edit#

Ashton will provide sound clips for Jesse to add. We will see how they sound together and then work to fade them so they sound good/as designed

@Ashton-Morris reassigning to you for this, please toss it back to me when ready!

emily-phet commented 3 years ago

Just a note to @jessegreenberg - Let's discuss the model components in next week's Virtual Model meeting. I have some questions about the use of bottom/top and left/right, and slope that I'd like to talk through.

jessegreenberg commented 3 years ago

Sounds good! I believe they will be used to support the proposed sound design, which I might be able to add before next Tuesday if the assets are ready. If you would like to discuss before then let me know.

Ashton-Morris commented 3 years ago

@jessegreenberg I have added four files to this Audio folder. for the main sound. We can compare which sounds best.

John has some looping documentation somewhere. We used it for Gravity Force Labs Basics for Force if you need to look through the code.

Also since the same files will be playing simultaneously it would be best if they started at different start points so they would sound less repetitive. I would imagine if possible it would sound something like this in code: Play file as loop - start playhead or playing file at random point of the files duration.

This way if you had 4 same the file playing as a loop at the same time, they would all start at different times within that loop and the audio would have much more variation to the ears.

jessegreenberg commented 2 years ago

We reviewed the stat of design in a 9/21/21 meeting. Things that need to be done with the current prototype at this point:

@Ashton-Morris will also consider a different design and possibly create a mockup for it for next time. One suggestion was to map sounds only to pairs of parallel sides so that there are two sounds instead of four. Another suggestion was to only have a "success" sound that plays when a pair of sides become parallel.

Ashton-Morris commented 2 years ago

During the meeting today I showed some AV Mockups for the Sonification with a focus on the Parallel nature of the sides (only two sounds as opposed to 4 - one for each side). I have exported them for others to view.

jessegreenberg commented 2 years ago

I built a new version with improvements to the sound design discussed in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-924337371:

https://phet-dev.colorado.edu/html/quadrilateral/1.0.0-dev.4/phet/quadrilateral_en_phet.html

jessegreenberg commented 2 years ago

We discussed https://github.com/phetsims/quadrilateral/issues/4#issuecomment-929654068:

The favorites are

@jessegreenberg will implement these before next week though we way want to try others in the future.

Everyone will test the prototype in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-941122356 and after playing with it we will discuss improvements for that design.

Ashton-Morris commented 2 years ago

I built a new version with improvements to the sound design discussed in #4 (comment):

https://phet-dev.colorado.edu/html/quadrilateral/1.0.0-dev.4/phet/quadrilateral_en_phet.html

As far as aesthetics go, I liked Sound One and Sound Three the best. Also the subtle touch of fading in and our the audio when you touched and released it sounded better.

Overall though to me the mapping didn't feel like it "meant" anything. I tested it with four fingers and sometimes I would make pleasant sounds and sometimes unpleasant sounds but they didn't relate to any sides being in parallel or not. Because of the mapping they just had the possibility of being pleasant or unpleasant. I'll brainstorm how to improve this.

brettfiedler commented 2 years ago

Roping @terracoda and @jbphet into this issue.

I mocked this up for everyone to reference while testing the sim as a whole, but was waiting for the quick change to multitouch to rope the whole quad channel in. However, it might be helpful for anyone testing the sound right now to get a sense of what things we'll be asking people to do, so you can better make sense of what the sonifications are trying to achieve:

Please consider the following tasks to guide your interaction (try to accomplish as quickly and smoothly as possible where you can):

  • Create parallelogram shape(s). Move different vertices and sides to make different shapes and return to a parallelogram.
  • While maintaining a parallelogram shape, transform the current parallelogram into any other parallelogram
  • While maintaining a parallelogram shape, transform the current parallelogram into a mirrored parallelogram
  • While maintaining all side lengths, transform the current parallelogram into a mirrored parallelogram
  • If possible with your input method, using two hands (or two contact points), and while maintaining all side lengths, transform the current parallelogram into a mirrored parallelogram
brettfiedler commented 2 years ago

(re: 1.0.0-dev.4) This is a lovely music tool and I think we should publish this elsewhere for people to have that experience (1 & 3 sound good aesthetically to me as well. 3 definitely for the thriller ambiance).

That being said, I do think this particular sonification scheme (mapping pitch to side lengths) is pushing me not toward creating parallelograms in general (maybe only as an intermediate step), but very specifically to a square where the tones all seem to "line up" and in some cases resolve to some "pure" sound.

That there can be either really high tension or some discordant intervals while I have successfully made a parallelogram shape feels counter to the task as well.

edit: Another thought: I find myself avoiding small shapes and making the lines longer because the lower pitch is more pleasant to listen to even when there are discordant tones.

edit edit: Oh, duh. Sorry. The sound mapping is also on the angle? Not just the side lengths. I realized I was not able to successfully do the "Maintain all side lengths and transform into a mirrored parallelogram" in this scheme since the pitch on each angle necessarily changes as they pass through 90 degrees and invert. So - that is another thing to keep in mind about this scheme.

jessegreenberg commented 2 years ago

I made a new version with the sound designs in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-941330768 added to the sim.

https://phet-dev.colorado.edu/html/quadrilateral/1.0.0-dev.5/phet/quadrilateral_en_phet.html?showVertices

Ashton-Morris commented 2 years ago

I spent some time trying other ideas this past week and wanted to post the videos for our record.

jessegreenberg commented 2 years ago

Reviewing https://github.com/phetsims/quadrilateral/issues/4#issuecomment-946949312 with the team:

We also discussed the new sound designs in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-946949312 and noted they were great continuous representations of the quadrilateral as a shape. @emily-phet suggested we should try a different paradigm. Instead of continuous feedback we try something like "success sounds" coupled with sounds that play when you are in proximity to the goal. The other prototypes are good at conveying shapes but the continuous feedback is not quite helping reach the goal of finding a parallelogram.

We discussed trying out the sound in ratio-and-proportion in quadrilateral. There is a "plucking" sound that happens when going closer/farther to in-proportion. There is also a "success" sound and a moving "in-ratio" sound. @Ashton-Morris said he would review them and demonstrate how they might be used in quadrilateral.

Ashton-Morris commented 2 years ago

Here are the sounds for a different paradigm. Audio files here.

  1. One which has a sound for clicking/locking into parallel
  2. Unlocking out of parallel
  3. And a loop for moving while in parallel

There are 4 different sets to try.

Ashton-Morris commented 2 years ago

Here is a mockup with the sounds and mapping from Ratio and Proportion synced to the visuals of a quadrilateral. @emily-phet Feel free to tag anyone or we can wait and review it in our next meeting.

https://drive.google.com/file/d/1iyl55HqfO_AmkPwXT0fkb5T38R7etc_m/view?usp=sharing

jessegreenberg commented 2 years ago

The above commit was the first pass at the success sounds.

In the meeting today we wanted to 1) Make it so that the "moving success" sound cannot play when dragging a single vertex. 2) There is a bug where the quad goes in and out of the parallelogram state while dragging a side. That should not be possible. 3) Don't give feedback after pressing the ResetAllButton, sound should be muted when Properties are changing from this.

jessegreenberg commented 2 years ago

See https://github.com/phetsims/quadrilateral/issues/26 for an issue for 2) above.

jessegreenberg commented 2 years ago

The above commits accomplish 1) from https://github.com/phetsims/quadrilateral/issues/4#issuecomment-958085289, as well as 3) for all design paradigms so far. 2) will be more difficult and beyond the scope of this issue, it will be continued in https://github.com/phetsims/quadrilateral/issues/26. THis is on hold until we get to the bottom of that issue.

brettfiedler commented 2 years ago

One quick change prior to interviews:

Let's assign Collection 1 of the Success Sounds as the default sound set on load. Everyone indicated this one was pleasant, if not their favorite.

jessegreenberg commented 2 years ago

Sounds good, "Collection One" is the default now for that paradigm.

jessegreenberg commented 2 years ago

Notes from design meeting on 11/16 -

Ashton-Morris commented 2 years ago

Adding some sounds.

To resolve "There is a small gap in the audio" This is a seamless loop that should work without gaps or clicks.

These two are sounds from other sims that might resolve this JB issue "There is nothing that indicates that you are maintaining a parallelogram with a keyboard because moving a side will always keep the quad in parallelogram."

brettfiedler commented 2 years ago

Reprioritizing to address the comments in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-970622640 that should be fixed prior to interviews next week.

jessegreenberg commented 2 years ago

There is a delay between hearing the "maintenance" sound.

Fixed in https://github.com/phetsims/quadrilateral/commit/41e456d2f8461a53fdb2ccd6dda989dbd2e32af4.

You shouldn't be able to hear the "maintenance" sound if manipulating a vertex.

Fixed in https://github.com/phetsims/quadrilateral/commit/71c0caf2061bc6f596dd3971b87b1763d926ea0b.

There is a small gap in the audio when the "maintenance" sound is played for a long time

Fixed in https://github.com/phetsims/quadrilateral/commit/d58ab43d3088d482afb7637a250d116917423439

jessegreenberg commented 2 years ago

https://github.com/phetsims/quadrilateral/commit/d58ab43d3088d482afb7637a250d116917423439, I fixed a bug in the "Parallels Volume" paradigm where the sim would crash. But that concludes items required for interviews in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-970622640.

Reassigning back to @BLFiedler.

brettfiedler commented 2 years ago

I believe the above "necessary" issues are fixed from what I can tell. If @jbphet or @Ashton-Morris wanted to give it a try and see if any of the issues still crop up in https://github.com/phetsims/quadrilateral/issues/4#issuecomment-970622640, that would be great but not mandatory.

Dev link for interviews: https://phet-dev.colorado.edu/html/quadrilateral/1.0.0-dev.17/phet/quadrilateral_en_phet.html?showPointerAreas

Let's keep this issue open until after this round of interviews - then we'll carry over any open comments above into the next design iterations.

brettfiedler commented 2 years ago

Closing this issue as the general sound implementation issue in favor of #6. New issues incoming for new sounds as a result of the interviews.