示例#1
0
        static ChannelMatrix()
        {
            ChannelMatrix c = new ChannelMatrix((ChannelMask)0x3, (ChannelMask)0x3F);
            float[,] m = new float[,]
            {
                { 0.314f, 0f    , 0.222f, 0.031f, 0.268f, 0.164f }, //left      - input
                { 0f    , 0.314f, 0.222f, 0.031f, 0.164f, 0.268f }  //right     - output
            };
            c.SetMatrix(m);
            TwoToSixChannels = c;

            StereoToMonoMatrix = new ChannelMatrix(ChannelMask.SpeakerFrontCenter, ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight);
            StereoToMonoMatrix[0, 0].Value = 0.5f;
            StereoToMonoMatrix[0, 1].Value = 0.5f;

            MonoToStereoMatrix = new ChannelMatrix(ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight, ChannelMask.SpeakerFrontCenter);
            MonoToStereoMatrix[0, 0].Value = 1f;
            MonoToStereoMatrix[1, 0].Value = 1f;
        }
示例#2
0
        static ChannelMatrix()
        {
            ChannelMatrix c = new ChannelMatrix((ChannelMask)0x3, (ChannelMask)0x3F);

            float[,] m = new float[, ]
            {
                { 0.314f, 0f, 0.222f, 0.031f, 0.268f, 0.164f },     //left      - input
                { 0f, 0.314f, 0.222f, 0.031f, 0.164f, 0.268f }      //right     - output
            };
            c.SetMatrix(m);
            TwoToSixChannels = c;

            StereoToMonoMatrix             = new ChannelMatrix(ChannelMask.SpeakerFrontCenter, ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight);
            StereoToMonoMatrix[0, 0].Value = 0.5f;
            StereoToMonoMatrix[0, 1].Value = 0.5f;

            MonoToStereoMatrix             = new ChannelMatrix(ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight, ChannelMask.SpeakerFrontCenter);
            MonoToStereoMatrix[0, 0].Value = 1f;
            MonoToStereoMatrix[1, 0].Value = 1f;
        }
