예제 #1
0
    def is_pitch_class_unique(self):
        """
        Is true when pitch set is pitch-class-unique.

        ..  container:: example

            >>> set_ = abjad.PitchSet(
            ...     items=[-2, -1.5, 6, 7, -1.5, 7],
            ...     item_class=abjad.NumberedPitch,
            ...     )

            >>> set_.is_pitch_class_unique
            True

        ..  container:: example

            >>> set_ = abjad.PitchSet(
            ...     items=[-2, -1.5, 6, 7, 10.5, 7],
            ...     item_class=abjad.NumberedPitch,
            ...     )

            >>> set_.is_pitch_class_unique
            False

        Returns true or false.
        """
        import abjad

        numbered_pitch_class_set = abjad.PitchClassSet(
            self, item_class=abjad.NumberedPitchClass)
        return len(self) == len(numbered_pitch_class_set)
예제 #2
0
    def duplicate_pitch_classes(self):
        """
        Gets duplicate pitch-classes in pitch set.

        ..  container:: example

            >>> set_ = abjad.PitchSet(
            ...     items=[-2, -1.5, 6, 7, -1.5, 7],
            ...     item_class=abjad.NumberedPitch,
            ...     )
            >>> set_.duplicate_pitch_classes
            PitchClassSet([])

            >>> set_ = abjad.PitchSet(
            ...     items=[-2, -1.5, 6, 7, 10.5, 7],
            ...     item_class=abjad.NumberedPitch,
            ...     )
            >>> set_.duplicate_pitch_classes
            PitchClassSet([10.5])

        Returns pitch-class set.
        """
        import abjad

        pitch_classes = []
        duplicate_pitch_classes = []
        for pitch in self:
            pitch_class = abjad.NumberedPitchClass(pitch)
            if pitch_class in pitch_classes:
                duplicate_pitch_classes.append(pitch_class)
            pitch_classes.append(pitch_class)
        return abjad.PitchClassSet(duplicate_pitch_classes,
                                   item_class=abjad.NumberedPitchClass)
예제 #3
0
def is_link_chord(ais):
    for sextuple in abjad.sequence(ais).nwise(n=6):
        pc_set = abjad.PitchClassSet(sextuple)
        try:
            set_class = abjad.SetClass.from_pitch_class_set(pc_set)
            if set_class.rank == 17:
                return True
        except KeyError as e:
            print(e)
    return False