SUBnote: integrated memcpy/memset

(cherry picked from commit 6ddc5ff44be31aef98d5dca1bc48c1a1fa065b15)
This commit is contained in:
fundamental
2009-10-08 22:24:55 -04:00
committed by Tobias Doerffel
parent 9996483dc3
commit 386a5e1539
2 changed files with 8 additions and 13 deletions

View File

@@ -418,7 +418,6 @@ void SUBnote::filter(bpfilter &filter,REALTYPE *smps)
filter.yn2=filter.yn1;
filter.yn1=out;
smps[i]=out;
};
};
@@ -519,17 +518,15 @@ int SUBnote::noteout(REALTYPE *outl,REALTYPE *outr)
{
int i;
for (i=0;i<SOUND_BUFFER_SIZE;i++) {
outl[i]=denormalkillbuf[i];
outr[i]=denormalkillbuf[i];
};
memcpy(outl, denormalkillbuf, SOUND_BUFFER_SIZE * sizeof(REALTYPE));
memcpy(outr, denormalkillbuf, SOUND_BUFFER_SIZE * sizeof(REALTYPE));
if (NoteEnabled==OFF) return(0);
//left channel
for (i=0;i<SOUND_BUFFER_SIZE;i++) tmprnd[i]=RND*2.0-1.0;
for (int n=0;n<numharmonics;n++) {
for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpsmp[i]=tmprnd[i];
memcpy(tmpsmp, tmprnd, SOUND_BUFFER_SIZE * sizeof(REALTYPE));
for (int nph=0;nph<numstages;nph++)
filter(lfilter[nph+n*numstages],tmpsmp);
for (i=0;i<SOUND_BUFFER_SIZE;i++) outl[i]+=tmpsmp[i];
@@ -541,13 +538,13 @@ int SUBnote::noteout(REALTYPE *outl,REALTYPE *outr)
if (stereo!=0) {
for (i=0;i<SOUND_BUFFER_SIZE;i++) tmprnd[i]=RND*2.0-1.0;
for (int n=0;n<numharmonics;n++) {
for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpsmp[i]=tmprnd[i];
memcpy(tmpsmp, tmprnd, SOUND_BUFFER_SIZE * sizeof(REALTYPE));
for (int nph=0;nph<numstages;nph++)
filter(rfilter[nph+n*numstages],tmpsmp);
for (i=0;i<SOUND_BUFFER_SIZE;i++) outr[i]+=tmpsmp[i];
};
if (GlobalFilterR!=NULL) GlobalFilterR->filterout(&outr[0]);
} else for (i=0;i<SOUND_BUFFER_SIZE;i++) outr[i]=outl[i];
} else memcpy(outr, outl, SOUND_BUFFER_SIZE * sizeof(REALTYPE));
if (firsttick!=0) {
int n=10;
@@ -581,10 +578,8 @@ int SUBnote::noteout(REALTYPE *outl,REALTYPE *outr)
// Apply legato-specific sound signal modifications
if (Legato.silent) { // Silencer
if (Legato.msg!=LM_FadeIn) {
for (i=0;i<SOUND_BUFFER_SIZE;i++) {
outl[i]=0.0;
outr[i]=0.0;
}
memset(outl, 0, SOUND_BUFFER_SIZE* sizeof(REALTYPE));
memset(outr, 0, SOUND_BUFFER_SIZE* sizeof(REALTYPE));
}
}
switch (Legato.msg) {

View File

@@ -83,7 +83,7 @@ private:
void initfilter(bpfilter &filter,REALTYPE freq,REALTYPE bw,REALTYPE amp,REALTYPE mag);
void computefiltercoefs(bpfilter &filter,REALTYPE freq,REALTYPE bw,REALTYPE gain);
void filter(bpfilter &filter,REALTYPE *smps);
inline void filter(bpfilter &filter,REALTYPE *smps);
bpfilter *lfilter,*rfilter;