Journal panpantempo

40
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 http://play.bci.im/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 (+1/-0).

    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 (+1/-0).

      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 (+4/-0). Dernière modification le 10/03/18 à 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 (page perso) . Évalué à 7 (+5/-0).

        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!

        Incubez l'excellence sur https://linuxfr.org/board/

  • # \_°<

    Posté par . Évalué à 0 (+1/-2).

    Tout est dans le titre.

  • # Détection

    Posté par (page perso) . Évalué à 1 (+0/-0).

    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 ? ;-)

Envoyer un commentaire

Suivre le flux des commentaires

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