From 54419ea30e069092d212e582064bb27c5cf1c158 Mon Sep 17 00:00:00 2001 From: jbphet Date: Mon, 28 Oct 2019 16:53:45 -0600 Subject: [PATCH] moved mass and force sound generators from basics to full version, see #181 --- .../view/ForceSoundGenerator.js | 131 ++++++++++++++++++ .../view/MassSoundGenerator.js | 72 ++++++++++ sounds/license.json | 26 ++++ sounds/rubber-band-v3.mp3 | Bin 0 -> 3291 bytes sounds/saturated-sine-loop-trimmed.wav | Bin 0 -> 44204 bytes .../scrunched-mass-collision-sonic-womp.mp3 | Bin 0 -> 1567 bytes 6 files changed, 229 insertions(+) create mode 100644 js/gravity-force-lab/view/ForceSoundGenerator.js create mode 100644 js/gravity-force-lab/view/MassSoundGenerator.js create mode 100644 sounds/license.json create mode 100644 sounds/rubber-band-v3.mp3 create mode 100644 sounds/saturated-sine-loop-trimmed.wav create mode 100644 sounds/scrunched-mass-collision-sonic-womp.mp3 diff --git a/js/gravity-force-lab/view/ForceSoundGenerator.js b/js/gravity-force-lab/view/ForceSoundGenerator.js new file mode 100644 index 00000000..48bbfa39 --- /dev/null +++ b/js/gravity-force-lab/view/ForceSoundGenerator.js @@ -0,0 +1,131 @@ +// Copyright 2019, University of Colorado Boulder + +/** + * sound generator for changes to the force between two masses + * + * @author John Blanco (PhET Interactive Simulations) + */ +define( require => { + 'use strict'; + + // modules + const gravityForceLab = require( 'GRAVITY_FORCE_LAB/gravityForceLab' ); + const merge = require( 'PHET_CORE/merge' ); + const SoundClip = require( 'TAMBO/sound-generators/SoundClip' ); + + // constants + const FADE_START_DELAY = 0.2; // in seconds, time to wait before starting fade + const FADE_TIME = 0.15; // in seconds, duration of fade out + const DELAY_BEFORE_STOP = 0.1; // in seconds, amount of time from full fade to stop of sound, done to avoid glitches + const PITCH_RANGE_IN_SEMI_TONES = 36; + const PITCH_CENTER_OFFSET = 2; + + // sounds + + // The saturated sine loop is precisely optimized for good looping, which is why it is a .wav and not a .mp3 file + const forceSound = require( 'sound!GRAVITY_FORCE_LAB/saturated-sine-loop-trimmed.wav' ); + + class ForceSoundGenerator extends SoundClip { + + /** + * @param {GFLBModel} model + * @param {BooleanProperty} resetInProgressProperty + * @param {Object} [options] + * @constructor + */ + constructor( model, options ) { + + options = merge( { + initialOutputLevel: 0.7, + loop: true, + trimSilence: false + }, options ); + + // options checking + assert && assert( !options || !options.loop || options.loop === true, 'must be a loop to work correctly' ); + + super( forceSound, options ); + + // @private {number} - the output level before fade out starts + this.nonFadedOutputLevel = options.initialOutputLevel; + + // @private {number} - countdown time used for fade out + this.fadeCountdownTime = 0; + + // start with the output level at zero so that the initial sound generation has a bit of fade in + this.setOutputLevel( 0, 0 ); + + // function for starting the force sound or adjusting the volume + const forceListener = force => { + + if ( !model.resetInProgressProperty.value ) { + + // calculate the playback rate based on the amount of force, see the design document for detailed explanation + const normalizedForce = Math.log( force / model.getMinForce() ) / Math.log( model.getMaxForce() / model.getMinForce() ); + const centerForce = normalizedForce - 0.5; + const midiNote = PITCH_RANGE_IN_SEMI_TONES / 2 * centerForce + PITCH_CENTER_OFFSET; + const playbackRate = Math.pow( 2, midiNote / 12 ); + + this.setPlaybackRate( playbackRate ); + this.setOutputLevel( this.nonFadedOutputLevel ); + if ( !this.playing ) { + this.play(); + } + + // reset the fade countdown + this.fadeCountdownTime = FADE_START_DELAY + FADE_TIME + DELAY_BEFORE_STOP; + } + }; + model.forceProperty.lazyLink( forceListener ); + + // @private {function} + this.disposeForceSoundGenerator = () => { model.forceProperty.unlink( forceListener ); }; + } + + /** + * @public + */ + dispose() { + this.disposeForceSoundGenerator(); + super.dispose(); + } + + /** + * step this sound generator, used for fading out the sound in the absence of user interaction + * @param dt + */ + step( dt ) { + if ( this.fadeCountdownTime > 0 ) { + this.fadeCountdownTime = Math.max( this.fadeCountdownTime - dt, 0 ); + + if ( this.fadeCountdownTime < FADE_TIME + DELAY_BEFORE_STOP && this.outputLevel > 0 ) { + + // the sound is fading out, adjust the output level + const outputLevel = Math.max( + ( this.fadeCountdownTime - DELAY_BEFORE_STOP ) / FADE_TIME * this.nonFadedOutputLevel, + 0 + ); + this.setOutputLevel( outputLevel ); + } + + // fade out complete, stop playback + if ( this.fadeCountdownTime === 0 && this.isPlaying ) { + this.stop( 0 ); + } + } + } + + /** + * stop any in-progress sound generation + * @public + */ + reset() { + this.stop(); + this.fadeCountdownTime = 0; + } + } + + gravityForceLab.register( 'ForceSoundGenerator', ForceSoundGenerator ); + + return ForceSoundGenerator; +} ); \ No newline at end of file diff --git a/js/gravity-force-lab/view/MassSoundGenerator.js b/js/gravity-force-lab/view/MassSoundGenerator.js new file mode 100644 index 00000000..6b75ce6a --- /dev/null +++ b/js/gravity-force-lab/view/MassSoundGenerator.js @@ -0,0 +1,72 @@ +// Copyright 2019, University of Colorado Boulder + +/** + * sound generator for mass changes + * + * @author John Blanco (PhET Interactive Simulations) + */ +define( require => { + 'use strict'; + + // modules + const SoundClip = require( 'TAMBO/sound-generators/SoundClip' ); + const gravityForceLab = require( 'GRAVITY_FORCE_LAB/gravityForceLab' ); + + // sounds + const massSound = require( 'sound!GRAVITY_FORCE_LAB/rubber-band-v3.mp3' ); + + // constants + const PITCH_RANGE_IN_SEMI_TONES = 30; + + class MassSoundGenerator extends SoundClip { + + /** + * @param {NumberProperty} massProperty + * @param {Range} massRange + * @param {BooleanProperty} resetInProgressProperty + * @param {Object} [options] + * @constructor + */ + constructor( massProperty, massRange, resetInProgressProperty, options ) { + + // Rate changes should never affect the mass sound that is already playing. + options.rateChangesAffectPlayingSounds = false; + + super( massSound, options ); + + // function for playing the mass sound + const massListener = mass => { + + // range checking + assert && assert( massRange.contains( mass ), 'mass value out of range' ); + + if ( !resetInProgressProperty.value ) { + + // convert the mass to a playback rate, see the design document for an explanation + const normalizedMass = ( mass - massRange.min ) / ( massRange.max - massRange.min ); + const centerAndFlippedNormMass = ( ( 1 - normalizedMass ) - 0.5 ); + const midiNote = PITCH_RANGE_IN_SEMI_TONES / 2 * centerAndFlippedNormMass; + const playbackSpeed = Math.pow( 2, midiNote / 12 ); + this.setPlaybackRate( playbackSpeed ); + this.play(); + } + }; + massProperty.lazyLink( massListener ); + + // @private {function} + this.disposeMassSoundGenerator = () => { massProperty.unlink( massListener ); }; + } + + /** + * @public + */ + dispose() { + this.disposeMassSoundGenerator(); + super.dispose(); + } + } + + gravityForceLab.register( 'MassSoundGenerator', MassSoundGenerator ); + + return MassSoundGenerator; +} ); \ No newline at end of file diff --git a/sounds/license.json b/sounds/license.json new file mode 100644 index 00000000..3737971f --- /dev/null +++ b/sounds/license.json @@ -0,0 +1,26 @@ +{ + "rubber-band-v3.mp3": { + "text": [ + "Copyright 2002-2019 University of Colorado Boulder" + ], + "projectURL": "http://phet.colorado.edu", + "license": "contact phethelp@colorado.edu", + "notes": "created by Ashton Morris (PhET Interactive Simulations)" + }, + "saturated-sine-loop-trimmed.wav": { + "text": [ + "Copyright 2002-2019 University of Colorado Boulder" + ], + "projectURL": "http://phet.colorado.edu", + "license": "contact phethelp@colorado.edu", + "notes": "created by Ashton Morris (PhET Interactive Simulations), edited by John Blanco" + }, + "scrunched-mass-collision-sonic-womp.mp3": { + "text": [ + "Copyright 2002-2019 University of Colorado Boulder" + ], + "projectURL": "http://phet.colorado.edu", + "license": "contact phethelp@colorado.edu", + "notes": "created by Ashton Morris (PhET Interactive Simulations)" + } +} \ No newline at end of file diff --git a/sounds/rubber-band-v3.mp3 b/sounds/rubber-band-v3.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..172ae6eea77e40f20da30b9ef9c6f0323c6afc9e GIT binary patch literal 3291 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 literal 0 HcmV?d00001 diff --git a/sounds/scrunched-mass-collision-sonic-womp.mp3 b/sounds/scrunched-mass-collision-sonic-womp.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ff122ad6ab756a5b3972a54e2475aff3f3081f4d GIT binary patch literal 1567 zcmc(d`9IWo9LK*i#xbrjB^k#ctW0Q_b*3Wr;Yj2NZJU{KHF7mXu{2-h3hPQ4H%+IU zYc?un+!0cgRMruqMJkHLR|=lhtc2nBQbnmYs)0f(}3n?P_Ala;;3fBh%FiI z{?$VH@Rpt&?C_9B^hVVimWX`)QNCS~G$fm86j^a?{?&lRAxl5~A!X7TiAYp=jA3Nf z5G!!Tgq$=g?y_8Oc=yG#M;38quKBZdn58H0^Uu8u=hHM$*%NYTjjP@!8}(W`h&mPf z82A_CgrsC1z1o}7lkTg9-u!D`2)7d{S*NcMz8;8G7xl+2Ep*k`Vf)CX1ZpR%m><-X z&E$Do`QCDmjZv)|6h${xN2Dt@a^*jt+8n<(qRRza*$?a?=v0QTjC!j8J@Bk8??q;T ztnzUAdr58S;O>jxa&HZ4f1KED)83blQ%Eel0+n7wa~~X`Y{svVSk;-sU4zG3Tm<7= z*CAsVrbMA4=3|3=bi~Hwz_xM{NQvhC_yK--y|(C084!|}N455tZO+IH#P03Vwc8un zo9j1M>FabUoEZ|pTcgzV<=9s}ow@cXei7lcq8z2)zind6FjS60B-|mi-nb)rKj--m zh6%;F^XYoY)>)VInC!9QNR0LU*!Yskl-3qBUC9B}v$UtEso*+VaZW@RUP(N~j(rJ6 zgidn_5CoAM3oz)b)FbBXCnG1$Lg;untRPqX@Qb(CyXVpf+f|~F~N?C`@ z*V7Vi&j+!^?kDY`mpT?iP;aMML<~&EJ&a^??ybd=5AOc{lFwLUY!xD)j^a2)jH)i1 zPQ`Z+{uaVXAjR{PcYF;-VO4fc$SlfN*7ZgdT54_N5%*pFAi=}%e$#?Oes3q>E$OCe z?giv@>8Y|+Mvl(V>67E&911Bb7U7^0H_uGrq2ET1a7{G1U zHjESiBmgRsq6iQYfz-Pw5-4b&3!IP-Q}Iodvf-qO8;k#}oEkg0?t`oh5-Nv<#VOIN z&P+!*2V!xFsbW@d2zO_83YcY+WnV%A1P6S{tE$n;+#H0-Vy>B9CWP#FKg!;`a3J)c zv%uN*ags%Nujj@_=Zt_hGeZ!))#Yebh~g+-z+n}TLs`-D1}ECOYeQ39{Qd3UWo?!0 z`&hfU?9c-#45}lJAGf#M6<#&4!x*SJSs(j}WMFP?V0_}=2#3>#Z2LrIDj*8c5gKC~ LN{jt>``_yyWwYrg literal 0 HcmV?d00001