diff --git a/aucat/dev.c b/aucat/dev.c index 5e2ffd7..342e9d0 100644 --- a/aucat/dev.c +++ b/aucat/dev.c @@ -1728,8 +1728,4 @@ dev_master(struct dev *d, unsigned int master) d->mix->u.mix.master = MIDI_TO_ADATA(master); mix_setmaster(d->mix); } - if (APROC_OK(d->midi)) { - midi_send_master(d->midi); - midi_flush(d->midi); - } } diff --git a/aucat/midi.c b/aucat/midi.c index 2a0c089..951e167 100644 --- a/aucat/midi.c +++ b/aucat/midi.c @@ -421,6 +421,7 @@ midi_onvoice(struct aproc *p, struct abuf *ibuf) #endif if ((ibuf->r.midi.msg[0] & MIDI_CMDMASK) == MIDI_CTL && (ibuf->r.midi.msg[1] == MIDI_CTLVOL)) { + midi_send(p, ibuf, ibuf->r.midi.msg, 3); chan = ibuf->r.midi.msg[0] & MIDI_CHANMASK; if (chan >= CTL_NSLOT) return; @@ -462,8 +463,10 @@ midi_onsysex(struct aproc *p, struct abuf *ibuf) switch (x->type) { case SYSEX_TYPE_RT: if (x->id0 == SYSEX_CONTROL && x->id1 == SYSEX_MASTER) { - if (len == SYSEX_SIZE(master)) + if (len == SYSEX_SIZE(master)) { dev_master(p->u.midi.dev, x->u.master.coarse); + midi_send(p, ibuf, (unsigned char *)x, len); + } return; } if (x->id0 != SYSEX_MMC)