示例#3
0
        static ChannelMatrix()
        {
            StereoToFiveDotOneSurroundWithRear = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            StereoToFiveDotOneSurroundWithRear.SetMatrix(
                new[, ]
            {
                { 0.314f, 0f, 0.222f, 0.031f, 0.268f, 0.164f },  //left      - input
                { 0f, 0.314f, 0.222f, 0.031f, 0.164f, 0.268f }   //right     - output
            });
            FiveDotOneSurroundWithRearToStereo = StereoToFiveDotOneSurroundWithRear.Flip();

            StereoToFiveDotOneSurroundWithSide = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight);
            StereoToFiveDotOneSurroundWithSide.SetMatrix(
                new[, ]
            {
                { 0.320f, 0f, 0.226f, 0.032f, 0.292f, 0.130f },
                { 0f, 0.320f, 0.226f, 0.032f, 0.130f, 0.292f }
            });
            FiveDotOneSurroundWithSideToStereo = StereoToFiveDotOneSurroundWithSide.Flip();

            StereoToSevenDotOneSurround = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            StereoToSevenDotOneSurround.SetMatrix(
                new[, ]
            {
                { 0.222f, 0f, 0.157f, 0.022f, 0.189f, 0.116f, 0.203f, 0.090f },
                { 0f, 0.222f, 0.157f, 0.022f, 0.116f, 0.189f, 0.090f, 0.203f }
            });
            SevenDotOneSurroundToStereo = StereoToSevenDotOneSurround.Flip();

            //--

            MonoToFiveDotOneSurroundWithRear = new ChannelMatrix(
                ChannelMask.SpeakerFrontCenter,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            MonoToFiveDotOneSurroundWithRear.SetMatrix(
                new[, ]
            {
                { 0.192f, 0.192f, 0.192f, 0.038f, 0.192f, 0.192f }
            });
            FiveDotOneSurroundWithRearToMono = MonoToFiveDotOneSurroundWithRear.Flip();

            MonoToFiveDotOneSurroundWithSide = new ChannelMatrix(
                ChannelMask.SpeakerFrontCenter,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight);
            MonoToFiveDotOneSurroundWithSide.SetMatrix(
                new[, ]
            {
                { 0.192f, 0.192f, 0.192f, 0.038f, 0.192f, 0.192f }
            });
            FiveDotOneSurroundWithSideToMono = MonoToFiveDotOneSurroundWithSide.Flip();

            MonoToSevenDotOneSurround = new ChannelMatrix(
                ChannelMask.SpeakerFrontCenter,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            MonoToSevenDotOneSurround.SetMatrix(
                new[, ]
            {
                { 0.139f, 0.139f, 0.139f, 0.028f, 0.139f, 0.139f, 0.139f, 0.139f }
            });
            SevenDotOneSurroundToMono = MonoToSevenDotOneSurround.Flip();

            //--
            FiveDotOneSurroundWithRearToSevenDotOne = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            FiveDotOneSurroundWithRearToSevenDotOne.SetMatrix(
                new[, ]
            {
                { 0.518f, 0f, 0f, 0f, 0f, 0f, 0.189f, 0f },
                { 0f, 0.518f, 0f, 0f, 0f, 0f, 0f, 0.189f },
                { 0f, 0f, 0.518f, 0f, 0f, 0f, 0f, 0f },
                { 0f, 0f, 0f, 0.518f, 0f, 0f, 0f, 0f },
                { 0f, 0f, 0f, 0f, 0.518f, 0f, 0.482f, 0f },
                { 0f, 0f, 0f, 0f, 0f, 0.518f, 0f, 0.482f }
            });
            SevenDotOneSurroundToFiveDotOneSurroundWithRear = FiveDotOneSurroundWithRearToSevenDotOne.Flip();

            FiveDotOneSurroundWithSideToSevenDotOne = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            FiveDotOneSurroundWithSideToSevenDotOne.SetMatrix(
                new[, ]
            {
                { 0.447f, 0f, 0f, 0f, 0f, 0f, 0f, 0f },
                { 0f, 0.447f, 0f, 0f, 0f, 0f, 0f, 0f },
                { 0f, 0f, 0.447f, 0f, 0f, 0f, 0f, 0f },
                { 0f, 0f, 0f, 0.447f, 0f, 0f, 0f, 0f },
                { 0f, 0f, 0f, 0f, 0.429f, 0.124f, 0.447f, 0f },
                { 0f, 0f, 0f, 0f, 0.124f, 0.429f, 0f, 0.447f }
            });
            SevenDotOneSurroundToFiveDotOneSurroundWithSide = FiveDotOneSurroundWithSideToSevenDotOne.Flip();


            StereoToMonoMatrix = new ChannelMatrix(ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight,
                                                   ChannelMask.SpeakerFrontCenter);
            StereoToMonoMatrix.SetMatrix(
                new[, ]
            {
                { 0.5f },  //left
                { 0.5f }   //right
            });

            MonoToStereoMatrix = new ChannelMatrix(ChannelMask.SpeakerFrontCenter,
                                                   ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight);
            MonoToStereoMatrix.SetMatrix(
                new[, ]
            {
                //left|right
                { 1f, 1f }   //mono
            });
        }
示例#4
0
        static ChannelMatrix()
        {
            StereoToFiveDotOneSurroundWithRear = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            StereoToFiveDotOneSurroundWithRear.SetMatrix(
                new[,]
                {
                    {0.314f, 0f, 0.222f, 0.031f, 0.268f, 0.164f}, //left      - input
                    {0f, 0.314f, 0.222f, 0.031f, 0.164f, 0.268f} //right     - output
                });
            FiveDotOneSurroundWithRearToStereo = StereoToFiveDotOneSurroundWithRear.Flip();

            StereoToFiveDotOneSurroundWithSide = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight);
            StereoToFiveDotOneSurroundWithSide.SetMatrix(
                new[,]
                {
                    {0.320f, 0f, 0.226f, 0.032f, 0.292f, 0.130f},
                    {0f, 0.320f, 0.226f, 0.032f, 0.130f, 0.292f}
                });
            FiveDotOneSurroundWithSideToStereo = StereoToFiveDotOneSurroundWithSide.Flip();

            StereoToSevenDotOneSurround = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            StereoToSevenDotOneSurround.SetMatrix(
                new[,]
                {
                    {0.222f, 0f, 0.157f, 0.022f, 0.189f, 0.116f, 0.203f, 0.090f},
                    {0f, 0.222f, 0.157f, 0.022f, 0.116f, 0.189f, 0.090f, 0.203f}
                });
            SevenDotOneSurroundToStereo = StereoToSevenDotOneSurround.Flip();

            //--

            MonoToFiveDotOneSurroundWithRear = new ChannelMatrix(
                ChannelMask.SpeakerFrontCenter,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            MonoToFiveDotOneSurroundWithRear.SetMatrix(
                new[,]
                {
                    {0.192f, 0.192f, 0.192f, 0.038f, 0.192f, 0.192f}
                });
            FiveDotOneSurroundWithRearToMono = MonoToFiveDotOneSurroundWithRear.Flip();

            MonoToFiveDotOneSurroundWithSide = new ChannelMatrix(
                ChannelMask.SpeakerFrontCenter,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight);
            MonoToFiveDotOneSurroundWithRear.SetMatrix(
                new[,]
                {
                    {0.192f, 0.192f, 0.192f, 0.038f, 0.192f, 0.192f}
                });
            FiveDotOneSurroundWithSideToMono = MonoToFiveDotOneSurroundWithSide.Flip();

            MonoToSevenDotOneSurround = new ChannelMatrix(
                ChannelMask.SpeakerFrontCenter,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            MonoToSevenDotOneSurround.SetMatrix(
                new[,]
                {
                    {0.139f, 0.139f, 0.139f, 0.028f, 0.139f, 0.139f, 0.139f, 0.139f}
                });
            SevenDotOneSurroundToMono = MonoToSevenDotOneSurround.Flip();

            //--
            FiveDotOneSurroundWithRearToSevenDotOne = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            FiveDotOneSurroundWithRearToSevenDotOne.SetMatrix(
                new[,]
                {
                    {0.518f , 0f     , 0f, 0f, 0f, 0f, 0.189f, 0f},
                    {0f     , 0.518f , 0f, 0f, 0f, 0f, 0f    , 0.189f},
                    {0f     , 0f     , 0.518f, 0f, 0f, 0f,   0f, 0f},
                    {0f,	0f,	0f,	0.518f,	0f,	0f,	0f,	0f},
                    {0f,	0f,	0f,	0f,	0.518f,	0f,	0.482f,	0f},
                    {0f,	0f,	0f,	0f,	0f,	0.518f,	0f,	0.482f}
                });
            SevenDotOneSurroundToFiveDotOneSurroundWithRear = FiveDotOneSurroundWithRearToSevenDotOne.Flip();

            FiveDotOneSurroundWithSideToSevenDotOne = new ChannelMatrix(
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight |
                ChannelMask.SpeakerFrontCenter | ChannelMask.SpeakerLowFrequency |
                ChannelMask.SpeakerSideLeft | ChannelMask.SpeakerSideRight |
                ChannelMask.SpeakerBackLeft | ChannelMask.SpeakerBackRight);
            FiveDotOneSurroundWithSideToSevenDotOne.SetMatrix(
                new[,]
                {
                    {0.447f,	0f,	0f,	0f,	0f,	0f,	0f,	0f},
                    {0f,	0.447f,	0f,	0f,	0f,	0f,	0f,	0f},
                    {0f,	0f,	0.447f,	0f,	0f,	0f,	0f,	0f},
                    {0f,	0f,	0f,	0.447f,	0f,	0f,	0f,	0f},
                    {0f,	0f,	0f,	0f,	0.429f,	0.124f,	0.447f,	0f},
                    {0f,	0f,	0f,	0f,	0.124f,	0.429f,	0f,	0.447f}
                });
            SevenDotOneSurroundToFiveDotOneSurroundWithSide = FiveDotOneSurroundWithSideToSevenDotOne.Flip();

            StereoToMonoMatrix = new ChannelMatrix(ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight,
                ChannelMask.SpeakerFrontCenter);
            StereoToMonoMatrix.SetMatrix(
                new[,]
                {
                    {0.5f}, //left
                    {0.5f} //right
                });

            MonoToStereoMatrix = new ChannelMatrix(ChannelMask.SpeakerFrontCenter,
                ChannelMask.SpeakerFrontLeft | ChannelMask.SpeakerFrontRight);
            MonoToStereoMatrix.SetMatrix(
                new[,]
                {
                    //left|right
                    {1f, 1f} //mono
                });
        }