method to use when a backup tag is encountered in musicXML. Moves back in the bar by <duration>
        :param duration:
        :return:

def Backup(self, duration=0):
        '''
        method to use when a backup tag is encountered in musicXML. Moves back in the bar by <duration>
        :param duration:
        :return:
        '''
        total = 0
        duration_total = duration * 4
        children = self.GetChildrenIndexes()
        notes = 0
        for voice in children:
            v = self.GetChild(voice)
            indexes = v.GetChildrenIndexes()
            if len(indexes) > 1:
                indexes.reverse()
            for index in indexes:
                notes += 1
                note = v.GetChild(index)
                if hasattr(note, "duration"):
                    total += note.duration
                    if total >= duration_total:
                        break
            gap = [
                v.GetChild(i).duration for i in range(
                    0,
                    self.index -
                    notes) if hasattr(
                    v.GetChild(i),
                    "duration")]
            previous = 0
            for item in gap:
                if item == previous:
                    self.gap -= previous
                    item = item / 2
                self.gap += item
                previous = item
            #self.gap = sum([])
        self.index -= notes