internal void Process(MusicService job) { var xj = new XTempoJob(); xj.SourceFileName = job.SourceFile; xj.AlternativeOutputPath = job.DestinationFile; xj.TempoDelta = job.TempoDelta; xj.PitchDelta = job.PitchDelta; ProcessWav(xj); }
private void ProccessMp3(XConverter xConverter, XTempoProcessor xTempoProcessor, string mp3Path, string mainSourceFileName) { XJobResult res = xConverter.Convert(mp3Path, XFileType.Wav); SaveTempFile(res.TempFileName, res.OutputData); var wavTempoJob = new XTempoJob { SourceFileName = res.TempFileName, ReturnData = true }; xTempoProcessor.Process(wavTempoJob); //var afterTempoWavToMp3Job = new XConvertJob { SourceData = wavTempoJob.OutputData, DestinationFileType = XFileType.Mp3 }; SaveTempFile(mainSourceFileName.GenerateGuidPath(XFileType.Mp3), wavTempoJob.OutputData); //xConverter.Convert(mp3ToWavJob); //if (afterTempoWavToMp3Job.SourceData != null) //{ // File.WriteAllBytes(afterTempoWavToMp3Job.SourceFileName, afterTempoWavToMp3Job.SourceData); //} }
private void ProcessWav(XTempoJob param) { var outFileName = string.IsNullOrEmpty(param.AlternativeOutputPath) ? param.SourceFileName.GenerateOutPutPath() : param.AlternativeOutputPath; var soundTouch = new SoundTouch <TSampleType, TLongSampleType>(); if (param.SourceData != null) { File.WriteAllBytes(param.SourceFileName, param.SourceData); } using (var inFile = new WavInFile(param.SourceFileName)) using (var outFile = new WavOutFile(outFileName, (inFile).GetSampleRate(), (inFile).GetNumBits(), (inFile).GetNumChannels())) { Setup(soundTouch, inFile.GetSampleRate(), inFile.GetNumChannels(), param.TempoDelta, param.PitchDelta); Process(soundTouch, inFile, outFile); } param.ResulFileName = outFileName; if (param.ReturnData) { param.OutputData = File.ReadAllBytes(outFileName); File.Delete(outFileName); } }
internal void Process(XTempoJob wavTempoJob) { ProcessWav(wavTempoJob); }