def test_timelist(self): score = parse_to_score_object( r"\staff{c2 r4 r8 a8}" r"\staff{c4 c2 r8 g8}") self.assertEqual(score.get_timelist(), [ [True, Rat(1, 4)], [True, Rat(1, 2)], [False, Rat(1, 8)], [True, Rat(1, 8)], ]) score = parse_to_score_object( r"\staff{c4 d8 }" r"\staff{r8 e }") self.assertEqual(score.get_timelist(), [ [True, Rat(1, 8)], [True, Rat(1, 8)], [True, Rat(1, 8)], ]) score = parse_to_score_object( r"\staff{c4 r8 r8 d8 }" r"\staff{r8 e8 r8 r4 }") self.assertEqual(score.get_timelist(), [ [True, Rat(1, 8)], [True, Rat(1, 8)], [False, Rat(1, 4)], [True, Rat(1, 8)], ])
def test_transpose(self): s = r"\staff\transpose d'{ c d }" score = parse_to_score_object(s) self.assertEqual(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d4")) self.assertEqual(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("e4")) s = r"\staff\transpose d''{ c d }" score = parse_to_score_object(s) self.assertEqual(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d'4")) self.assertEqual(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("e'4"))
def test_transpose(self): s = r"\staff\transpose d'{ c d }" score = parse_to_score_object(s) self.assertEquals(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d4")) self.assertEquals(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("e4")) s = r"\staff\transpose d''{ c d }" score = parse_to_score_object(s) self.assertEquals(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d'4")) self.assertEquals(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("e'4"))
def test_transpose_relative(self): s = r"\staff\transpose d'\relative c'{ c d }" score = parse_to_score_object(s) self.assertEquals(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d'4")) self.assertEquals(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("e'4")) s = r"\staff\transpose d''\relative c'{ c d e}" score = parse_to_score_object(s) self.assertEquals(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d''4")) self.assertEquals(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("e''4")) self.assertEquals(score.voice11.m_tdict[Rat(1, 2)]['elem'][0], Note.new_from_string("fis''4"))
def test_transpose_relative(self): s = r"\staff\transpose d'\relative c'{ c d }" score = parse_to_score_object(s) self.assertEqual(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d'4")) self.assertEqual(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("e'4")) s = r"\staff\transpose d''\relative c'{ c d e}" score = parse_to_score_object(s) self.assertEqual(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d''4")) self.assertEqual(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("e''4")) self.assertEqual(score.voice11.m_tdict[Rat(1, 2)]['elem'][0], Note.new_from_string("fis''4"))
def display(self, music, fontsize, last_timepos=None): """Exception handling should be done by the caller.""" score = parser.parse_to_score_object(music) sc = engravers.ScoreContext(score, last_timepos) self.m_engravers = sc.m_contexts self.m_fontsize = fontsize self._display()
def test_relative(self): s = r"\staff\relative d'{ d f }" score = parse_to_score_object(s) self.assertEquals(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d'4")) self.assertEquals(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("f'4"))
def test_relative(self): s = r"\staff\relative d'{ d f }" score = parse_to_score_object(s) self.assertEqual(score.voice11.m_tdict[Rat(0, 1)]['elem'][0], Note.new_from_string("d'4")) self.assertEqual(score.voice11.m_tdict[Rat(1, 4)]['elem'][0], Note.new_from_string("f'4"))
def test_partial_bar(self): s = r"\partial 4\staff\relative c'{ c d e }" score = parse_to_score_object(s)
def f(s, tempo=(60, 4)): s = parser.parse_to_score_object(r"\staff{ %s}" % s) return s.voice11.get_time_pitch_list(tempo)
def f3(s): return parser.parse_to_score_object(s).get_timelist()
def test_skip(self): score = parse_to_score_object(r"\staff{ c s }") d = score.m_staffs[0].m_voices[0].m_tdict self.assertIsInstance(d[mpd.Rat(0, 1)]['elem'], Stem) self.assertIsInstance(d[mpd.Rat(1, 4)]['elem'][0], Skip)
def music_to_tracklist(music, start=None, end=None): """ return a list of tracks, where track[0] use only channel 0, track[1] only use channel 1 etc. """ return score_to_tracks(parse_to_score_object(music), start, end)
def test_times(self): t = mpd.music_to_tracklist(r"\staff{ \times 2/3{c8 d e} }") self.assertEqual( t[0].str_repr(), "n48 d1/12 o48 n50 d1/12 o50 n52 d1/12 o52") parse_to_score_object(r"\staff{ \times 2/3{c8 d e} }")
def test_times(self): t = mpd.music_to_tracklist(r"\staff{ \times 2/3{c8 d e} }") self.assertEquals(t[0].str_repr(), "n48 d1/12 o48 n50 d1/12 o50 n52 d1/12 o52") score = parse_to_score_object(r"\staff{ \times 2/3{c8 d e} }")
def music_to_track(music, start=None, end=None): tracklist = score_to_tracks(parse_to_score_object(music), start, end) track = tracklist[0] for x in range(1, len(tracklist)): track.merge_with(tracklist[x]) return track
def test_skip(self): score = parse_to_score_object(r"\staff{ c s }") d = score.m_staffs[0].m_voices[0].m_tdict self.assert_(isinstance(d[mpd.Rat(0, 1)]['elem'], Stem)) self.assert_(isinstance(d[mpd.Rat(1, 4)]['elem'][0], Skip))
def test_partial_bar(self): parse_to_score_object(r"\partial 4\staff\relative c'{ c d e }")