code: def move_transition_point(self, fragment_index, value):
          
          self.log(u"Called move_transition_point with")
          self.log([u"  fragment_index %d", fragment_index])
          self.log([u"  value          %.3f", value])
          if (fragment_index < 0) or (fragment_index > (len(self) - 3)):
              self.log(u"Bad fragment_index, returning")
              return
          current_interval = self[fragment_index].interval
          next_interval = self[fragment_index + 1].interval
          if value > next_interval.end:
              self.log(u"Bad value, returning")
              return
          if not current_interval.is_non_zero_before_non_zero(next_interval):
              self.log(u"Bad interval configuration, returning")
              return
          current_interval.end = value
          next_interval.begin = value
          self.log(u"Moved transition point")
docs: Change the transition point between fragment ``fragment_index``
          and the next fragment to the time value ``value``.
  
          This method fails silently
          (without changing the fragment list)
          if at least one of the following conditions holds:
  
          * ``fragment_index`` is negative
          * ``fragment_index`` is the last or the second-to-last
          * ``value`` is after the current end of the next fragment
          * the current fragment and the next one are not adjacent and both proper intervals (not zero length)
  
          The above conditions ensure that the move makes sense
          and that it keeps the list satisfying the constraints.
  
          :param int fragment_index: the fragment index whose end should be moved
          :param value: the new transition point
          :type  value: :class:`~aeneas.exacttiming.TimeValue`