Exemplo n.º 1
0
        private static IList <PeakInfo> GetInfo(IPeakProvider peakProvider, PeakProviderSettings settings)
        {
            var infos = new List <PeakInfo>();

            int x           = 0;
            var currentPeak = peakProvider.GetNextPeak();

            while (x < settings.Width)
            {
                var nextPeak = peakProvider.GetNextPeak();

                for (int n = 0; n < settings.PixelsPerPeak; n++)
                {
                    x++;
                }

                for (int n = 0; n < settings.SpacerPixels; n++)
                {
                    // spacer bars are always the lower of the
                    var max = Math.Min(currentPeak.Max, nextPeak.Max);
                    var min = Math.Max(currentPeak.Min, nextPeak.Min);
                    x++;
                }
                infos.Add(currentPeak);
                currentPeak = nextPeak;
            }
            infos.Where(x => x.Max > 0);
            return(infos);
        }
Exemplo n.º 2
0
        private static IList <PeakInfo> GetInfo(IPeakProvider peakProvider, string selectedFile, int pointOnXAccess)
        {
            var settings = new PeakProviderSettings();

            using (var reader = new AudioFileReader(selectedFile))
            {
                int bytesPerSample = (reader.WaveFormat.BitsPerSample / 8);
                settings.Width = pointOnXAccess;
                var samples         = reader.Length / (bytesPerSample);
                var samplesPerPixel = (int)(samples / settings.Width);
                var stepSize        = settings.PixelsPerPeak + settings.SpacerPixels;
                peakProvider.Init(reader, samplesPerPixel * stepSize);
                return(GetInfo(peakProvider, settings));
            }
        }