// ------ private void SetProgram(int channel, int programNumber, ToneItem tone, bool forceChange = false) { if (!forceChange && toneParameterList[channel] == tone.ToneParameter) { toneVolumes[channel] = tone.Volume; SetPanpot(channel, tone.Panpot); return; } toneParameterList[channel] = tone.ToneParameter; programNumbers[channel] = programNumber; toneVolumes[channel] = tone.Volume; SetPanpot(channel, tone.Panpot); SendProgramChange(channel); //Console.WriteLine($"Perc: {tone.Name} - {tone.PercussionNumber}"); }
public void NotifyChangeTone(ToneItem toneItem) { if (toneItem == null || !toneItem.ProgramNumberAssigned) { return; } var i = 0; for (; i < 16; i++) { if (toneParameterList[i] == toneItem.ToneParameter) { break; } } if (i == 16) { return; } ProgramChange(i, toneItem.ProgramNumber, true); }