Skip to content

Commit eb6fe46

Browse files
committed
Clear Data Entry on receiving (N)RPN MSB and LSB (#1672)
1 parent 67a09a6 commit eb6fe46

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/synth/fluid_synth.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2032,12 +2032,15 @@ fluid_synth_cc_LOCAL(fluid_synth_t *synth, int channum, int num)
20322032

20332033
case NRPN_MSB: /* not allowed to modulate (spec SF 2.01 - 8.2.1) */
20342034
fluid_channel_set_cc(chan, NRPN_LSB, 0);
2035+
fluid_channel_set_cc(chan, DATA_ENTRY_MSB, 0);
2036+
fluid_channel_set_cc(chan, DATA_ENTRY_LSB, 0);
20352037
chan->nrpn_select = 0;
20362038
chan->nrpn_active = 1;
20372039
break;
20382040

20392041
case NRPN_LSB: /* not allowed to modulate (spec SF 2.01 - 8.2.1) */
2040-
2042+
fluid_channel_set_cc(chan, DATA_ENTRY_MSB, 0);
2043+
fluid_channel_set_cc(chan, DATA_ENTRY_LSB, 0);
20412044
/* SontFont 2.01 NRPN Message (Sect. 9.6, p. 74) */
20422045
if(fluid_channel_get_cc(chan, NRPN_MSB) == 120)
20432046
{
@@ -2065,6 +2068,8 @@ fluid_synth_cc_LOCAL(fluid_synth_t *synth, int channum, int num)
20652068
case RPN_MSB: /* not allowed to modulate (spec SF 2.01 - 8.2.1) */
20662069
case RPN_LSB: /* not allowed to modulate (spec SF 2.01 - 8.2.1) */
20672070
chan->nrpn_active = 0;
2071+
fluid_channel_set_cc(chan, DATA_ENTRY_MSB, 0);
2072+
fluid_channel_set_cc(chan, DATA_ENTRY_LSB, 0);
20682073
break;
20692074

20702075
case BREATH_MSB:

0 commit comments

Comments
 (0)