Skip to content

Let makeTies() iterate over parts #1561

@TimFelixBeyer

Description

@TimFelixBeyer

music21 version
master

Problem summary
makeTies throws StreamException: cannot process a stream without measures on score with measures.

Steps to reproduce

from music21 import stream, note, meter, tie

s = stream.Score(id='mainScore')
p0 = stream.Part(id='part0')

m01 = stream.Measure(number=1)
m01.append(meter.TimeSignature('4/4'))
d1 = note.Note('D', type="half", dots=1)
c1 = note.Note('C', type="quarter")
c1.tie = tie.Tie("start")
m01.append([d1, c1])
m02 = stream.Measure(number=2)
c2 = note.Note('C', type="quarter")
c2.tie = tie.Tie("stop")
c3 = note.Note("D", type="half")
m02.append([c2, c3])
p0.append([m01, m02])

s.insert(0, p0)
s.show("text")  # just to verify that there are measures in the score 
s = s.stripTies()
# s = s.makeMeasures()  # does not help
s = s.makeTies()

More information
Related to #1557


3
Your example is a score that has had stripTies() run on it, yielding an overfilled first measure and an underfilled second measure. I think I would expect that making rests on that would fill the second measure.

If you want to display the stripped ties score (are you sure you want to display that?) then you could makeTies() on it first, which restores the output I think you're expecting.


Originally posted by @jacobtylerwalls in #1557 (comment)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions