diff --git a/lib/player.js b/lib/player.js index 2f8a4b25..3fdb5a88 100644 --- a/lib/player.js +++ b/lib/player.js @@ -516,9 +516,18 @@ Player.prototype.groupSetVolume = function (volumeLevel, callback) { var actions = []; var count = 0; var groupVolume = this.groupState.volume; - var deltaVolume = volumeLevel - groupVolume; - var newVolume; + var deltaVolume; + // If prefixed with + or - + if (/^[+-]/.test(volumeLevel)) { + deltaVolume = parseInt(volumeLevel); + volumeLevel = groupVolume + parseInt(volumeLevel); + } else { + volumeLevel = parseInt(volumeLevel); + deltaVolume = volumeLevel - groupVolume; + } + + var newVolume; for (var uuid in this.discovery.players) { var player = this.discovery.players[uuid]; if (player.coordinator.uuid != this.uuid) continue;