📄 tpitch.asm
字号:
; .BSS BB,5
;M147 .SET 147
;IDM .SET 60
;IDM_1 .SET IDM-1
;IDB .SET M147+3-1+IDM
.BSS PIT_BUF,1
.BSS PIT_RAR,1
PIT_K .SET IDB-IDM
PIT_K_1 .SET PIT_K-1
PITCHVQ
;=============================================
; k = idimb - idim;
; start = k + 1;
; m = b[0];
;=============================================
; for (i = 0; i < k; i++) buf[i] = buf[i + idim];
;=============================================
LAMM AR0
PUSH
LACC PIT_BUF
SAMM AR0 ;PIPELINE
ADD #IDM
SAMM BMAR
MAR *,AR0
RPT #PIT_K_1
BLDD BMAR,*+
;=============================================
; for (i = k; i < idimb; i++) buf[i] = buf[i - m];
;=============================================
LACC PIT_BUF
ADD #PIT_K
SAMM AR0
SUB BB
SAMM BMAR
RPT #IDM_1
BLDD BMAR,*+
;=============================================
; for (i = 0; i < idim; i++) buf[i + k] = rar[i] += b[2] * buf[i + k]; }
;=============================================
LAMM AR1
PUSH
LACC PIT_BUF
ADD #PIT_K
SAMM AR0
LACC #IDM_1
SAMM BRCR
LT BB+2
LAR AR1,PIT_RAR
MPY *+,AR1
RPTB PIT_1-1
LACC *,0,AR0
MPYA *
SACL *+,0,AR1
SACL *+
PIT_1
;=============================================
;=============================================
POP
SAMM AR1
POP
SAMM AR0
RET
;pitchvq(float rar, int idim, float *buf, int idimb, float *b, char *type)
;{ int k, m, i, start;
; float buf2[MAXLP], frac;
; k = idimb - idim; start = k + 1; m = b[0];
; for (i = 0; i < k; i++) buf[i] = buf[i + idim];
; for (i = k; i < idimb; i++) buf[i] = buf[i - m];
; for (i = 0; i < idim; i++) buf[i + k] = rar[i] += b[2] * buf[i + k]; }
;=============================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -