       targetVolume = ((@platforms.tilemap.heightInPixels - @player.sprite.y) /
                        @platforms.tilemap.heightInPixels) ** 1.3
       volume = @music.volume + ((targetVolume - @music.volume) / 24) # Ease into target, with fps
+      @userVolume = @math.clamp @userVolume, 0, 2
+      volume *= @userVolume # Factor in user controls.
       @music.volume = @math.clamp volume, 0.2, 0.8
     , 42, { leading: on } # ms/f at 24fps
 

      ], @game,
        pauseHandler: (paused) => @player.control = not paused

    _addMate: ->
      {x, y} = @endingPoint
      x += 20


      @cursors = @input.keyboard.createCursorKeys()
      # Quit on Q
      @quitKey = @_addKey Keyboard.Q, @quit
      # Quit on click at end.
      @onHit = @input[if @game.device.touch then 'onTap' else 'onUp']
      @onHit.add @quit, @
