phetsims / ratio-and-proportion

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

Implement sound design #9

Closed jbphet closed 4 years ago

jbphet commented 4 years ago

@Ashton-Morris, @emily-phet, and I (@jbphet) did some brainstorming on the sound design for the proportion sim and thought we should write some of these things down.

jbphet commented 4 years ago

I made a quick recording to demonstrate beat frequencies. In the explanation at the beginning I probably should have said that I'm "playing the same note on two different strings" instead of that I'm "playing the same note".

Here's a link: https://drive.google.com/file/d/1AmrwecgS4_QDzztTGWdeK7pM2TMpIomE/view

zepumph commented 4 years ago

In the above commit. I made a refactor that exposed what I call the proportionFItnessProperty in ProportionModel. This is a value between 0 and 1. When 1 the proportion is "perfect", and 0 means it is outside of the tolerance range. I did this with the hope that it would be easy to monitor for a simple "fitness" sound that can change in the same way as we do for color. Let me know if I can be of more help.

In my opinion having something (even very simple) implemented by next meeting seems very valuable for discussion. Good luck!

emily-phet commented 4 years ago

@Ashton-Morris - please propose something (could be related to beat frequencies or anything else) that is reasonably pleasant and can be added to the sim quickly. I'd like to get some sound in asap so there's some auditory feedback available as the team brainstorms sound and other features. Let's start with something that aligns with the color change in the sim, as @zepumph indicated.

@jbphet @zepumph Please work together to add the first sound. @jbphet if you're able to begin showing @zepumph the ropes on how to add sound to sims with Tambo, that would be ideal, but if depending on where you're at with your other rocks, you might do this later in the quarter and proceed with whatever is fastest now.

Ashton-Morris commented 4 years ago

@emily-phet I have a few ideas ready but I cant seem to properly clone the directory that has Proportion.

It would be much quicker if someone could do a simple screen recording of a proportion slider slowly going up and down. I can then do a few mockups of how sound would work and can upload it here.

If anyone is willing to do that please let me know.

emily-phet commented 4 years ago

@Ashton-Morris - I'll try to do a screen recording for you later today. Here's a link to the latest dev version, in case that's helpful in the meantime. https://bayes.colorado.edu/dev/html/proportion/1.0.0-dev.5/phet/proportion_en_phet.html

Ashton-Morris commented 4 years ago

@emily-phet Don't worry about a screen recording, I can do that. I didn't know there was a dev version. That all I needed.

I'll work on some mockups asap

emily-phet commented 4 years ago

@Ashton-Morris I figured that might have been the issue. :)

When you make the screen recording, keep in mind that in some scenarios, learners will be moving each object one at a time, but in the more desirable scenarios, they're moving both at the same time (e.g., on a touch screen, or with tangible objects). Just thought that might impact your thoughts re sound.

Ashton-Morris commented 4 years ago

I worked on some ideas this morning. You should be able to view these in your browser. I will do my best to explain my thinking with each one. @emily-phet Please assign the proper people for review

emily-phet commented 4 years ago

@Ashton-Morris Thanks for these! @zepumph @jbphet Can we have a version with two sound options - with "Proportion-Vibrato" and "Proportion-Random Clicks" (random clicks as the default)? If it's not time consuming to do, having a third option of "Proportion_C_Major_Sine" would be nice to have in as well.

To ensure those playing with at-home tangible versions has some auditory feedback to consider, this would be my top priority effort for Proportion development this week.

emily-phet commented 4 years ago

@Ashton-Morris Here are my thoughts:

Ashton-Morris commented 4 years ago

I have a single click and a loop of them below for implementation.

In my DAW I have the clicks set to randomize between 0 and +16 semitones. The Randomizer's rate (like the rate of an LFO) is set to 30HZ. Then its set to 100% out of proportion = 100% of that randomizer effecting the clicks, and In proportion = 0% that randomizer effecting those clicks.

proportion-random-clicks-loop.mp3 proportion-random-clicks-single.mp3

For the Proportion_C_Major_Sine you could play sine's with web audio. That would be: Play C3 when it is 100% our of proportion and then attach the volume of the sine waves E3 and G3 to how in proportion the sim is. Thats how I had it set up.

Edit: These things can be tricky with web audio, we can talk about implementation hurdles later today ^__^

zepumph commented 4 years ago

I, with tons of great help from @jbphet, added modes for the vibrato and random clicks sounds. The random clicks is on by default. The vibrato is currently just two sine waves at 220hz where one can be moved up to 230hz depending proportion fitness.

