• # Détection

    Posté par (site web personnel) . En réponse au journal panpantempo. Évalué à 1.

    Bravo pour la créativité :-)

    J'ai cherché à comprendre comment tu détectes les "claps".

    function detectClap(data){
     var t = (new Date()).getTime();
     if(t - lastClap < 200) return false; // TWEAK HERE
     var zeroCrossings = 0, highAmp = 0;
     for(var i = 1; i < data.length; i++){
     if(Math.abs(data[i]) > 0.25) highAmp++; // TWEAK HERE
     if(data[i] > 0 && data[i-1] < 0 || data[i] < 0 && data[i-1] > 0) zeroCrossings++;
     }
     if(highAmp > 20 && zeroCrossings > 30){ // TWEAK HERE
     //console.log(highAmp+' / '+zeroCrossings);
     lastClap = t;
     return true;
     }
     return false;
     }
    

    Donc il faut que le signal sonore passe 20 fois au dessus de 0.25 en valeur absolue et 30 fois croiser l'origine ?
    Est-ce que cette métrique est issue de tests en conditions réelles ? ;-)