Skip to content

Commit bddb589

Browse files
committed
fix bug in MIDI tracks without notes
1 parent 8f3c372 commit bddb589

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

partitura/io/importmidi.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -225,21 +225,22 @@ def load_performance_midi(
225225
)
226226

227227
# add note id to every note
228-
for i, note in enumerate(notes):
229-
note["id"] = f"n{i}"
230-
231-
pp = performance.PerformedPart(notes,
232-
controls=controls,
233-
programs=programs,
234-
ppq = ppq,
235-
mpq = mpq,
236-
track = i)
237-
238-
pps.append(pp)
228+
for k, note in enumerate(notes):
229+
note["id"] = f"n{k}"
230+
231+
if len(notes) > 0 or len(controls) > 0 or len(programs) > 0:
232+
pp = performance.PerformedPart(notes,
233+
controls=controls,
234+
programs=programs,
235+
ppq = ppq,
236+
mpq = mpq,
237+
track = i)
238+
239+
pps.append(pp)
239240

240241
perf = performance.Performance(
241242
id=doc_name,
242-
performedparts=pp,
243+
performedparts=pps,
243244
)
244245
return perf
245246

partitura/performance.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,10 @@ def sustain_pedal_threshold(self, value: int) -> None:
124124
performance. Set to 127 to deactivate pedal.
125125
"""
126126
self._sustain_pedal_threshold = value
127-
adjust_offsets_w_sustain(
128-
self.notes, self.controls, self._sustain_pedal_threshold
129-
)
127+
if len(self.notes) > 0:
128+
adjust_offsets_w_sustain(
129+
self.notes, self.controls, self._sustain_pedal_threshold
130+
)
130131

131132
@property
132133
def num_tracks(self) -> int:

0 commit comments

Comments
 (0)