zepumph commented 4 years ago

After the above commits, we successfully have mechamarkers input working with the two sounds discussed during today's meeting.

Summary of what is currently in the sim:

Next I will try to add C_Major sine as the final step for the day.

zepumph commented 4 years ago

Above I added the CMajor sine wave generator. It sounds really fun. I'm excited to be working on the sound design for this sim. I got perhaps a bit carried away and added a high C (C4) only when the proportion was perfect. This made for a direct cue from sound for when the user got it totally right. I'm not sure that this implementation is the best, but I really like a specific sound for when (and only when) the "fitness" of the proportion is exactly perfect (in the model a value of 1).

Dev version coming soon.

brettfiedler commented 4 years ago

@terracoda noted that the sound plays continuously on keyboard focus of either cursor without directional input.

It's not clear what the preferred feedback should be right now, but something we should decide at some point.

zepumph commented 4 years ago

Yes that was done purposefully. After I tried it both ways (based on focus/blue and based on keydown/keyup), it felt the committed way was much easier to tell if there was success or not because it was much more continuous.

brettfiedler commented 4 years ago

A note from an interview using 1.0.0-dev.9:

Update: Note from an interview using 1.0.0-dev.10:

The sound design strategy is a success for helping them locate the proportion though! The presence of the sound has been remarked as helpful by all interviewees (x3)!

Other general questions I'm not certain about, but come to mind from watching learners:

emily-phet commented 4 years ago

@BLFiedler Glad to hear the sound cueing seems helpful for finding the target ratio! Please create a spreadsheet where you can summarize your findings for each interview, regarding specific categories - visual display, auditory display, interaction pathway, etc. You'll also want some fields for sim version, device, and some basic demographics. Let's add on to this as we do more interviews. You might reach out to Brianna (she's on Slack) for an example of some spreadsheets she'd made in this ballpark.

Also, can you 1) clip out the proportion section of these interviews, and 2) edit out all screen area that is not the sim (e.g., people's browser tabs, etc.). Sometimes there is identifying info in the top of the browser window. You can use Camtasia to do this really fast. Let me know if you need some help with this. 3) Put all of these de-identified clips in a shared folder, for the team.

emily-phet commented 4 years ago

@jbphet @Ashton-Morris Just a heads up, we'll be collecting more feedback re sound from the design team this week. So for this week sound is otherwise on hold, unless there are some specific topics you'd like to bring up when we meet on Tuesday.

emily-phet commented 4 years ago

A few thoughts on the random click sound - after playing with the sim + mechamarkers for a bit, I think the random click sound is the least helpful, and most challenging to listen to after awhile. I think tuning more when the change in rate happens will help. Thought not sure if it will help enough to put this sound as the frontrunner. Implementation of the grid representation could help with the "tuning" process for this sound, which may happen this week.

emily-phet commented 4 years ago

More thoughts - we should probably start a sound design doc to put these.

emily-phet commented 4 years ago

@zepumph Can you make "Vibrato" be the default sound (leaving all current options)?

zepumph commented 4 years ago

Done above.

Ashton-Morris commented 4 years ago

I came up with more examples of how it could sound when you are in proportion but you are also staying in proportion and moving up and down. @emily-phet please assign people as necessary.

emily-phet commented 4 years ago

@Ashton-Morris These are wonderful! I love these staged approaches you're taking.

I believe we want learners to experience this sequence: 1) something going "out of phase" then "into phase" [corresponding with the sim starting at ratio (good), then going out of ratio as the learner first moves the object, then going back to ratio (good) as learner nears same or new ratio arrangement] They'll hear this multiple times, as the move the markers around exploring the space. 2) going from "in phase" (good) to "better" [corresponding to being at ratio, then moving the markers such that markers stay at ratio]. In your demos above, all had a feeling of transition in them, but not all had a clear feeling of going from "good" to "better". Most had a feel (to me) of going from "good" to "different".

Proportion_Strings and Proportion_Applause had the most "good" to "better" feel to me. The transition to the strings in Proportion_Strings felt like a bonus, as it's recognizably going from synthesized techo-sound to a recognizable instrument (which can be easily talked about verbally and is also easier on the ears).

The transition including the applause in Proportion_Applause was also clearly cueing "good" to "better", once it was clear you were hearing applause. When it first starts (and for learners it would likely start/stop/start/stop for a bit until they get the hang of the movement), it's not 100% clear it's applause. But the basic idea of it was very nice.

