Exemple #1
0
        /// <summary>
        /// 多音色波形生成
        /// </summary>
        /// <param name="sampleRate">采样率</param>
        /// <param name="waveLength">波形长度</param>
        /// <param name="amplitude">波幅</param>
        /// <param name="frequencyMin">最低频率</param>
        /// <param name="frequencyMax">最高频率</param>
        /// <param name="frequencyPoints">频率个数</param>
        /// <param name="isLog">是否对数波形</param>
        /// <param name="optimizeCrestFactor">是否优化参数</param>
        /// <returns>波形数据</returns>
        public static double[] MultiToneWaveform(double sampleRate, uint waveLength, double amplitude,
                                                 double frequencyMin, double frequencyMax, ushort frequencyPoints, bool isLog = false,
                                                 bool optimizeCrestFactor = false)
        {
            MultiToneWaveform multiToneWaveform = new MultiToneWaveform();

            multiToneWaveform.CreateData(amplitude, frequencyMin, frequencyMax, frequencyPoints,
                                         waveLength, isLog, optimizeCrestFactor, sampleRate);
            double[] waveData = new double[multiToneWaveform.GetTotalPoints()];
            multiToneWaveform.GetCopyOfData(waveData);
            return(waveData);
        }