'Transpose and octave shift the notes and chords in this LeadSheet.
Args:
min_note: Minimum pitch (inclusive) that the resulting notes will take on.
max_note: Maximum pitch (exclusive) that the resulting notes will take on.
transpose_to_key: The lead sheet is transposed to be in this key.
Returns:
The transpose amount, in half steps.'

def squash(self, min_note, max_note, transpose_to_key):

    transpose_amount = self._melody.squash(min_note, max_note, transpose_to_key)
    self._chords.transpose(transpose_amount)
    return transpose_amount
