/// <summary>
        /// load and filter signal
        /// </summary>
        /// <param name="slider">slider</param>
        /// <returns></returns>
        public static SignalSamples load(Slider slider)
        {
            // skip if file not exist
            if (!FileHandler.available())
            {
                return(null);
            }


            // load samples
            Settings set = Settings.instance();

            int           sampleRate = FileHandler.readSampleRate();
            SignalSamples samples    = FileHandler.readBlocks(slider.seek, slider.blocks);

            samples            = samples.Normalize();
            samples.sampleRate = sampleRate;


            // find signal amplitude
            Signal deltaGreat = samples.FindMax() - samples.FindMin();

            // 2x 12 hz filter
            if (set.noise12Hz)
            {
                samples.Filter(12, sampleRate / 2, 1.3f);
                samples.Filter(12, sampleRate / 2, 1.3f);
            }
            // 20 hz filter
            if (set.noise20Hz)
            {
                samples.Filter(20, sampleRate / 2, 1.3f);

                samples.Filter(20, sampleRate / 2, 1.3f);
            }

            // 45 hz filter
            if (set.noise45Hz)
            {
                samples.Filter(45, sampleRate / 2, 1.3f);
            }


            // 50hz or 60hz noise
            if (set.noiseCustom > 0)
            {
                samples.Filter(set.noiseCustom, sampleRate / 2, 1);
            }


            // notch filter
            if (set.noiseNotch)
            {
                samples = FilterNotch.Process(samples, 400, 0.1f);
            }



            // find signal loss enerrgy amplitude
            Signal deltaLess = samples.FindMax() - samples.FindMin();

            // amplify loosed amplitude
            samples.Amplify(deltaGreat, deltaLess);

            // load file description
            FileHandler.id = XmlClass <EcgStatistic> .Load(FileHandler.p + ".xml", SerializedFormat.Document);

            return(samples);
        }