📄 stereo.c
字号:
#include "all.h"
void
synt(Info *info, byte *group, byte *mask, Float *right, Float *left)
{
Float vrr, vrl, *r, *l;
short *band;
int i, n, nn, b, bb, nband;
/*mask is grouped */
bb = 0;
for(b = 0; b < info->nsbk; ){
nband = info->sfb_per_sbk[b];
band = info->sbk_sfb_top[b];
b = *group++; /*b = index of last sbk in group */
for(; bb < b; bb++){ /* bb = sbk index */
n = 0;
for(i = 0; i < nband; i++){
nn = band[i]; /* band is offset table, nn is last coef in band */
if(mask[i]){
r = right + n;
l = left + n;
for(; n < nn; n++){ /* n is coef index */
vrr = *r;
vrl = *l;
*l = vrr + vrl;
*r = vrl - vrr;
r++;
l++;
}
}
n = nn;
}
right += info->bins_per_sbk[bb];
left += info->bins_per_sbk[bb];
}
mask += info->sfb_per_sbk[bb-1];
}
}
/* Map mask to intensity stereo signalling */
void
map_mask(Info *info, byte *group, byte *mask, byte *cb_map)
{
int sfb, b, nband;
/* mask goes by group */
for (b = 0; b < info->nsbk; ) {
nband = info->sfb_per_sbk[b];
for (sfb = 0; sfb<nband; sfb++){
if (mask[sfb]) {
if (cb_map[sfb] == INTENSITY_HCB) {
cb_map[sfb] = INTENSITY_HCB2;
mask[sfb] = 0;
} else if (cb_map[sfb] == INTENSITY_HCB2) {
cb_map[sfb] = INTENSITY_HCB;
mask[sfb] = 0;
}
}
}
mask += info->sfb_per_sbk[b];
cb_map += info->sfb_per_sbk[b];
b = *group++; /* b = index of last sbk in group */
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -