Wiki taptempo

0
21
nov.
2020

Il y a quelques années maintenant, mzf publiait un journal sur le site LinuxFr.org parlant de son projet «TapTempo». L’objectif de son programme était de mesurer la cadence d’une musique en tapant simplement sur une touche de son clavier, le résultat s’affichant ensuite dans la console.

Ce journal fut le point de départ d’une série de «projets TapTempo» proposé par les lecteurs du site dans à peu près tous les langages informatiques possibles.

Cette page wiki a pour objectif de (…)

TapTempo en Verilog

77
20
sept.
2020
Matériel

Le projet TapTempo semble faiblir depuis quelques mois maintenant. En panne de langage informatique pour en faire une dépêche ?

N. D. M. — TapTempo est un détecteur de tempol’utilisateur frappe une touche en cadence régulière et le programme en déduit le tempo correspondant. Il a été décliné en de multiples langages de programmation.

Laissez‑moi vous présenter un langage assez particulier puisqu’il ne sert pas à faire de la programmation. Ce langage permet de décrire le comportement numérique d’un composant électronique (on parle alors de langage de description de matériel — HDL) : le Verilog.

C’est aussi un langage utilisé pour faire de la synthèse numérique sur les circuits logiques programmables (FPGA). Dans cet exemple, nous utiliserons la carte de développement à bas coût ColorLight 5A‑75B.

Vue d’ensemble du montage TapTempo

Google libère les ASIC avec un PDK open source en 130 nm

Posté par  (site Web personnel) . Édité par BAud, Xavier Teyssier, Ysabeau et Davy Defaud. Modéré par Davy Defaud. Licence CC By‑SA.
45
5
juil.
2020
Matériel

La libération des FPGA s’accélère à grands pas, il devient presque difficile de suivre toutes les nouvelles sur le sujet. Mais les FPGA ne doivent pas nous faire oublier leurs grands frères que sont les ASIC.
Un FPGA est un composant ayant un silicium déjà « gravé » mais où il est possible de reconfigurer les connexions entre les éléments logiques à volonté. Dans le cas d’un ASIC, on va cette fois graver directement les transistors sur un silicium vierge et les relier via des couches métaliques une fois pour toutes. Il ne faut surtout pas se planter à l’étape de conception car on ne pourra pas modifier les interconnexions une fois la production lancée.

Journal Ça tape tape en confinement

Posté par  (site Web personnel) . Licence CC By‑SA.
30
30
juin
2020

Cher journal,

comme tu dois surement le savoir, le logiciel TapTempo que je développe maintiens à mes heures perdues, mondialement reconnu sur LinuxFr et au-delà, fait partie de la distribution Debian depuis presque 2 ans.

Il était donc temps de consulter le fameux concours de popularité de ladite distribution GNU/Linux pour estimer si les résultats sont à la hauteur des efforts fournis, dans un pur style Retour sur investissement ou ROI pour les décideurs pressés. Au risque de décevoir (…)

Journal Convertir des dates avec month_nb

Posté par  (site Web personnel) . Licence CC By‑SA.
12
14
jan.
2020

month_nb est un petit utilitaire permettant de traduire le nom d'un mois en son nombre, quelle que soit sa langue (fonctionne pour 69 langues actuellement).

>> month_nb('août');
8

J'ai raconté la génèse du projet sur le blog de Meta-Press.es.

La principale motivation vient du fait que rien n'est prévu pour parser des dates internationales en JavaScript (une fois sorti du format ISO et des formats anglais on est livré à soi-même).

En m'inspirant de la traduction (…)

Journal TapTempo en une ligne

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
43
19
juil.
2019

En lisant une dépêche du moment je découvre en passant le logiciel TapTempo. En lisant la description du comportement, par réflexe je me suis dit "tiens ça doit rentrer dans une ligne un algo de ce genre".

perl -ne 'BEGIN{use Time::HiRes qw/gettimeofday/} push(@t,0+gettimeofday()); shift(@t) if @t>5; printf("%3.0f bpm",60*(@t-1)/($t[-1]-$t[0])) if @t>1'

Bon ça ne marque qu'avec la touche Entrée, pas avec n'importe quelle touche, mais ça affiche bien le BPM en moyennant les 5 dernières valeurs. Et ça (…)

Journal WUY : simple GUI pour python3 ... et taptempo ;-)

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
19
19
août
2018

WUY est un simple module python qui permet de transformer votre script python3 en GUI, et ça fonctionne sous linux, mac ou windows (pour peu que la plateforme possède un chrome)

Voilà un exemple de taptempo ;-), en wuy/py3 :

import wuy,datetime

