u16 generateAudioSample(void) { u16 mix_sample = 1; u16 osc1_sample = 1; u16 osc2_sample = 1; u16 noise_sample = 0; OSC1.Env.compteur++; osc1_sample = processOSC(&OSC1); osc1_sample = generateur_enveloppe(osc1_sample, &OSC1.Env); osc1_sample = multiplySample(osc1_sample, cur_preset.MIX_VCO1, 100); OSC2.Env.compteur++; osc2_sample = processOSC(&OSC2); osc2_sample = generateur_enveloppe(osc2_sample, &OSC2.Env); osc2_sample = multiplySample(osc2_sample, cur_preset.MIX_VCO2, 100); // noise_sample = processNoise(); mix_sample = addSamples(osc1_sample, osc2_sample); if (!mix_sample) mix_sample = 1; return (mix_sample); }
u16 generateAudioSample(void) { u16 mix_sample = 1; u16 osc1_sample = 1; u16 osc2_sample = 1; u16 noise_sample = 0; static u16 noise = 0; if (cur_preset.ARPG_Type && notesON > 1) arpeggios(); OSC1.Env.compteur++; osc1_sample = processOSC(&OSC1); osc1_sample = generateur_enveloppe(osc1_sample, &OSC1.Env); osc1_sample = multiplySample(osc1_sample, cur_preset.MIX_VCO1, 100); OSC2.Env.compteur++; osc2_sample = processOSC(&OSC2); osc2_sample = generateur_enveloppe(osc2_sample, &OSC2.Env); osc2_sample = multiplySample(osc2_sample, cur_preset.MIX_VCO2, 100); if (noise) noise--; else noise = 1000; cur_preset.Env.compteur++; noise_sample = tab_noi[noise]; noise_sample = (noise_sample > 0x7FFF ? noise_sample - 0x4000 : noise_sample + 0x4000); noise_sample = generateur_enveloppe(noise_sample, &cur_preset.Env); noise_sample = multiplySample(noise_sample, cur_preset.MIX_NOIS, 100); /* osc1_sample = addSamples(osc1_sample, noise_sample); osc2_sample = addSamples(osc2_sample, noise_sample); mix_sample = addSamples(osc1_sample, osc2_sample); */ mix_sample = addSamples(addSamples(osc1_sample, osc2_sample), noise_sample); mix_sample = (mix_sample ? mix_sample : 1); return (mix_sample); }
u16 generateAudioSample(void) { u16 mix_sample = 1; u16 osc1_sample = 0; u16 osc2_sample = 0; u16 noise_sample = 0; osc1_sample = processOSC(&OSC1); // osc2_sample = processOSC(&OSC2); // noise_sample = processNoise(); // if ((OSC1.phase && OSC2.phase) || (!OSC1.phase && !OSC2.phase)) /* ---- OK ---- if (OSC1.phase && OSC2.phase) mix_sample = (0xFFFF - ((0xFFFF - osc1_sample) + (0xFFFF - osc2_sample)));// + noise_sample; else if (!(OSC1.phase) && !(OSC2.phase)) mix_sample = osc1_sample + osc2_sample; else if (!(OSC1.phase)) mix_sample = (osc1_sample < 0xFFFF - osc2_sample ? 0xFFFF - (osc2_sample - osc1_sample) : osc1_sample - (0xFFFF - osc2_sample)); else mix_sample = (0xFFFF - osc1_sample < osc2_sample ? 0xFFFF - (osc1_sample - osc2_sample) : osc2_sample - (0xFFFF - osc1_sample)); ---- OK ---- */ mix_sample = osc1_sample; /* else if (OSC1.phase && (0xFFFF - osc1_sample > osc2_sample)) mix_sample = 0xFFFF - (0xFFFF - osc1_sample + osc2_sample); else if (OSC1.phase && (0xFFFF - osc1_sample <= osc2_sample)) mix_sample = (0xFFFF - osc1_sample) + osc2_sample; else if (OSC2.phase && (0xFFFF - osc2_sample > osc1_sample)) mix_sample = 0xFFFF - (0xFFFF - osc2_sample + osc1_sample); else if (OSC2.phase && (0xFFFF - osc2_sample <= osc1_sample)) mix_sample = (0xFFFF - osc2_sample) + osc1_sample; */ /* if (osc1_sample >= 0x8000 && osc2_sample >= 0x8000) mix_sample = 0xFFFF - osc1_sample - osc2_sample; else if (osc1_sample <= 0x7FFF && osc2_sample <= 0x7FFF) mix_sample = osc2_sample + osc1_sample; else if (osc1_sample <= 0x7FFF && osc2_sample >= 0x8000) mix_sample = osc1_sample + (0xFFFF - osc2_sample); else if (osc1_sample >= 0x8000 && osc2_sample <= 0x7FFF) mix_sample = (0xFFFF - osc1_sample) + osc2_sample;*/ if (mix_sample == 0) mix_sample = 1; return (mix_sample); }
u16 generateAudioSample(void) { u16 mix_sample = 1; u16 osc1_sample = 0; u16 osc2_sample = 0; u16 noise_sample = 0; OSC1.Env.compteur++; osc1_sample = processOSC(&OSC1); osc1_sample = generateur_enveloppe(osc1_sample, &OSC1.Env); osc1_sample = multiplySample(osc1_sample, cur_preset.MIX_VCO1, 100); OSC2.Env.compteur++; // osc2_sample = processOSC(&OSC2); // osc2_sample = generateur_enveloppe(osc2_sample, &OSC2.Env); // osc2_sample = multiplySample(osc2_sample, cur_preset.MIX_VCO2, 100); // noise_sample = processNoise(); if (osc1_sample > 0x7FFF && osc2_sample > 0x7FFF) mix_sample = 0xFFFF - (((0xFFFF - osc1_sample) + (0xFFFF - osc2_sample)) / 2); else if (osc1_sample <= 0x7FFF && osc2_sample <= 0x7FFF) mix_sample = (osc1_sample + osc2_sample) / 2; else if (osc1_sample <= 0x7FFF) { if (osc1_sample < 0xFFFF - osc2_sample) mix_sample = 0xFFFF - ((0xFFFF - osc2_sample) / 2 + osc1_sample / 2); else mix_sample = osc1_sample / 2 + (0xFFFF - osc2_sample) / 2; } else { if (osc2_sample < 0xFFFF - osc1_sample) mix_sample = 0xFFFF - ((0xFFFF - osc1_sample) / 2 + osc2_sample / 2); else mix_sample = osc2_sample / 2 + (0xFFFF - osc1_sample) / 2; } if (!mix_sample) mix_sample = 1; return (mix_sample); }
//-------------------------------------------------------------- void testApp::update(){ for(int i = 0; i < K; i++) kinects[i].markAsOld(); processOSC(); //------------------------- if(bLoadMLP){ bLoadMLP = false; matrixData.openMLP(); for(int i = 0; i < K; i++) kinects[i].setMatrix(matrixData.getMatrix(i)); } //------------------------- if(bTracking){ if(!bCalibrated) { bCalibrated = match.startTracking(kinects, trackers); } else{ for(int i = 0; i < N; i++) trackers[i].resetCandidates(); match.matchCandidates(kinects, trackers); for(int i = 0; i < N; i++) trackers[i].match(); } } else{ bCalibrated = false; } //---- sendDistances(); sendPositions(); sendAzimuts(); if(bReset){ sendReset(); bReset = false; } if(bSaving){ if(!pbSaving){ frame = 0; pbSaving = true; } sendSaving(frame); frame += 1; } else{ pbSaving = false; } if(ofGetFrameNum() % 30 == 0) sendPing(); //----- SCREEN INFO char msg[2048]; matrixData.getStatus(msg); strcat(msg, oscStatus); char kinectMsg[500]; for(int i = 0; i < K; i++){ kinects[i].getStatus(kinectMsg, i); strcat(msg, kinectMsg); } char other[500]; sprintf(other, "\n[CENTER] %4.f, %4.f\n[REF POINT] %4.f, %4.f\n[REF VECTOR] %4.f, %4.f ", center.x, center.z, refPoint.x, refPoint.z, refVector.x, refVector.z); strcat(msg, other); sprintf(other, "\n[GHOST 1] %4.f, %4.f\n[GHOST 2] %4.f, %4.f ", ghost0.x, ghost0.z, ghost1.x, ghost1.z); strcat(msg, other); float delta[3]; int n = 0; if(bTracking && bCalibrated){ for(int i = 0; i < N; i++){ sprintf(other, "\n[TRACKER %d] %4.f %4.f %4.f", i, trackers[i].pos.x, trackers[i].pos.y, trackers[i].pos.z); strcat(msg, other); } } sprintf(other, "\n[STATE] %1.d", state); strcat(msg, other); strcat(msg, "\n\nPRESS AND DRAG:\n[1] cam zoom [2] cam x/y [2] cam rot\n"); strcat(msg, "PRESS:\n[ ] to start tracking\n"); status->setName(msg); status->setSize(300, 400); calibratedButton ->setValue(bCalibrated); //----- // ... //writeLog(); }