'Return a list of all the time signatures used in this score.
Does not support polymeter (i.e. assumes all parts have the same
time signature, such as Part 1 having a time signature of 6/8
while Part 2 has a simultaneous time signature of 2/4).
Ignores duplicate time signatures to prevent Magenta duplicate
time signature error. This happens when multiple parts have the
same time signature is used in multiple parts at the same time.
Example: If Part 1 has a time siganture of 4/4 and Part 2 also
has a time signature of 4/4, then only instance of 4/4 is sent
to Magenta.
Returns:
A list of all TimeSignature objects used in this score.'

def get_time_signatures(self):

    time_signatures = []
    for part in self.parts:
        for measure in part.measures:
            if (measure.time_signature is not None):
                if (measure.time_signature not in time_signatures):
                    time_signatures.append(measure.time_signature)
    return time_signatures
