MusicXML `<segno/>` in a `<barline>` isn't read, so expandRepeats() fails
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 62/100
Direzione di ricerca
The MusicXML importer lives in music21/musicxml, where barline children are parsed; the segno is read for directions but not for <barline>. Start by reproducing with the snippet in the issue and checking what expandRepeats() sees in music21/repeat.py. Done when a segno inside <barline> is attached to the measure so the D.S. expansion gives C, D, E, D, E, with a regression test added beside the existing repeat tests.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
music21 version
10.5.0
Problem summary
MusicXML allows a <segno> (and a <coda>) inside a <barline>, as well as in a direction. The importer doesn't read it from a barline, so a later D.S. has no segno to go to, and expandRepeats() raises.
Steps to reproduce
from music21 import converter
def measure(number, step, before="", after=""):
return (f'<measure number="{number}">{before}<note><pitch><step>{step}</step>'
f'<octave>4</octave></pitch><duration>4</duration><type>whole</type></note>{after}</measure>')
xml = f'''<score-partwise version="4.0">
<part-list><score-part id="P1"><part-name>Music</part-name></score-part></part-list>
<part id="P1">
{measure(1, "C", "<attributes><divisions>1</divisions></attributes>")}
{measure(2, "D", '<barline location="left"><segno/></barline>')}
{measure(3, "E", after="<direction><direction-type><words>D.S.</words></direction-type></direction>")}
</part>
</score-partwise>'''
converter.parse(xml, format='musicxml').expandRepeats()
Expected vs. actual behavior
Expected the notes ['C', 'D', 'E', 'D', 'E']. Actual:
music21.repeat.ExpanderException: cannot expand Stream: badly formed repeats or repeat expressions
Writing the same segno as <direction><direction-type><segno/></direction-type></direction> gives the expected result, so only the barline placement is affected.
- Lingua principale
- Python
- Stelle
- 2.6k
- Fork
- 459
- Merge medio
- 1g 7h
- PR unite (30g)
- 40
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cuthbertLab/music21
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
cuthbertLab/music21#2084 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
cuthbertLab/music21#2082 ·
I maintainer di solito rispondono entro 1 giorno
-
`TypeError` in `ChordReducer.run()` on multi-part `stream.Score` without instrument `partId`sAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
cuthbertLab/music21#2074 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
cuthbertLab/music21#2055 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Slur bezier-x/y from start element gets overwritten by stop element's valuesForse di nuovo libera @bingliscodes l’ha presa 8 giorni fa e non c’è nessuna pull request aperta. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
cuthbertLab/music21#2019 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di cuthbertLab/music21
Issue simili
-
Workflow.schedule stops when a cron deadline passes before sleepForse già presa @HuaTNA l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug] HiveDialect shares its colspecs dict with SQLAlchemy's DefaultDialect (python/pyhive)Forse già presa @rusackas l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
apache/kyuubi#7786 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
I maintainer di solito rispondono entro 1 giorno
-
[20.0] hr_work_entry: Duration column of Export Time Entries is truncated to whole hoursForse già presa @odooaktiv l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
fix formatting of the sample database page of the docsForse già presa @Aaqibhafeezkhan l’ha presa oggi. Apertadocumentation good first issue help wanted
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
chaoss/CollectOSS#544 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno