/// <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++; } }
/// <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++; } }