示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
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);
}
示例#4
0
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();

}