Example #1
0
        void SetupEffects(MidiChannelPcSpk chan, EffectEnvelope env, EffectDefinition def, byte flags, byte[] data, int offset)
        {
            def.phase       = 0;
            def.useModWheel = (byte)(flags & 0x40);
            env.loop        = (byte)(flags & 0x20);
            def.type        = (short)(flags & 0x1F);

            env.modWheelSensitivity = 31;
            if (def.useModWheel != 0)
            {
                env.modWheelState = (byte)(MidiChannelPcSpk.ModWheel >> 2);
            }
            else
            {
                env.modWheelState = 31;
            }

            switch (def.type)
            {
            case 0:
                env.maxLevel   = 767;
                env.startLevel = 383;
                break;

            case 1:
                env.maxLevel   = 31;
                env.startLevel = 15;
                break;

            case 2:
                env.maxLevel   = 63;
                env.startLevel = chan._out.unkB;
                break;

            case 3:
                env.maxLevel   = 63;
                env.startLevel = chan._out.unkC;
                break;

            case 4:
                env.maxLevel   = 3;
                env.startLevel = chan._instrument[4];
                break;

            case 5:
                env.maxLevel      = 62;
                env.startLevel    = 31;
                env.modWheelState = 0;
                break;

            case 6:
                env.maxLevel            = 31;
                env.startLevel          = 0;
                env.modWheelSensitivity = 0;
                break;
            }

            StartEffect(env, data, offset);
        }
Example #2
0
 public PCSpeakerDriver(IMixer mixer)
     : base(mixer)
 {
     _pcSpk = new PCSpeaker(mixer.OutputRate);
     for (int i = 0; i < _channels.Length; i++)
     {
         _channels[i] = new MidiChannelPcSpk();
     }
 }
Example #3
0
 public PCSpeakerDriver(IMixer mixer)
     : base(mixer)
 {
     _pcSpk = new PCSpeaker(mixer.OutputRate);
     for (int i = 0; i < _channels.Length; i++)
     {
         _channels[i] = new MidiChannelPcSpk();
     }
 }
Example #4
0
        void SetupEffects(MidiChannelPcSpk chan, EffectEnvelope env, EffectDefinition def, byte flags, byte[] data, int offset)
        {
            def.phase = 0;
            def.useModWheel = (byte)(flags & 0x40);
            env.loop = (byte)(flags & 0x20);
            def.type = (short)(flags & 0x1F);

            env.modWheelSensitivity = 31;
            if (def.useModWheel != 0)
                env.modWheelState = (byte)(MidiChannelPcSpk.ModWheel >> 2);
            else
                env.modWheelState = 31;

            switch (def.type)
            {
                case 0:
                    env.maxLevel = 767;
                    env.startLevel = 383;
                    break;

                case 1:
                    env.maxLevel = 31;
                    env.startLevel = 15;
                    break;

                case 2:
                    env.maxLevel = 63;
                    env.startLevel = chan._out.unkB;
                    break;

                case 3:
                    env.maxLevel = 63;
                    env.startLevel = chan._out.unkC;
                    break;

                case 4:
                    env.maxLevel = 3;
                    env.startLevel = chan._instrument[4];
                    break;

                case 5:
                    env.maxLevel = 62;
                    env.startLevel = 31;
                    env.modWheelState = 0;
                    break;

                case 6:
                    env.maxLevel = 31;
                    env.startLevel = 0;
                    env.modWheelSensitivity = 0;
                    break;
            }

            StartEffect(env, data, offset);
        }