MCPcopy Create free account
hub / github.com/audacity/audacity / add

Method add

lib-src/libsbsms/src/sms.cpp:1408–1685  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1406}
1407
1408void SMS :: add(grain *g0, grain *g1, grain *g2, int c)
1409{
1410 if(c == 0) {
1411 if(band >= minTrial1Band) {
1412 c2even(g0->x, x00[0], N);
1413 }
1414 if(band >= minTrial2Band) {
1415 c2even(g1->x, x10[0], N);
1416 }
1417 c2even(g2->x, x2[0], N);
1418 } else {
1419 if(band >= minTrial1Band) {
1420 c2odd(g0->x, x00[1], N);
1421 }
1422 if(band >= minTrial2Band) {
1423 c2odd(g1->x, x10[1], N);
1424 }
1425 c2odd(g2->x, x2[1], N);
1426 }
1427
1428 float *mag0;
1429 if(band >= minTrial1Band) {
1430 mag0 = (float*)malloc((Nover2+1)*sizeof(float));
1431 calcmags(mag0, x00[c]);
1432 }
1433 float *mag1;
1434 if(band >= minTrial2Band) {
1435 mag1 = (float*)malloc((Nover2+1)*sizeof(float));
1436 calcmags(mag1, x10[c]);
1437 }
1438 float mag2sum[1024];
1439 memset(mag2sum,0,1024*sizeof(float));
1440
1441 float *mag2 = this->mag2[c];
1442 calcmags(mag2sum, g2->x);
1443 calcmags(mag2sum, x2[c]);
1444 calcmags(mag2, x2[c]);
1445#ifdef MULTITHREADED
1446 pthread_mutex_lock(&magMutex[c]);
1447#endif
1448 if(band >= minTrial1Band) mag0Queue[c].push(mag0);
1449 if(band >= minTrial2Band) mag1Queue[c].push(mag1);
1450#ifdef MULTITHREADED
1451 pthread_mutex_unlock(&magMutex[c]);
1452#endif
1453 float magmax = mag2[0];
1454 for(int k=1;k<=kEnd;k++) {
1455 if(magmax < mag2[k]) magmax = mag2[k];
1456 }
1457 float peakmin = magmax * peakThresh;
1458
1459 float xt2 = 1.0f;
1460 bool bTroughN1 = false;
1461 bool bTroughN2 = false;
1462 float x0 = 1.0f;
1463 float y0 = mag2[1];
1464 float x1 = 0.0f;
1465 float y1 = 0.0f;

Callers

nothing calls this directly

Calls 6

c2evenFunction · 0.85
c2oddFunction · 0.85
maxFunction · 0.85
lrintfFunction · 0.70
minFunction · 0.50
writeMethod · 0.45

Tested by

no test coverage detected