Пример #1
0
 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()
Пример #2
0
 def test_clefs(self):
     testdata = [
         ('violin', 6),
         ('treble', 6),
         ('G', 6),
         ('G2', 6),
         ('alto', 0),
         ('C', 0),
         ('tenor', -2),
         ('bass', -6),
         ('french', 8),
         ('soprano', 4),
         ('mezzosoprano', 2),
         ('baritone', -4),
         ('varbaritone', -4),
         ('subbass', -8),
     ]
     testdata = testdata + [('"%s"' % c, i) for (c, i) in testdata]
     testdata.extend([
         ('"violin_8"', 6 - 7),
         ('"violin_15"', 6 - 14),
         ('"G^8"', 6 + 7),
         ('"G^15"', 6 + 14),
     ])
     for clef, ypos in testdata:
         score = mpd.parser.parse_to_score_object(r"\staff{ \clef %s c' }" %
                                                  clef)
         sc = engravers.ScoreContext(score)
         eng = sc.m_contexts
         e = [
             e for e in eng[0]
             if isinstance(e, mpd.engravers.NoteheadEngraver)
         ][0]
         self.assertEqual(e.m_ypos, ypos,
                          "c' after %s clef is placed wrong" % clef)
Пример #3
0
 def clear(self, numstaff=1):
     if numstaff == 0:
         self.m_engravers = []
     else:
         sc = elems.Score()
         for x in range(numstaff):
             sc.add_staff()
         self.m_engravers = engravers.ScoreContext(sc).m_contexts
     self.g_d.queue_draw()
     dim = engravers.dimentions[20]
     self.set_size_request(self.get_size_request()[0], numstaff*dim.staff_spacing+dim.first_staff_ypos)
Пример #4
0
 def score_updated(self):
     """
     Redraw the staff. This should be called whenever m_score is updated.
     It is not necessary to call when only the cursor have been moved.
     """
     self.m_scorecontext = engravers.ScoreContext(self.m_score)
     self.m_engravers = self.m_scorecontext.m_contexts
     self._display()
     if self.m_score.m_staffs:
         timeposes = self.m_score.m_staffs[0].get_timeposes()
         if self.m_cursor > len(timeposes) - 1:
             self.m_cursor = len(timeposes) - 1
     else:
         self.m_cursor = None
     self.emit('score-updated')
Пример #5
0
 def display_score(self, score):
     self.m_engravers = engravers.ScoreContext(score).m_contexts
     self._display()
Пример #6
0
 def test_empty(self):
     sc = elems.Score()
     # This has always worked.
     engravers.ScoreContext(sc)
     sc.add_staff()
     engravers.ScoreContext(sc)