예제 #1
0
 def test_pitch_class(self):
     key = melisma.KeySig(0)
     self.assertEqual(key.pitch_class(), "c")
     key = melisma.KeySig(1)
     self.assertEqual(key.pitch_class(), "des")
     key = melisma.KeySig(18)
     self.assertEqual(key.pitch_class(), "ges")
예제 #2
0
    def test_pitch_class(self):
        key = melisma.KeySig(0)

        self.assertEqual(melisma.Note(0, 1).pitch_class(key), "c")
        self.assertEqual(melisma.Note(13, 1).pitch_class(key), "des")

        key = melisma.KeySig(18)

        self.assertEqual(melisma.Note(0, 1).pitch_class(key), "ges")
        self.assertEqual(melisma.Note(2, 1).pitch_class(key), "aes")
예제 #3
0
    def test_push_key_note(self):
        music = melisma.Piece(melisma.KeySig(0), melisma.Tempo(120))
        music.push_key_note(0, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "c4")
        music.push_key_note(1, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "d4")
        music.push_key_note(2, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "e4")
        music.push_key_note(3, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "f4")

        music.push(melisma.KeySig(7))
        music.push_key_note(0, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "g4")
        music.push_key_note(1, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "a4")
        music.push_key_note(2, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "b4")
        music.push_key_note(3, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "c'4")
예제 #4
0
    def test_write(self):
        key = melisma.KeySig(0)
        self.assertEqual(melisma.Note(0, 1).write(key), "c4")
        self.assertEqual(melisma.Note(12, 4).write(key), "c'1")
        self.assertEqual(melisma.Note(-1, 0.5).write(key), "b8")
        self.assertEqual(melisma.Note(-13, 0.25).write(key), "b,16")

        self.assertEqual(melisma.Note(None, 0.25).write(key), "r16")

        self.assertEqual(melisma.Note(0, 3).write(key), "c2~ c4")
        self.assertEqual(melisma.Note(None, 3).write(key), "r2 r4")

        self.assertEqual(
            melisma.Note(0, 1, attrs=["dotted"]).write(key), "c4.")
예제 #5
0
    def test_push_triad_note(self):
        music = melisma.Piece(melisma.KeySig(0), melisma.Tempo(120))
        music.push_triad_note(0, 0, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "c4")
        music.push_triad_note(0, 1, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "e4")
        music.push_triad_note(0, 2, 1)
        self.assertEqual(music.music[-1].write(music.current_key()), "g4")
        with self.assertRaises(ValueError):
            music.push_triad_note(0, 3, 1)

        music.push_triad_note(0, 1, 1, quality="minor")
        self.assertEqual(music.music[-1].write(music.current_key()), "ees4")
        music.push_triad_note(0, 1, 1, quality="diminished")
        self.assertEqual(music.music[-1].write(music.current_key()), "ees4")
        music.push_triad_note(0, 1, 1, quality="augmented")
        self.assertEqual(music.music[-1].write(music.current_key()), "e4")

        music.push_triad_note(0, 2, 1, quality="minor")
        self.assertEqual(music.music[-1].write(music.current_key()), "g4")
        music.push_triad_note(0, 2, 1, quality="diminished")
        self.assertEqual(music.music[-1].write(music.current_key()), "ges4")
        music.push_triad_note(0, 2, 1, quality="augmented")
        self.assertEqual(music.music[-1].write(music.current_key()), "aes4")
예제 #6
0
 def test_current_key(self):
     music = melisma.Piece(melisma.KeySig(0), melisma.Tempo(120))
     music.push(melisma.KeySig(12))
     self.assertEqual(music.current_key().pitch, 12)
예제 #7
0
 def test_write(self):
     key = melisma.KeySig(0)
     self.assertEqual(key.write(), "\\key c \\major")