Skip to content

RomanText writer doesn't write "slow 3/8" #1417

@malcolmsailor

Description

@malcolmsailor

music21 version

8.0.0a12

Problem summary

If music21 reads a RomanText file in "slow 3/8", then writes it out again, it writes it in "3/8" (which defaults to "fast 3/8"), omitting the "slow". The output file will likely be unreadable since it may contain beats that are then illegal, e.g., "b2".

Steps to reproduce

>>> from io import StringIO
>>> rntxt = """Time Signature: slow 3/8
... m1 C: I b2 V"""
>>> s = music21.converter.parse(rntxt, format="romanText")
>>> text_stream = StringIO()
>>> s.write("romanText", text_stream)
>>> newrntxt = text_stream.getvalue()
>>> print(newrntxt) # NB not "Slow 3/8"
Composer: Composer unknown
Title: Title unknown
Analyst: 
Proofreader: 

Time Signature: 3/8
m1 C: I b2 V
>>> s2 = music21.converter.parse(newrntxt, format="romanText")
[rest of TraceBack clipped]
    raise RomanTextTranslateException(
music21.romanText.translate.RomanTextTranslateException: too many notes in this measure: m1 C: I b2 V

I will see if I can't fix this myself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions