117 lines
3.0 KiB
C
117 lines
3.0 KiB
C
|
|
#ifndef pitchshifer_api_h__
|
|
#define pitchshifer_api_h__
|
|
|
|
|
|
#include "AudioEffect_DataType.h"
|
|
#ifndef u8
|
|
#define u8 unsigned char
|
|
#endif
|
|
|
|
#ifndef u16
|
|
#define u16 unsigned short
|
|
#endif
|
|
|
|
#ifndef s16
|
|
#define s16 short
|
|
#endif
|
|
|
|
|
|
#ifndef u32
|
|
#define u32 unsigned int
|
|
#endif
|
|
|
|
|
|
#ifndef s32
|
|
#define s32 int
|
|
#endif
|
|
|
|
#ifndef s16
|
|
#define s16 signed short
|
|
#endif
|
|
|
|
/*#define EFFECT_OLD_RECORD 0x01
|
|
#define EFFECT_MOYIN 0x0*/
|
|
//#define EFFECT_ROBORT_FLAG 0X04
|
|
|
|
enum {
|
|
EFFECT_VOICECHANGE_PITCHSHIFT = 0x00,
|
|
EFFECT_VOICECHANGE_CARTOON = 0x01,
|
|
EFFECT_VOICECHANGE_SPECTRUM = 0x02,
|
|
EFFECT_VOICECHANGE_ROBORT = 0x03,
|
|
EFFECT_VOICECHANGE_MELODY = 0x04,
|
|
EFFECT_VOICECHANGE_WHISPER = 0x05,
|
|
EFFECT_VOICECHANGE_F0_DOMAIN = 0x06,
|
|
EFFECT_VOICECHANGE_F0_TD = 0x07,
|
|
EFFECT_VOICECHANGE_FEEDBACK = 0x08,
|
|
EFFECT_VOICECHANGE_NULL = 0xff,
|
|
};
|
|
|
|
|
|
enum {
|
|
MODE_C_MAJOR = 0x0,
|
|
MODE_Csharp_MAJOR,
|
|
MODE_D_MAJOR,
|
|
MODE_Dsharp_MAJOR,
|
|
MODE_E_MAJOR,
|
|
MODE_F_MAJOR,
|
|
MODE_Fsharp_MAJOR,
|
|
MODE_G_MAJOR,
|
|
MODE_Gsharp_MAJOR,
|
|
MODE_A_MAJOR,
|
|
MODE_Asharp_MAJOR,
|
|
MODE_B_MAJOR,
|
|
MODE_KEY // 按12个key来趋近,不确定用的是哪个调式的时候配这个,工具默认值用这个
|
|
};
|
|
|
|
enum {
|
|
PLATFORM_VOICECHANGE_CORDIC = 0,
|
|
PLATFORM_VOICECHANGE_CORDICV2 = 1
|
|
};
|
|
|
|
enum {
|
|
FFT_V3 = 3, //br23/br25__br30/br34/br36__WL80.
|
|
FFT_EXT = 4, //br27/br28__WL82. 扩展模式.FFT硬件模块支持非2的指数次幂点数.
|
|
};
|
|
|
|
enum {
|
|
PLATFORM_VOICECHANGE_FFT = 0,
|
|
PLATFORM_VOICECHANGE_FFTV2 = 1
|
|
};
|
|
|
|
typedef struct _VOICECHANGER_PARM {
|
|
u32 effect_v; //
|
|
u32 shiftv; //pitch rate: 40-250
|
|
u32 formant_shift; // 40-250
|
|
af_DataType dataTypeobj;
|
|
} VOICECHANGER_PARM;
|
|
|
|
|
|
typedef struct _AUTOTUNE_PARM {
|
|
u32 mode; //调式
|
|
u32 speedv; //2到100
|
|
af_DataType dataTypeobj;
|
|
} AUTOTUNE_PARM;
|
|
|
|
typedef struct _AUTOTUNE_FUNC_API_ {
|
|
u32(*need_buf)(void *ptr, AUTOTUNE_PARM *vc_parm);
|
|
int (*open)(void *ptr, u32 sr, AUTOTUNE_PARM *vc_parm); //中途改变参数,可以调init
|
|
void (*run)(void *ptr, short *indata, short *outdata, int len); //len是多少点数
|
|
void (*init)(void *ptr, AUTOTUNE_PARM *vc_parm); //中途改变参数,可以调init
|
|
} AUTOTUNE_FUNC_API;
|
|
|
|
|
|
typedef struct _VOICECHANGER_FUNC_API_ {
|
|
u32(*need_buf)(void *ptr, VOICECHANGER_PARM *vc_parm);
|
|
int (*open)(void *ptr, u32 sr, VOICECHANGER_PARM *vc_parm); //中途改变参数,可以调init
|
|
void (*run)(void *ptr, short *indata, short *outdata, int len); //len是多少个点数
|
|
void (*init)(void *ptr, VOICECHANGER_PARM *vc_parm); //中途改变参数,可以调init
|
|
} VOICECHANGER_FUNC_API;
|
|
|
|
extern VOICECHANGER_FUNC_API *get_voiceChanger_func_api();
|
|
extern VOICECHANGER_FUNC_API *get_voiceChanger_adv_func_api();
|
|
extern AUTOTUNE_FUNC_API *get_autotune_func_api();
|
|
|
|
#endif // reverb_api_h__
|
|
|