示例#1
0
    def __repeated_prime_form_sampaio(self):
        """Returns Sampaio prime form algorithm for repeated c-pitches
        csegs.

        Returns all possible prime forms of a cseg with repeated
        elements."""

        size = len(self)
        d_list = []
        range_size = range(1, size)

        # generates a vector with all internal diagonals of self
        [d_list.append(self.internal_diagonals(d)) for d in range_size]

        # generates a vector with all possible zero substitutions
        lists = utils.zero_to_plus_minus(d_list)

        result = []

        for lst in lists:
            lst = [diagonal.InternalDiagonal(x) for x in lst]
            # appends all possible csegs from each diagonal
            result.append(diagonal.csegs_from_diagonals(lst))

        return sorted([x for x in result if x])
示例#2
0
    def __one_repeated_prime_form_marvin_laprade(self, signal):
        """Returns one of prime forms of a repeated cpitch cseg
        (Marvin and Laprade, 1987)."""

        size = len(self)
        diagonals_list = []

        for d in range(1, size):
            # substitutes zeros for a given signal
            int_d = self.internal_diagonals(d).zero_to_signal(signal)
            diagonals_list.append(diagonal.InternalDiagonal(int_d))

        return diagonal.csegs_from_diagonals(diagonals_list)