void listBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if ((sender as ListBox).Text.Equals("")) return;
            //MessageBox.Show((sender as ListBox).Text);

            //ReadWav rw = new ReadWav(@"G:\Временынй\Дипломммм\диплом\Новая версия\Koordinat\Test GL\bin\Debug\Sounds\" + (sender as ListBox).Text);
            ReadWav rw = new ReadWav(@".\Sounds\" + (sender as ListBox).Text);
            array = rw.ReadFileWav();

            //график амплитудно-временной характеристики
            ATKH.ListClear();
            ATKH.setListSampl(array.ToList<short>());
            //ATKH.Invalidate(null, true);

            listSamples = ATKH.getListSampl();

            #region Energy
            //==================================================================================
            //==================================================================================
            //==================================================================================

            /*
            int lll = 0;

            List<short> listForEnerg = new List<short>(listSamples);
            SearchMinEnergOfInterval energ = new SearchMinEnergOfInterval(listForEnerg);
            Sample PointEMax = energ.getMax();
            Sample PointEMin = energ.getMin();
            int k = 10;
            List<float> summar = new List<float>();
            int L = (int)(listSamples.Count * 0.05);
            for (int i = 0; i < listSamples.Count - 1; i++)
            {
                summar.Add(energ.FuncEnergy(listSamples, i, L));
                if (summar.Count > 100)
                {
                    //Поиск пересечения
                    float X1 = k;
                    float Y1 = summar[k] * 2;

                    float X2 = k + 1;
                    float Y2 = summar[k + 1] * 2;

                    float X3 = 0;
                    float Y3 = (float)PointEMax.amplidute * 0.5f;

                    float X4 = listSamples.Count;
                    float Y4 = (float)PointEMax.amplidute * 0.5f;

                    if (Intersection(X1, Y1, X2, Y2, X3, Y3, X4, Y4))
                    {
                        PointF ff = Perex125(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
                        listBordersFromEnerg.Add((int)ff.X);
                    }
                    k++;
                }
            }
            */

            //==================================================================================
            //==================================================================================
            //==================================================================================
            #endregion

            listBorders.Clear();
            listBorders.Add((int)(listSamples.Count * 0.2));
            listBorders.Add((int)(listSamples.Count * 0.8));

            FFT.listBorders = listBorders;
            FFT.listShort = listSamples.GetRange(listBorders[0], listBorders[1] - listBorders[0]);
            //FFT.Invalidate(null, true);

            dfff.list = ATKH.getListSampl();
            //dfff.Invalidate(null, true);

            if (dfff.Formants.Count != 0) etallon.AddFormants(dfff.Formants[0].time, dfff.Formants[1].time);
            //etallon.Invalidate(null, true);

            ATKH.Invalidate(null, true);
            FFT.Invalidate(null, true);
            dfff.Invalidate(null, true);
            etallon.Invalidate(null, true);

            dfff.Formants.Clear();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Stream myStream = null;
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Звуковой файл WAV (*.wav; *.wav) | *.wav; *.wav";
            openFileDialog.InitialDirectory = @".\Sounds";

            try
            {
                if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {

                    ReadWav rw = new ReadWav(openFileDialog.FileName);
                    array = rw.ReadFileWav();

                    //график амплитудно-временной характеристики
                    ATKH.ListClear();
                    ATKH.setListSampl(array.ToList<short>());
                    //ATKH.Invalidate(null, true);

                    listSamples = ATKH.getListSampl();

                    #region Energy
                    //==================================================================================
                    //==================================================================================
                    //==================================================================================

                    /*
                    int lll = 0;

                    List<short> listForEnerg = new List<short>(listSamples);
                    SearchMinEnergOfInterval energ = new SearchMinEnergOfInterval(listForEnerg);
                    Sample PointEMax = energ.getMax();
                    Sample PointEMin = energ.getMin();
                    int k = 10;
                    List<float> summar = new List<float>();
                    int L = (int)(listSamples.Count * 0.05);
                    for (int i = 0; i < listSamples.Count - 1; i++)
                    {
                        summar.Add(energ.FuncEnergy(listSamples, i, L));
                        if (summar.Count > 100)
                        {
                            //Поиск пересечения
                            float X1 = k;
                            float Y1 = summar[k] * 2;

                            float X2 = k + 1;
                            float Y2 = summar[k + 1] * 2;

                            float X3 = 0;
                            float Y3 = (float)PointEMax.amplidute * 0.5f;

                            float X4 = listSamples.Count;
                            float Y4 = (float)PointEMax.amplidute * 0.5f;

                            if (Intersection(X1, Y1, X2, Y2, X3, Y3, X4, Y4))
                            {
                                PointF ff = Perex125(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
                                listBordersFromEnerg.Add((int)ff.X);
                            }
                            k++;
                        }
                    }
                    */

                    //==================================================================================
                    //==================================================================================
                    //==================================================================================
                    #endregion

                    listBorders.Clear();
                    listBorders.Add((int)(listSamples.Count * 0.2));
                    listBorders.Add((int)(listSamples.Count * 0.8));

                    FFT.listBorders = listBorders;
                    FFT.listShort = listSamples.GetRange(listBorders[0], listBorders[1] - listBorders[0]);
                    //FFT.Invalidate(null, true);

                    dfff.list = ATKH.getListSampl();
                    //dfff.Invalidate(null, true);

                    if (dfff.Formants.Count != 0) etallon.AddFormants(dfff.Formants[0].time, dfff.Formants[1].time);
                    //etallon.Invalidate(null, true);

                    ATKH.Invalidate(null, true);
                    FFT.Invalidate(null, true);
                    dfff.Invalidate(null, true);
                    etallon.Invalidate(null, true);

                    dfff.Formants.Clear();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
            }
        }