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])
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)