'Construct a PolyphonicSequence.
Either quantized_sequence or steps_per_quarter should be supplied.
Args:
quantized_sequence: a quantized NoteSequence proto.
steps_per_quarter: how many steps a quarter note represents.
start_step: The offset of this sequence relative to the
beginning of the source sequence. If a quantized sequence is used as
input, only notes starting after this step will be considered.'

def __init__(self, quantized_sequence=None, steps_per_quarter=None, start_step=0):

    assert ((quantized_sequence, steps_per_quarter).count(None) == 1)
    if quantized_sequence:
        sequences_lib.assert_is_relative_quantized_sequence(quantized_sequence)
        self._events = self._from_quantized_sequence(quantized_sequence, start_step)
        self._steps_per_quarter = quantized_sequence.quantization_info.steps_per_quarter
    else:
        self._events = [PolyphonicEvent(event_type=PolyphonicEvent.START, pitch=None)]
        self._steps_per_quarter = steps_per_quarter
    self._start_step = start_step
