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) |
get_pitch_scale() const |
|
void |
set_fft_size(fft_size: FFTSize) |
get_fft_size() const |
|
void |
set_oversampling(oversampling: 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
音高倍率,限制在 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
传给 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 。