class taptempo(wuy.Window):
    """ <button onclick="wuy.tic().then(x=>{document.querySelector('#tempo').innerHTML=x})">Tap Tempo</button> 
        <span id="tempo"></span>
    """
    size=(100,60)
    t=[]

    def tic(self):
        self.t.append( datetime
(…)

Journal Un autre taptempo en Scala

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
14
27
juil.
2018

Coiffé au poteau sur le créneau du taptempo en Scala par martoni (qui ne bluffait visiblement pas), alors que je mijotais ma version depuis des mois, j'apprends à la dure la loi impitoyable du Time to market et ne puis plus qu'espérer récolter les restes. C'est bien, ça me pousse à publier même si les TU ne sont pas exhaustifs, même si c'est sur l'instance gitlab officielle et pas sur mon instance autohébergée qui est pas finite d'installer (avant je (…)

Journal TapTempo en Crystal-Lang

Posté par  . Licence CC By‑SA.
Étiquettes :
11
27
juil.
2018

Aller hop je m'y mets aussi, un petit TapTempo en Crystal.
Personne ne l'a encore fait, donc ça va permettre de faire découvrir un peu plus ce langage.

Le code est disponible sur https://github.com/syrm/taptempo
Et sinon voici la classe complète :

require "option_parser"

class TapTempo
  @taps = Array(Time::Span).new
  @sample = 5
  @resetTime = 5
  @precision = 0

  def initialize
    generateHelp
  end

  def tap
    currentTap = Time.monotonic
    checkResetTime

    @taps.shift
(…)

Journal TapTempo en Scala

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
21
23
juil.
2018

Le sujet TapTempo est très intéressant pour apprendre un nouveau langage de programmation. En effet, il est beaucoup plus complet qu'un simple Hello World ! Il nous impose de se plonger dans les arcanes du langage et de ses outils pour gérer le temps, l'affichage mais aussi les arguments de la ligne de commande ou les structures «complexe» comme les listes ou les buffers.

Bon évidemment, quand il s'agit d'un langage de description hardware comme présenté la dernière fois avec (…)

Journal Dernières nouvelles de TapTempo

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
28
6
juil.
2018

Cher journal,

voici quelques nouvelles concernant l'utilitaire de calcul de tempo en ligne de commande, le fameux logiciel TapTempo.

Changement d'hébergeur

TapTempo était originellement hébergé sur GitHub, suffisant largement pour ce petit utilitaire sans ambition. Mais suite à l'engouement pour son portage dans d'autres langages de programmation, TapTempo a maintenant son espace internet dédié chez TuxFamily ! Merci à eux pour l'hébergement de qualité.

Le dépôt Git officiel a aussi migré chez TuxFamily. Comme GitHub a été racheté par (…)

Journal Intégration de TapTempo-Chisel sur APF27

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
22
23
mai
2018

Dans un premier journal je décrivais le «core» de TapTempoChisel. Passons maintenant à l'intégration sur un vrai FPGA physique.

J'ai choisi pour cela une carte APF27 de chez armadeus. Cette carte possède un FPGA Spartan3A de chez Xilinx mais elle possède également un microprocesseur i.MX27 permettant de faire tourner Linux. La philosophie de la carte étant d'avoir une zone «en friche» avec le FPGA permettant d'ajouter des périphériques sur mesure.

Périphérique que nous allons construire avec le projet TapTempo. Le (…)

Journal TapTempo sur STM32F469i-Discovery

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
42
28
avr.
2018

Voici une implémentation de TapTempo sur microcontrôleur. C'est un peu le "Hello, world!" 2.0 de l'embarqué car il permet de valider plusieurs périphériques et configurations en un seul coup : l'affichage (driver LCD, librairie graphique …), un bouton (test de l'algorithme de debouncing) ou touch screen, ainsi que la bonne fréquence du processeur et du système sous-jacent (timer OS ou hardware).

La cible embarquée n'est pas un Arduino mais un coeur plus puissant : un Cortex-M4 à 180Mhz de chez (…)

Journal Un composant électronique TapTempo avec Chisel3

Posté par  (site Web personnel) . Licence CC By‑SA.
56
15
avr.
2018

Le «défi» TapTempo est un peu en train de faiblir je trouve. Du coup je vous propose un nouveau langage pour réaliser TapTempo : Chisel. Et pour être plus précis, la version 3 de Chisel.

Contrairement à tous les langages proposés jusqu'ici, Chisel ne permet pas de réaliser un programme qui sera exécuté par une machine réelle ou virtuelle. Chisel permet de décrire l'architecture de la machine elle-même !

C'est ce qu'on appelle un langage de description matériel ou HDL (…)