NScumm.Core.Audio.SoftSynth.TownsMidiInputChannel.ControlChange C# (CSharp) Method

ControlChange() public method

public ControlChange ( byte control, byte value ) : void
control byte
value byte
return void
        public override void ControlChange(byte control, byte value)
        {
            switch (control)
            {
                case 1:
                    ControlModulationWheel(value);
                    break;
                case 7:
                    ControlVolume(value);
                    break;
                case 10:
                    ControlPanPos(value);
                    break;
                case 64:
                    ControlSustain(value);
                    break;
                case 123:
                    while (_out != null)
                        _out.Disconnect();
                    break;
            }
        }

Usage Example

Example #1
0
        public override void Send(int b)
        {
            if (!_isOpen)
            {
                return;
            }

            int  param2 = ((b >> 16) & 0xFF);
            byte param1 = (byte)((b >> 8) & 0xFF);
            byte cmd    = (byte)(b & 0xF0);

            TownsMidiInputChannel c = _channels[b & 0x0F];

            switch (cmd)
            {
            case 0x80:
                c.NoteOff(param1);
                break;

            case 0x90:
                if (param2 != 0)
                {
                    c.NoteOn(param1, (byte)param2);
                }
                else
                {
                    c.NoteOff(param1);
                }
                break;

            case 0xB0:
                c.ControlChange(param1, (byte)param2);
                break;

            case 0xC0:
                c.ProgramChange(param1);
                break;

            case 0xE0:
                c.PitchBend((short)((param1 | (param2 << 7)) - 0x2000));
                break;

            case 0xF0:
                Debug.WriteLine("MidiDriver_TOWNS: Receiving SysEx command on a send() call");
                break;
            }
        }