fadeSound ({ getters }, { id, from, to, duration }) {
      const sound = getters.getSoundById(id)
      if (!sound) {
        throw new Error('Sound not found')
      }

      if (typeof from === 'undefined') {
        from = sound.volume()
      }

      return new Promise((resolve) => {
        sound
          .once('fade', () => resolve(id))
          .fade(from, to, duration)
      })
    }
Fades a sound between two volumes.

@param opts {object}
@param opts.id {string} sound to fade
@param opts.from {number|undefined} start volume between 0 and 1.  If undefined starts at current volume.
@param opts.to {number} finish volume between 0 and 1
@param opts.duration {number} duration of fade in milliseconds

@return The ID of the sound faded

@throws {Error} when invalid ID specified