
Сообщение от
zebest
Может тебе там чО понятнее?))))
Ну хз. По исходникам понимать, как оно работает, а потом делать свой велосипед - это целых 2 шанса налажать 
Короче, если огибающая модулирует амплитуду, то пока сделаю так:
Код:
sndPair saaMixTN(saaChan* ch, saaNoise* noiz) {
sndPair res;
if ((ch->freqEn && ch->lev) || (ch->noizEn && noiz->lev) || !(ch->freqEn || ch->noizEn)) {
res.left = ch->ampLeft;
res.right = ch->ampRight;
} else {
res.left = 0;
res.right = 0;
}
return res;
}
sndPair saaMixTNE(saaChan* ch, saaNoise* noiz, saaEnv* env) {
sndPair res = saaMixTN(ch, noiz);
if (env->enable) {
res.left = ((res.left * env->vol) >> 4) & 0x0e;
if (env->invRight) {
res.right = ((res.right * (env->vol ^ 0x0f)) >> 4) & 0x0e;
} else {
res.right = ((res.right * env->vol) >> 4) & 0x0e;
}
}
}