Journal TapTempo sous la forme d'un service sur internet

Posté par  . Licence CC By‑SA.
Étiquettes :
19
11
mar.
2018

Bonjour tout le monde,

Vu que nous somme en 2018, il est temps de passer à une version plus moderne de TapTempo. Toutes les versions étaient jusqu'à présent exécutées en local, alors que c'est tellement plus simple et plus pratique sous la forme d'un service sur internet exécuté sur un autre ordinateur, voir potentiellement dans le nuage (hype °o°).

Bien évidemment l'application reste destinée à être utilisée en ligne de commande:

telnet theglu.org 2999

Si vous avez l'envie de (…)

Journal Journal Portage de TapTempo en Forth

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
13
11
mar.
2018

Salut à tous. Voici un portage de TapTempo en Forth.

5 set-precision
6 Constant steps

: now utime drop ;
: calc-tempo steps 60 1000 1000 * * * s>f   drop now swap - s>f   f/ ;
: print-tempo ." Tempo: " f. ." bpm" cr ;
: restart now steps ;

: main
  ." Appuyer sur la touche entrée en cadence (q pour quitter)." cr
  restart
  begin
    key 113 <> while 1- dup 0 = if calc-tempo print-tempo restart
(…)

Journal Portage de TapTempo en Clojure

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
11
10
mar.
2018

Salut à tous.

Voici une version en Clojure. Rien de remarquable, juste qu'on affiche le tempo tous les 6 battements.
Il n'y a pas la prise en charge d'arguments ou d'internationalisation.

(ns taptempo.core
  (:import jline.console.ConsoleReader)
  (:gen-class))

(defn now []
  (System/currentTimeMillis))

(defn read-char []
  (->(ConsoleReader.) (.readCharacter) char))

