From 2518254d5fb877cd31a95d76d65b736a3dfe4ef7 Mon Sep 17 00:00:00 2001 From: "John K. Luebs" Date: Sun, 7 Jan 2024 13:33:33 -0600 Subject: [PATCH] aplaymidi: Set event completely for tempo event After UMP support was added in b399fb8 ev.type setting was inadvertently dropped in the code path handling tempo meta event. This is causing tempo meta events to not be handled at all. Moreover, snd_seq_ev_set_fixed is also missing so MIDI files with variable events such as SYSEX before the tempo meta event usually are causing a segfault. Fixes https://github.com/alsa-project/alsa-utils/issues/241 --- seq/aplaymidi/aplaymidi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/seq/aplaymidi/aplaymidi.c b/seq/aplaymidi/aplaymidi.c index a7293d31f..66038e278 100644 --- a/seq/aplaymidi/aplaymidi.c +++ b/seq/aplaymidi/aplaymidi.c @@ -819,6 +819,8 @@ static void play_midi(void) ev.time.tick = event->tick; ev.dest = ports[event->port]; if (event->type == SND_SEQ_EVENT_TEMPO) { + snd_seq_ev_set_fixed(&ev); + ev.type = event->type; ev.dest.client = SND_SEQ_CLIENT_SYSTEM; ev.dest.port = SND_SEQ_PORT_SYSTEM_TIMER; ev.data.queue.queue = queue;