Journal panpantempo

Posté par  (site web personnel) . Licence CC By‑SA.
43
9
mar.
2018

Ah Nal,

En voyant l'enthousiasme autour de TapTapTempo et notamment la version js, j'ai eu l'idée d'en faire une version pour adultes: panpantempo.

Au lieu de mesurer le tempo de l'appui sur le clavier ou du clic de souris, panpantempo utilise le micro de la webcam pour détecter le tempo d'une fessée!

Pour le tester, tu peux ouvrir la page https://play.devnewton.fr/panpantempo/ avec ton brouteur préféré, autoriser l'accès au microphone et demander un coup de main à ton·a conjoint·e !

panpan

  • # Faut taper fort ?

    Posté par  . Évalué à 2.

    Non parce que j’ai pas l’impression qu’il se laisse abuser par une imitation ton code :-" Il a une préférence pour certains objets de fessée aussi ?

    • [^] # Re: Faut taper fort ?

      Posté par  . Évalué à 2.

      J'ai détourné le soft en frappant des mains plutôt qu'en donnant la fessée. Ça fonctionne nickel ! Beau portage.

      • [^] # Re: Faut taper fort ?

        Posté par  . Évalué à 5. Dernière modification le 10 mars 2018 à 12:26.

        Ah bah en fait le micro était tout simplement éteint. Je me sens tout michu. Et du coup ça fonctionne au poil, oserais-je dire !

      • [^] # Re: Faut taper fort ?

        Posté par  (site web personnel) . Évalué à 7.

        J'aimerais améliorer la détection avec du deeplearning, mais ça demande une base de sons d'au moins un millier de fesses pour l'apprentissage!

        Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

  • # \_°<

    Posté par  . Évalué à 0.

    Tout est dans le titre.

  • # DĂ©tection

    Posté par  (site web personnel) . É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 ? ;-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.