예제 #1
0
 def testSub(self):
     tmp = self.s2
     tmp -= Interval(-6, 'minor')
     self.assertTrue(tmp.eqNames(Sound('f')))
     self.assertTrue((tmp - Interval(-2, 'minor')).eqNames(Sound('g', -2)))
     self.assertTrue((tmp - Interval(-5, 'aug')).eqNames(Sound('c', 2)))
     self.assertTrue((tmp - Interval(10)).eqNames(Sound('d', -2)))
     self.assertTrue((tmp - Interval(2)).eqNames(Sound('e', -2)))
예제 #2
0
 def testAdd(self):
     tmp = self.s2
     tmp += Interval(3)
     self.assertTrue(tmp.eqNames(Sound('c', 2)))
     self.assertTrue((tmp + Interval(2, 'minor')).eqNames(Sound('d')))
     self.assertTrue((tmp + Interval(4)).eqNames(Sound('f', 2)))
     self.assertTrue((tmp + Interval(-5, 'aug')).eqNames(Sound('f', 0)))
     self.assertTrue((tmp + Interval(-2)).eqNames(Sound('b', 0)))
예제 #3
0
 def setUp(self):
     self.s1 = Sound()
     self.s2 = Sound('a', 0)
     self.s3 = Sound('c', -3)
     self.s4 = Sound('b', 4)
     self.s5 = Sound('a', 0)
     self.s6 = Sound('c', 1)
     self.s7 = Sound('c', 2)
예제 #4
0
    def fromSoundAndOctave(sound=None, octave=None):
        """Static factory to product pitch from Sound and Octave.

        Args:
            sound  (Sound):  sound of pitch (default: Sound())
            octave (Octave): octave for pitch (default: Octave())
        """
        if sound is None:
            sound = Sound()
        if octave is None:
            octave = Octave()
        return Pitch(sound.name, sound.alteration, octave.lines, octave.size)
예제 #5
0
    def __init__(self, name=None, alteration=None,
                 octaveLines=None, octaveSize=None):
        """Creates instance of Pitch by name, alteration and octave parameters

        Args:
            name        (str): name of pitch; should be one-letter string from
                the pitchNames list (default: 'a')
            alteration  (int): alteration of pitch; should be integer value
                from -4 to 4 range (default: 0)
            octaveLines (int): lines of pitch's octave (default: 1)
            octaveSize  (str): case of letter in music notation of pitch's
                octave; should be only from set of opeNotes.octave.octaveSizes
                list - 'upper' or 'lower' (default: 'lower')
        """
        if name is None:
            name = 'a'
        if alteration is None:
            alteration = 0
        if octaveLines is None:
            octaveLines = 1
        if octaveSize is None:
            octaveSize = 'lower'
        self.sound = Sound(name, alteration)
        self.octave = Octave(octaveLines, octaveSize)