It would be great to hear the following:

And, because I know you like a challenge - double bonus if any of these can include a cello sound. Dor (father of this sim idea) plays the cello. :)

This Tuesday, let's discuss how this kind of staged sound could be implemented in the sim. I'll ask @zepumph to join for part of our Tuesday sound design meetings.

emily-phet commented 4 years ago

@BLFiedler please add any thoughts you have as well.

brettfiedler commented 4 years ago

Stage 2 (in prop): My general impression is that the movement toward a neutral, single tone (from something else) is very successful in generating that feeling of "I found it!". This sound can possibly be more pleasant to listen to for a long period of time, but I don't think it HAS to be. What we need it to be is pleasant enough, but not as nice and rewarding as the next tone. This leads me to...

Stage 3 (maintain prop): I think Emily mentioned this, but overall this sound should be BETTER (oh my, subjective), than the in proportion sound. This may be richer or more pleasant or runner, but also should not at all sound like the sounds we heard before (out of proportion or searching sounds). Some of the examples re-introduce some reverb/vibrato (I apologize for confounding those two), which to me may cue the learner to believe they've left the Success they have already achieved, when in fact they've reached an even higher success. I like the Strings for that. I like the idea of the applause for the same reason, but personally find it a little jarring.

I'm going to distinguish between two phases in the Out of Proportion (Stage 1)

Stage 1A (way out of prop): I think both the kind of reverb-y vibrato, as well as the staccato frequency, are successful in generating that sense of "I'm searching for something and it's guiding me toward it". Personally, I find the staccato effect to give stronger feedback for distance from proportion and the sense that I am looking for something.

Stage 1B (nearing prop):

  1. The dissonant sine waves "slow down" and resolve into the success tone, which I think is smooth and "feels good". However, it's a little muddy when you're near the proportion but not quite on it.
  2. The staccato frequency becomes very rapid and the success tone fades in. Without playing sim version with this implemented, I get the sense that this is a better contrast from out of proportion to in proportion. I would actually like to hear a version where there is a more rapid fade-in of the success tone (though we may need to consider tolerance and the visual fade-in as well?)
Ashton-Morris commented 4 years ago

@zepumph I have some files for you which are all stored here. Some of these are .wav so we can have better loops during the prototype phase.

I added a staccato sine but realistically that's something we'd need to do in web audio programmatically.

applause-loop.wav staccato-sine.mp3 strings-loop-c5.wav cello-loop-c4.wav synth-strings-loop-c4.wav bowed-piano-loop-c4.wav cello-tremolo-loop-c4.wav

jbphet commented 4 years ago

I listened to the video demos after today's sound design meeting and agree with what was essentially decided in the meeting, which is that we should prototype the "Proportion_Strings" version and try adjusting some of the tolerance parameters to see if we can get it to work in a way that is viable.

jbphet commented 4 years ago

I'm going to unassign myself for now, since I don't think there is anything specific that I need to contribute at this point. @zepumph - I'm happy to help with the implementation if I'm needed, just assign it back to me if so and/or we can set up a time to collaborate on it.

zepumph commented 4 years ago

After lots of design discussion today, with @Ashton-Morris playing many possibilities for us, we have decided on the following for the next steps:

zepumph commented 4 years ago

Marimba staccato plus tremolo to third is in place on master and the default sound. I also have turned off sound when the fitness is at 0. Next steps are to add in choir and pizz sound options once @Ashton-Morris has them ready. Over to him.

emily-phet commented 4 years ago

@zepumph re

We want to "play with silence," and to remove the continuous sound when the ratio "fitness" is equal to 0. This means we only get sound when you are "getting close" to the ratio. Tagging @emily-phet to see if she disagrees.

The plan sounds great to me!

Ashton-Morris commented 4 years ago

@zepumph I have the files for you here

choir-ahhh-loop.wav pizz-C4.mp3 pizz-C3.mp3

emily-phet commented 4 years ago

To discuss on Tuesday:

zepumph commented 4 years ago

I added pizz staccato options and the choir ahh velocity option. See master or https://phet-dev.colorado.edu/html/ratio-and-proportion/1.0.0-dev.21/phet/ratio-and-proportion_en_phet.html. Sorry to cut it short to our meeting time!

zepumph commented 4 years ago

Nodes from today's design meeting

Action steps:

zepumph commented 4 years ago

Clean up above.

