static void fluid_channel_init(fluid_channel_t* chan) { fluid_preset_t *newpreset; int prognum, banknum; chan->sostenuto_orderid = 0; chan->channel_type = (chan->channum == 9) ? CHANNEL_TYPE_DRUM : CHANNEL_TYPE_MELODIC; prognum = 0; banknum = (chan->channel_type == CHANNEL_TYPE_DRUM) ? DRUM_INST_BANK : 0; chan->sfont_bank_prog = 0 << SFONT_SHIFTVAL | banknum << BANK_SHIFTVAL | prognum << PROG_SHIFTVAL; newpreset = fluid_synth_find_preset(chan->synth, banknum, prognum); fluid_channel_set_preset(chan, newpreset); chan->interp_method = FLUID_INTERP_DEFAULT; chan->tuning_bank = 0; chan->tuning_prog = 0; chan->nrpn_select = 0; chan->nrpn_active = 0; if (chan->tuning) { fluid_tuning_unref (chan->tuning, 1); chan->tuning = NULL; } }
void fluid_channel_init(fluid_channel_t* chan) { chan->prognum = (chan->channum == 9)? 0 : chan->channum; chan->banknum = (chan->channum == 9)? 128 : 0; chan->sfontnum = 0; if (chan->preset) delete_fluid_preset (chan->preset); chan->preset = fluid_synth_find_preset(chan->synth, chan->banknum, chan->prognum); chan->interp_method = FLUID_INTERP_DEFAULT; chan->tuning = NULL; chan->nrpn_select = 0; chan->nrpn_active = 0; }