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

Query parameter for alteration to shapeLayer sound design? #420

Closed brettfiedler closed 1 year ago

brettfiedler commented 1 year ago

While making the sound features script, I came back around to the idea of altering the Sound Layer sound design to have the trapezoid sound play for Parallelogram, Rectangle, Rhombus, and Square. This isn't a decision that a teacher needs to make on the fly, but for their students in their curriculum before the lesson. Before load is probably ideal. Let's use a query parameter rather than a preference menu item.

Query parameter: ?trapezoidSoundLayers

Default:

const NAMED_QUADRILATERAL_TO_TRACKS_MAP = new Map( [
  [ NamedQuadrilateral.CONVEX_QUADRILATERAL, [ 0 ] ],
  [ NamedQuadrilateral.CONCAVE_QUADRILATERAL, [ 1 ] ],
  [ NamedQuadrilateral.TRIANGLE, [] ],
  [ NamedQuadrilateral.DART, [ 1, 2 ] ],
  [ NamedQuadrilateral.KITE, [ 0, 2 ] ],
  [ NamedQuadrilateral.TRAPEZOID, [ 0, 4 ] ],
  [ NamedQuadrilateral.ISOSCELES_TRAPEZOID, [ 0, 4, 3 ] ],
  [ NamedQuadrilateral.PARALLELOGRAM, [ 0, 5 ] ],
  [ NamedQuadrilateral.RHOMBUS, [ 0, 2, 5, 6 ] ],
  [ NamedQuadrilateral.RECTANGLE, [ 0, 3, 5, 7 ] ],
  [ NamedQuadrilateral.SQUARE, [ 0, 2, 3, 5, 6, 7 ] ]
] );

with ?trapezoidSoundLayers:

const NAMED_QUADRILATERAL_TO_TRACKS_MAP = new Map( [
  [ NamedQuadrilateral.CONVEX_QUADRILATERAL, [ 0 ] ],
  [ NamedQuadrilateral.CONCAVE_QUADRILATERAL, [ 1 ] ],
  [ NamedQuadrilateral.TRIANGLE, [] ],
  [ NamedQuadrilateral.DART, [ 1, 2 ] ],
  [ NamedQuadrilateral.KITE, [ 0, 2 ] ],
  [ NamedQuadrilateral.TRAPEZOID, [ 0, 4 ] ],
  [ NamedQuadrilateral.ISOSCELES_TRAPEZOID, [ 0, 4, 3 ] ],
  [ NamedQuadrilateral.PARALLELOGRAM, [ 0, **4**, 5 ] ],
  [ NamedQuadrilateral.RHOMBUS, [ 0, 2, **4**, 5, 6 ] ],
  [ NamedQuadrilateral.RECTANGLE, [ 0, 3, **4**, 5, 7 ] ],
  [ NamedQuadrilateral.SQUARE, [ 0, 2, 3, **4**, 5, 6, 7 ] ]
] );
jessegreenberg commented 1 year ago

?trapezoidSoundLayer was added, @BLFiedler can you please review?

brettfiedler commented 1 year ago

I chatted with @amanda-phet and @catherinecarter some on Slack to make a decision on which sound design might best be set as default.

This is the common view taught (at least in the US) regarding the relationships between shapes: image

This is what we had assumed for the sound design up until the addition of this query parameter. However, the inclusive approach is still valid and possibly used outside of the US, so we'll definitely want to keep this query parameter and advertise in the teacher tips/sound features video.

I realized in reviewing that I had left the isosceles trapezoid track playing in the rectangle and square in the default sound design. I removed that in the above commit. There is the added benefit of fewer tracks playing for the square for the exclusive default sound design 🙂 .

Updated track assignments below (LayerTracksSoundView.ts):

New Map( [ // design with trapezoid sound in the relevant child shapes
                                            [ NamedQuadrilateral.CONVEX_QUADRILATERAL, [ 0 ] ],
                                            [ NamedQuadrilateral.CONCAVE_QUADRILATERAL, [ 1 ] ],
                                            [ NamedQuadrilateral.TRIANGLE, [] ],
                                            [ NamedQuadrilateral.DART, [ 1, 2 ] ],
                                            [ NamedQuadrilateral.KITE, [ 0, 2 ] ],
                                            [ NamedQuadrilateral.TRAPEZOID, [ 0, 4 ] ],
                                            [ NamedQuadrilateral.ISOSCELES_TRAPEZOID, [ 0, 4, 3 ] ],
                                            [ NamedQuadrilateral.PARALLELOGRAM, [ 0, 4, 5 ] ],
                                            [ NamedQuadrilateral.RHOMBUS, [ 0, 2, 4, 5, 6 ] ],
                                            [ NamedQuadrilateral.RECTANGLE, [ 0, 3, 4, 5, 7 ] ],
                                            [ NamedQuadrilateral.SQUARE, [ 0, 2, 3, 4, 5, 6, 7 ] ]
                                          ] ) :
                                          new Map( [ // default sound design
                                            [ NamedQuadrilateral.CONVEX_QUADRILATERAL, [ 0 ] ],
                                            [ NamedQuadrilateral.CONCAVE_QUADRILATERAL, [ 1 ] ],
                                            [ NamedQuadrilateral.TRIANGLE, [] ],
                                            [ NamedQuadrilateral.DART, [ 1, 2 ] ],
                                            [ NamedQuadrilateral.KITE, [ 0, 2 ] ],
                                            [ NamedQuadrilateral.TRAPEZOID, [ 0, 4 ] ],
                                            [ NamedQuadrilateral.ISOSCELES_TRAPEZOID, [ 0, 4, 3 ] ],
                                            [ NamedQuadrilateral.PARALLELOGRAM, [ 0, 5 ] ],
                                            [ NamedQuadrilateral.RHOMBUS, [ 0, 2, 5, 6 ] ],
                                            [ NamedQuadrilateral.RECTANGLE, [ 0, 5, 7 ] ],
                                            [ NamedQuadrilateral.SQUARE, [ 0, 2, 5, 6, 7 ] ]
                                          ] );
brettfiedler commented 1 year ago

Let's rename this to ?inheritTrapezoidSound.

And then it's good to close!

jessegreenberg commented 1 year ago

OK! Query param renamed to inheritTrapezoidSound. Closing.