(defn calc-tempo [start end taps]
  (* (/ taps (- end start))
(…)

Journal Portage de TapTempo en C à la Unix-like

Posté par  . Licence CC By‑SA.
Étiquettes :
17
10
mar.
2018

Salut Nal,

Il manquait une version C à la tradition Unix, c'est maintenant fait !

Du coup, pour préserver l'esprit, options courtes uniquement et pas de version, mais pour le reste, c'est assez complet avec contrôle des bornes pour les paramètres. Il ne manque que la page de manuel, ce sera pour une autre fois :)

#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>

#define NSAMPLES 5
#define MAX_NSAMPLES 20
#define RESET_TIME 5
#define PRECISION 0

extern  char
(…)

Journal Portage de TapTempo en Elixir

Posté par  . Licence CC By‑SA.
Étiquettes :
16
10
mar.
2018

Salut à tous!

Voici un portage très simple et assez naif de TapTempo en Elixir. Elixir est un langage fonctionnel exécuté par la machine virtuelle d'Erlang. Il comprend des features intéressantes de flow programming, pattern matching etc. Les variables sont immuables de base et le langage ne comprend pas d'instructions pour boucler (le for est utilisé uniquement pour des compréhensions) et incite donc a utiliser la récursion, plus fonctionnelle.

Le port lui-même est assez naïf mais fonctionne bien. Notez (…)

Journal Portage de TapTempo en Reason

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
14
10
mar.
2018

Si les caractéristiques du langage OCaml vous séduisent mais que sa syntaxe vous rebut, ce journal peut peut-être vous intéresser.
Il s’agit du portage de TapTempo en Reason. Pour ceux qui ne connaissent pas Reason, en gros c’est OCaml avec une syntaxe proche de Javascript. Le code qui suis est le résultat de la conversion du code présenté dans le précédent journal en Reason.

open I18n.Gettext;

let run = (sampleSize, resetTime,
(…)

Journal Portage de TapTempo en OCaml

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
15
10
mar.
2018

Je me désespérais de voir apparaître le portage de TapTempo en OCaml alors je m'y colle.
Taptempocaml est donc le portage du désormais célèbre TapTempo en OCaml.
Ce portage n’a pas la prétention de présenter l’état de l’art de la programmation fonctionnelle. Le but ici est plutôt de fournir le code le plus simple et le plus proche de l’original et ceci pour trois raisons :
I. Bien que le langage fournisse des fonctionnalités très évoluées, dans 93 % (…)

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 (…)

Forum général.cherche-logiciel Logiciel pour calculer le nombre de frappe par minute.

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
36
9
mar.
2018

Ça fait quelque temps que je cherche un simple logiciel qui calculerais le tempo. On pourrait taper sur une touche (espace par exemple) à intervalle plus ou moins régulier et le logiciel afficherais le nombre de moyen battement par minute.
Cette fonctionnalité existe dans beaucoup de logiciels audio-numériques, mais j'aimerais un truc léger en ligne de commande.

Si possible écrit dans un langage simple et pas trop ésotérique, genre C.

Merci d'avance.

Journal Kotaten : un Tap Tempo en Kotlin

Posté par  (site web personnel, Mastodon) .
Étiquettes :
16
9
mar.
2018

J'avais besoin d'un exemple quelconque pour tester différentes choses en Kotlin, dont :

  • L'internationalisation
  • La surcharge des opérateurs
  • L'utilisation de dépendances et de libs Java

Et comme c'est la mode de faire des clones de Tap Tempo, ça me paraissait être un bon candidat. Donc voici le mien – en Kotlin, donc. Il me parait être plus dans l'esprit de la version d'origine que la version Java (qui elle aussi tourne sur une JVM).

Pour vous éviter de (…)

Journal TapTempo en langage Linotte

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
24
9
mar.
2018

Bonjour,
Bah oui, il fallait bien une variante de TapTempo en langage Linotte quand même ! Pour réaliser cette exemple, j'ai un peu triché. J'ai modifié le moteur du langage pour y ajouter la méthode taille() à un casier (une liste). Cela permet d'alléger le code.

J'ai ajouté quelques commentaires pour expliquer certaines commandes.

    /*
    Version originale : http://linuxfr.org/users/mzf/journaux/un-tap-tempo-en-ligne-de-commande
    Comptatible à partir de Linotte 2.7.7
    */
    principale :
        horloge est un horodatage // greffon permettant de récupérer le temps
        tempo valant
(…)

Journal "Portage" de TapTempo en Python3 (windows)

Posté par  . Licence CC By‑SA.
Étiquettes :
8
9
mar.
2018

Bonjour à tous,

Oui je suis un peu en retard sur le sujet, mais bon, devant tant d'engouement, je ne peux m’empêcher de vouloir participer.

Suites aux différents ports et POC de TapTempo dans d'autres langages :
- Rust, v2
- Ada
- JS
- Bash
- PERL
- Python (2.7) (linux)
- Brainfuck
- Java
- Perl6
- Haskell
- Wren
- php
- VBA (Excel)
- Tcl
- GOTO++
- Goland
- awk

Je vous présente ici (…)

Journal Portage de TapTempo en VBA

Posté par  . Licence CC By‑SA.
Étiquettes :
32
8
mar.
2018

Bonjour a tous ,
J ai developper une petite version de TapTempo en VBA sous Excel pour passer un peu le temps au bureau :-) Et oui malheureusement on nous impose de bosser sur du tout M$…
Alors il suffit de creer un UserForm avec dedans un Label (que j ai nomme ici zoneBPM) et voici le code :

A placer dans Module1

Public timestamps(4) As Double

Private Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek
(…)

Journal Portage de TapTempo en Tcl

Posté par  . Licence CC By‑SA.
Étiquettes :
18
8
mar.
2018

Bonjour Nal,

Malgré le déferlement de journaux provoqué par le premier TapTempo, il manquait toujours Tcl à l'appel, donc voilà une version pour ce vénérable petit langage de script facile à apprendre et bien pratique.

#!/usr/bin/env tclsh8.6                                                                                                                            
package require cmdline                                                                                                                            

set options {                                                                                                                                      
    {p.arg 0 "Précision du tempo (nombre de décimales)"}                                                                                           
    {s.arg 5 "Nombre d'échantillons pour le calcul du tempo"}                                                                                      
    {r.arg 5 "Temps de remise à zéro du calcul (secondes)"}                                                                                        
    {v "Afficher
(…)