mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2024-12-01 00:21:14 +00:00
Merge pull request #176 from FluidSynth/drum_bank
allow bank changes on drum channels
This commit is contained in:
commit
8630762b9c
3 changed files with 5 additions and 3 deletions
|
@ -481,7 +481,8 @@ The following table provides details on all the settings used by the synthesizer
|
|||
<li>gs: (default) CC0 becomes the bank number, CC32 is ignored.</li>
|
||||
<li>xg: CC32 becomes the bank number, CC0 is ignored.</li>
|
||||
<li>mma: bank is calculated as CC0*128+CC32.</li>
|
||||
</ul>
|
||||
</ul>
|
||||
Note: Drum channels are initialized to \c DRUM_INST_BANK (==128). Since 1.1.7 mma mode also allows the bank of drum channels to be changed the same way as for melodic channels.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
|
|
@ -264,7 +264,7 @@ fluid_channel_set_bank_msb(fluid_channel_t* chan, int bankmsb)
|
|||
}
|
||||
|
||||
if (style == FLUID_BANK_STYLE_GM ||
|
||||
chan->channel_type == CHANNEL_TYPE_DRUM)
|
||||
(chan->channel_type == CHANNEL_TYPE_DRUM && style != FLUID_BANK_STYLE_MMA))
|
||||
return; /* ignored */
|
||||
|
||||
oldval = chan->sfont_bank_prog;
|
||||
|
|
|
@ -1945,7 +1945,8 @@ fluid_synth_program_change(fluid_synth_t* synth, int chan, int prognum)
|
|||
FLUID_API_ENTRY_CHAN(FLUID_FAILED);
|
||||
|
||||
channel = synth->channel[chan];
|
||||
if (channel->channel_type == CHANNEL_TYPE_DRUM)
|
||||
if (channel->channel_type == CHANNEL_TYPE_DRUM &&
|
||||
chan->synth->bank_select != FLUID_BANK_STYLE_MMA)
|
||||
banknum = DRUM_INST_BANK;
|
||||
else
|
||||
fluid_channel_get_sfont_bank_prog(channel, NULL, &banknum, NULL);
|
||||
|
|
Loading…
Reference in a new issue