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