FmodAudioEffectPitchShift

FmodAudioEffectPitchShift#

继承: FmodAudioEffect < Resource < RefCounted < Object

音高变换效果。

描述#

FmodAudioEffectPitchShift 用 FFT 处理改变信号音高。 pitch_scale 控制音高倍率, fft_size 与 oversampling 会影响声音质量、延迟和 CPU 开销。

基于 FFT(快速傅里叶变换)处理,可通过 FFT 大小和过采样参数调节质量与延迟。FFT 越大,频率分辨率越高,延迟也越大;过采样可改善质量,同时增加 CPU 开销。

通过音高倍率控制音高:1.0 为原音高,2.0 升高一个八度,0.5 降低一个八度。

属性#

方法#

void

set_pitch_scale(pitch_scale: float)

float

get_pitch_scale() const

void

set_fft_size(fft_size: FFTSize)

FFTSize

get_fft_size() const

void

set_oversampling(oversampling: int)

int

get_oversampling() const


枚举#

enum FFTSize:

FFTSize FFT_SIZE_256 = 0

256 点 FFT

FFTSize FFT_SIZE_512 = 1

512 点 FFT

FFTSize FFT_SIZE_1024 = 2

1024 点 FFT

FFTSize FFT_SIZE_2048 = 3

2048 点 FFT

FFTSize FFT_SIZE_4096 = 4

4096 点 FFT

FFTSize FFT_SIZE_MAX = 5

边界值


属性说明#

float pitch_scale = 1.0

  • void set_pitch_scale(pitch_scale: float)

  • float get_pitch_scale() const

音高倍率,限制在 0.01 到 16.0,必须大于 0.0,非正值会被拒绝。默认为 1.0。2.0 升高一个八度,0.5 降低一个八度。半音数可使用 pow(2.0, semitones / 12.0) 转换。


FFTSize fft_size = 3

FFT 窗口大小 (参见 FFT_SIZE_256 ) (参见 FFT_SIZE_512 ) (参见 FFT_SIZE_1024 ) (参见 FFT_SIZE_2048 ) (参见 FFT_SIZE_4096 ) (参见 FFT_SIZE_2048 )


int oversampling = 4

  • void set_oversampling(oversampling: int)

  • int get_oversampling() const

传给 FMOD 音高变换 DSP 的重叠因子,限制在 4 到 32,默认为 4。该属性控制 FFT 重叠,不会提高输出采样率。


方法说明#

void set_pitch_scale(pitch_scale: float)

设置 pitch_scale 。


float get_pitch_scale() const

返回 pitch_scale 。


void set_fft_size(fft_size: FFTSize)

设置 fft_size 。


FFTSize get_fft_size() const

返回 fft_size 。


void set_oversampling(oversampling: int)

设置 oversampling 。


int get_oversampling() const

返回 oversampling 。