5. Adding comments

It is easy to add comments to any Abjad component.

5.1. Adding leaf comments

You can add comments to any note, rest, chord or skip.

abjad> note = Note(13, (1, 4))
abjad> show(note)
../../../_images/first-ex.png
abjad> note.comments.before.append('This is a comment before the note.')
abjad> note.comments.before.append('This is another comment before the note.')
abjad> print note.format
% This is a comment before the note.
% This is another comment before the note.
cs''4

Leaf comments go before, after or to the right of the note they modify.

5.2. Adding container comments

You can also add comments to any container.

abjad> staff = Staff(construct.scale(4))
abjad> show(staff)
../../../_images/staff-ex.png
abjad> staff.comments.before.append('Here is a comment before the staff.')
abjad> staff.comments.opening.append('Here is a comment in the staff opening.')
abjad> staff.comments.opening.append('Here is another comment in the staff opening.')
abjad> staff.comments.closing.append('Comment in the staff closing.')
abjad> staff.comments.after.append('Comment after the staff.')
abjad> print staff.format
% Here is a comment before the staff.
\new Staff {
        % Here is a comment in the staff opening.
        % Here is another comment in the staff opening.
        c'8
        d'8
        e'8
        f'8
        % Comment in the staff closing.
}
% Comment after the staff.

The complete set of container comment locations is before, after, opening and closing.

5.3. Removing comments

Comment locations are all built-in Python lists.

This means you can add and remove comments with the usual list methods.

abjad> staff.comments.before.pop( )
abjad> 'Here is a comment before the staff.'
abjad> staff.comment.opening.pop( )
abjad> 'Here is another comment in the staff opening.'
abjad> print staff.format
\new Staff {
        % Here is a comment in the staff opening.
        c'8
        d'8
        e'8
        f'8
        % Comment in the staff closing.
}
% Comment after the staff.

See also

CommentsInterface API entry.

Table Of Contents

Previous topic

4. Inspecting note attributes

Next topic

6. Recalling output

This Page