[C#/NAUDIO/.NET5] SmbPitchShiftingSampleProvider 클래스 : PitchFactor 속성을 사용해 피치 변조하기
C#/NAudio 2021. 12. 28. 15:22728x90
반응형
728x170
using System;
using System.Threading;
using NAudio.Wave;
using NAudio.Wave.SampleProviders;
string sourceAudioFilePath = @"D:\source.mp3";
double semitone = Math.Pow(2, 1.0 / 12);
double upOneTone = semitone * semitone;
double downOneTone = 1.0 / upOneTone;
using(MediaFoundationReader reader = new MediaFoundationReader(sourceAudioFilePath))
{
SmbPitchShiftingSampleProvider provider = new SmbPitchShiftingSampleProvider(reader.ToSampleProvider());
provider.PitchFactor = (float)upOneTone;
using(WaveOutEvent waveOutEvent = new WaveOutEvent())
{
waveOutEvent.Init(provider.Take(TimeSpan.FromSeconds(10)));
waveOutEvent.Play();
while(waveOutEvent.PlaybackState == PlaybackState.Playing)
{
Thread.Sleep(500);
}
}
}
728x90
반응형
그리드형(광고전용)
'C# > NAudio' 카테고리의 다른 글
[C#/NAUDIO/.NET5] Mp3FileReader 클래스 : 모노/스테레오 MP3 파일에서 PCM 데이터 구하기 (0) | 2022.01.08 |
---|---|
[C#/NAUDIO/.NET5] MidiFile 클래스 : MIDI 파일 탐색하기 (0) | 2021.12.29 |
[C#/NAUDIO/.NET5] MidiOut 클래스 : DeviceInfo 정적 메소드를 사용해 MIDI 출력 장치 열거하기 (0) | 2021.12.29 |
[C#/NAUDIO/.NET5] MidiIn 클래스 : DeviceInfo 정적 메소드를 사용해 MIDI 입력 장치 열거하기 (0) | 2021.12.29 |
[C#/NAUDIO/.NET5] SignalGenerator 클래스 사용하기 (0) | 2021.12.28 |
[C#/NAUDIO/.NET5] WaveFormat 클래스 : CreateALawFormat 정적 메소드를 사용해 G.711 a-law 같은 포맷 사용하기 (0) | 2021.12.28 |
[C#/NAUDIO/.NET5] WaveFormat 클래스 : CreateCustomFormat 정적 메소드를 사용해 커스텀 포맷 사용하기 (0) | 2021.12.28 |
[C#/NAUDIO/.NET5] RawSourceWaveStream 클래스 사용하기 (0) | 2021.12.28 |
[C#/NAUDIO/.NET5] 건너뛰기(SkipOver) 최적화하기 (0) | 2021.12.28 |
[C#/NAUDIO/.NET5] WaveExtensionMethods 클래스 : Skip/Take 확장 메소드를 사용해 오디오 파일 잘라내기 (0) | 2021.12.28 |
댓글을 달아 주세요