Ejemplo n.º 1
0
        /// <summary>
        /// Processes the FadeOut FX
        /// </summary>
        public void FadeOut()
        {
            float[] fadeScale           = new float[(int)fadeSamples];
            MatLabFunctions.Linspace ls = new MatLabFunctions.Linspace(0, 1, (float)fadeSamples);
            int i = 0;

            while (ls.hasNext())
            {
                try
                {
                    fadeScale[i] = ls.getNextFloat();
                }
                catch (IndexOutOfRangeException ex)
                { break; }
                i++;
            }
            int startFade       = (waveFile.Data.ProcessedSamples.Length - (int)fadeSamples) - 1;
            int disposedSamples = 0;

            for (int j = waveFile.Data.ProcessedSamples.Length - 1; j > 0; j--)
            {
                if (waveFile.Data.ProcessedSamples[j] != 0)
                {
                    break;
                }
                disposedSamples++;
            }
            startFade = startFade - disposedSamples;
            for (int j = fadeScale.Length - 1; j > -1; j--)
            {
                waveFile.Data.ProcessedSamples[startFade] = (Int16)Math.Round(waveFile.Data.ProcessedSamples[startFade] * fadeScale[j]);
                startFade++;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Processes the FadeIn FX.
        /// </summary>
        public void FadeIn()
        {
            float[] fadeScale           = new float[(int)fadeSamples];
            MatLabFunctions.Linspace ls = new MatLabFunctions.Linspace(0, 1, (float)fadeSamples);
            int i = 0;

            while (ls.hasNext())
            {
                try {
                    fadeScale[i] = ls.getNextFloat();
                }
                catch (IndexOutOfRangeException ex)
                { break; }
                i++;
            }

            i = 0;

            foreach (float scale in fadeScale)
            {
                waveFile.Data.ProcessedSamples[i] = (Int16)Math.Round(waveFile.Data.ProcessedSamples[i] * scale);
                i++;
            }
        }