public void EndLoadingSynth(string name)
        {
            Debug.LogFormat($"Synth {name} is loaded");

            // Set piano (preset 0) to channel 0. Could be different for another SoundFont.
            midiStreamPlayer.MPTK_ChannelPresetChange(0, 0);
            Debug.LogFormat($"Preset {midiStreamPlayer.MPTK_ChannelPresetGetName(0)} defined on channel 0");

            // Set reed organ (preset 20) to channel 1. Could be different for another SoundFont.
            midiStreamPlayer.MPTK_ChannelPresetChange(1, 20);
            Debug.LogFormat($"Preset {midiStreamPlayer.MPTK_ChannelPresetGetName(1)} defined on channel 1");
        }
        private void BankPatchChanged(object tag, int index)
        {
            switch ((string)tag)
            {
            case "BANK_INST":
                MidiPlayerGlobal.MPTK_SelectBankInstrument(index);
                midiStreamPlayer.MPTK_PlayEvent(new MPTKEvent()
                {
                    Command = MPTKCommand.ControlChange, Controller = MPTKController.BankSelect, Value = index, Channel = StreamChannel,
                });
                break;

            case "PATCH_INST":
                CurrentPreset = index;
                if (testLocalchange)
                {
                    midiStreamPlayer.MPTK_ChannelPresetChange(StreamChannel, index);
                }
                else
                {
                    midiStreamPlayer.MPTK_PlayEvent(new MPTKEvent()
                    {
                        Command = MPTKCommand.PatchChange, Value = index, Channel = StreamChannel,
                    });
                }
                break;

            case "BANK_DRUM":
                MidiPlayerGlobal.MPTK_SelectBankDrum(index);
                midiStreamPlayer.MPTK_PlayEvent(new MPTKEvent()
                {
                    Command = MPTKCommand.ControlChange, Controller = MPTKController.BankSelect, Value = index, Channel = 9,
                });
                break;

            case "PATCH_DRUM":
                CurrentPatchDrum = index;
                if (testLocalchange)
                {
                    midiStreamPlayer.MPTK_ChannelPresetChange(9, index);
                }
                else
                {
                    midiStreamPlayer.MPTK_PlayEvent(new MPTKEvent()
                    {
                        Command = MPTKCommand.PatchChange, Value = index, Channel = 9
                    });
                }
                break;
            }
        }