Exemplo n.º 1
0
 def _expr_to_expression(self, expr):
     from abjad.tools import rhythmmakertools
     from experimental.tools import musicexpressiontools
     if isinstance(expr, musicexpressiontools.Expression):
         return expr
     elif self._all_are_expressions(expr):
         return musicexpressiontools.ExpressionInventory(expr)
     elif isinstance(expr,
         (tuple, list, datastructuretools.TypedList)):
         return musicexpressiontools.IterablePayloadExpression(expr)
     elif isinstance(expr, (str)):
         component = iotools.parse(expr)
         return musicexpressiontools.StartPositionedRhythmPayloadExpression(
             [component], start_offset=0)
     elif isinstance(expr, rhythmmakertools.RhythmMaker):
         return musicexpressiontools.RhythmMakerExpression(expr)
     else:
         message = 'do not know how to change {!r} to expression.'
         raise TypeError(message.format(expr))
def test_scoretools_make_piano_score_from_leaves_02():
    r'''Works with explicit lowest treble pitch.
    '''

    container = iotools.parse("{ g4 a4 b4 c'4 d'4 r4 a4 g4 }")
    container_contents = container[:]
    del(container[:])
    lowest_treble_pitch = pitchtools.NamedPitch('a')
    score, treble_staff, bass_staff = \
        scoretools.make_piano_score_from_leaves(
        container_contents,
        lowest_treble_pitch=lowest_treble_pitch,
        )

    r'''
    \new Score <<
        \new PianoStaff <<
            \context Staff = "treble" {
                \clef "treble"
                r4
                a4
                b4
                c'4
                d'4
                r4
                a4
                r4
            }
            \context Staff = "bass" {
                \clef "bass"
                g4
                r4
                r4
                r4
                r4
                r4
                r4
                g4
            }
        >>
    >>
    '''

    assert testtools.compare(
        score,
        r'''
        \new Score <<
            \new PianoStaff <<
                \context Staff = "treble" {
                    \clef "treble"
                    r4
                    a4
                    b4
                    c'4
                    d'4
                    r4
                    a4
                    r4
                }
                \context Staff = "bass" {
                    \clef "bass"
                    g4
                    r4
                    r4
                    r4
                    r4
                    r4
                    r4
                    g4
                }
            >>
        >>
        '''
        )