DreamHunter ·
Hi! =) I need add Phase streamin in this multiple OSC in ASM. I did not understand it in assembler. Please help. thanks in advance..
streamin freqm; streamin phase;
streamout sin; streamout tri; streamout saw; streamout pulse;
int ABSMASK=2147483647;
float count=0; float F0P5=0.5; float F1=1; float F1P5708=1.5708; float F2=2; float F4=4; float FM0P165539=-0.165539; float F0P007403=0.007403;
//increment count by frequency * (4/samplerate) movaps xmm0,count; addps xmm0,freqm;
// subtract 4 from count if count>2 movaps xmm1,xmm0; cmpps xmm1,F2,6; movaps xmm2,F4; andps xmm2,xmm1; subps xmm0,xmm2; movaps count,xmm0;
//set saw as half count movaps xmm1,xmm0; mulps xmm1,F0P5; movaps saw,xmm1;
//build triangle from modulus of count andps xmm0,ABSMASK; subps xmm0,F1;
//output triangle movaps tri,xmm0;
//construct sin from triangle (tweeked coeff's) mulps xmm0,F1P5708; movaps xmm1,xmm0; mulps xmm1,xmm1; movaps xmm2,xmm1; mulps xmm2,F0P007403; addps xmm2,FM0P165539; mulps xmm2,xmm1; addps xmm2,F1; mulps xmm2,xmm0; movaps sin,xmm2;
//pulse float one=1; float negOne=-1; movaps xmm1,xmm0; orps xmm1,one; andps xmm1,negOne; movaps pulse,xmm1;