zepumph commented 4 years ago

Above I added staccatoMaxFrequency, so that we can prototype the tremolo speed. I also doubled it from 40ms to 80. Here is an example of it doubled even again:

http://phettest.colorado.edu/ratio-and-proportion/ratio-and-proportion_en.html?ea&brand=phet&staccatoMaxFrequency=160

zepumph commented 4 years ago

Above I added chords and arpeggio staccato success sound options. All of these have some build in reverb that @jbphet helped me get set up using soundManager.reverbLevel. I don't know that it will be a long term strategy, but it seems valuable to have to this week's testing.

I will make a dev version shortly to share this work.

zepumph commented 4 years ago

https://phet-dev.colorado.edu/html/ratio-and-proportion/1.0.0-dev.22/phet/ratio-and-proportion_en_phet.html

emily-phet commented 4 years ago

Thoughts:

Staccato Success Sound:

Ratio Fitness Sounds: The pizz sounds sound better to meet at the high rate as you approach success, but I like the individual marimba sounds a bit more. Let's try bringing the max rate for all staccato "Ratio Fitness Sounds" sounds down by 50%, and expand by ~25% the range at which you can hear these sounds. @zepumph let me know if you have any questions on this.

zepumph commented 4 years ago

single arpeggiated chord - too long, I think

I decreased the time of arpeggiation from .25 seconds to .1 second, and I like it a bit more. Actually I think it is my favorite staccato success. I feel like it helps solve the issue you had with the single "chord" strategies too. what do you think?

single high note - I liked this one best, but I think the single sound needs to feel richer somehow, and stand out more.

Agreed! I wonder if we could get a few options from @Ashton-Morris on "fuller" sounds to test out.

The pizz sounds sound better to meet at the high rate as you approach success, but I like the individual marimba sounds a bit more.

I think that perhaps we would like the marimba a bit more with less attack, and I think we would like the pizz a bit more with less reverb. Not sure which one I prefer.

Let's try bringing the max rate for all staccato "Ratio Fitness Sounds" sounds down by 50%

I doubled it from 80ms to 160ms. You can also fine tune this with ?staccatoMaxFrequency=X.

and expand by ~25% the range at which you can hear these sounds.

I increased the tolerance from .1 to .125, you can fine tune this with ?tolerance=X. Also please note that if this tweaking isn't cutting it, we can raise the priority and/or try to finish design on tolerance over in #14.

Please review.

emily-phet commented 4 years ago

@zepumph I tried, using the query parameters listed above, adjusting the tolerance (which worked for me) and the staccatoMaxFrequency (which I couldn't get to work). Can you confirm that this works, and also remind me of any symbols I need to include if using two query parameters (isn't there an ampersand needed or something?). Note, I was trying the query parameters individually just now, so combining two query parameters is not my main issue...

Ashton-Morris commented 4 years ago

Sounds Incoming

For the success sounds. I think the arpeggio works better than the chord stab because rising major arpeggios have been used to indicate success a lot in our culture/media. It's easier to instantly grasp

zepumph commented 4 years ago

@emily-phet I was able to reproduce your problem. I fixed it in master above. Please try the above link again, and note that the first query parameter gets prefixed with a ?, and each subsequent gets a &, so phettest can look like:

http://phettest.colorado.edu/ratio-and-proportion/ratio-and-proportion_en.html?brand=phet&ea&staccatoMaxFrequency=20&tolerance=.3

zepumph commented 4 years ago

There are a lot of sounds in. It would be good to get some feedback on them, as well as the ones in the sim already, before doing the next batch of iteration in the sim. I personally like how some of the sounds have some reverb at the end of the note/chord. I think that will work well if someone stays on the ratio, and then we can fade it out when going out of proportion. I think my favorite is the glock-marimba arpeggio. I think it could fit nicely with the choir velocity sound.

zepumph commented 4 years ago

That said, I will exchange out the pizz sounds, as we have already discussed that.

emily-phet commented 4 years ago

Here are some thoughts:

Staccato Max Frequency:

Timbre

For the sounds @Ashton-Morris added,

@zepumph - Can you add the ding-ring-out as an option to the success sound list (feel free to remove any you think aren't being useful anymore from that list).

Subtle difference in sound when above/below success point.

Balancing pickup/drop sounds

I also have some additional thoughts on tolerance (I think we should try having a 4-gridline total range of feedback across the board). I'll put these comments in #14.

jbphet commented 4 years ago

Thoughts: