Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Il a transformé quatre disques durs en enceintes pour rejouer une démo culte de 1993

Un développeur du nom de Niv Singer a eu l'idée improbable de brancher quatre vieux disques durs en guise d'enceintes, puis de leur faire cracher Second Reality, cette production que le groupe finlandais Future Crew a sortie en 1993 et qui reste, plus de trente ans après, l'une des plus vénérées de toute l'histoire du PC, avec une musique extraordinaire (que j'ai écoutée des millions de fois).

[Embed: https://hackaday.com/2026/06/29/hard-drive-speakers-crank-out-classic-demo/]

Pour ceux qui n'ont jamais croisé ce terme (ou pas dans le bon sens), une démo, dans ce milieu qu'on appelle la demoscene, c'est un programme conçu pour faire produire à une machine des effets graphiques et sonores qu'on la croyait pourtant incapable de sortir, le tout calé au millimètre sur la musique. Second Reality a remporté l'Assembly 1993, la grande compétition du genre, le 30 juillet de cette année-là, et a longtemps tenu lieu de démonstration ultime de ce qu'un PC de l'époque avait réellement dans le ventre.

Le principe que Niv Singer exploite ici est en réalité tout simple, presque bête. Dans un disque dur, une bobine déplace la tête de lecture au-dessus des plateaux qui tournent, exactement comme la bobine d'un haut-parleur fait bouger sa membrane pour brasser l'air. En envoyant un signal audio dans cette bobine plutôt que les commandes de positionnement habituelles, la tête se met à vibrer et produit donc du son.

Sauf que voilà, l'intéressé ne cache pas vraiment les limites de la chose. Le rendement est mauvais, le volume reste famélique et la réponse en fréquence, pour reprendre ses propres mots, est franchement catastrophique. Un disque dur n'a jamais été pensé pour faire de la musique, et ça s'entend.

D'où l'astuce, qui consiste à ne surtout pas se contenter d'un seul disque. Il en a empilé quatre, des Western Digital Caviar de 500 Go chacun, répartis à raison de deux par canal stéréo, la gauche et la droite. Sur chaque canal, un filtre répartiteur, ce fameux crossover qui découpe le son entre les différentes fréquences, confie les graves à un disque et les aigus à l'autre, histoire que chacun bosse dans la plage où il se débrouille le moins mal.

Et il ne s'arrête pas là, puisque les plateaux des disques se mettent en plus à tourner en rythme avec la musique. Pour obtenir ça, il pilote finement leur vitesse avec du PWM, une technique qui consiste à hacher l'alimentation électrique très vite pour doser pile l'énergie envoyée au moteur. Le résultat tient autant du concert bricolé que de l'installation lumineuse de salon.

Tout le projet, baptisé Spin Doctor, est posé sur GitHub, schémas et code compris, pour quiconque voudrait reproduire l'expérience avec ses propres rebuts informatiques.

Faire rejouer la démo la plus mythique du PC par le matériel qu'on balance d'habitude à la déchèterie, perso j'adore.

Source : Hackaday

Bash-screensavers - Des économiseurs d'écran pour votre terminal

Un économiseur d’écran, je pense que tout le monde voit ce que c’est.

Bon c’était très utile à l’époque des vieux écrans CRT pour éviter qu’ils ne gardent une trace fantôme à cause d’une image statique, mais aujourd’hui sur nos écrans modernes c’est devenu complétement inutile. Toutefois on continue à les utiliser parce que c’est joli et sympa.

Et bien bash-screensavers c’est pareil. Ce projet transforme non pas votre écran, mais juste votre terminal en feu d’artifice ASCII, en matrice, ou en simulation de vie cellulaire. C’est tout aussi joli et sympa même si bien sûr faire tourner ces screensavers comme ça consomme probablement plus d’énergie CPU que de laisser votre terminal en pause avec du texte statique.

Bash-screensavers propose donc 11 thèmes différents … Il y a l’alpha qui affiche des pixels colorés aléatoires, le bouncing avec son “O” qui rebondit façon Pong, le classique matrix qui simule la pluie de code vert des films Wachowski, pipes qui génère un labyrinthe de tuyaux infini, fireworks qui lance des feux d’artifice ASCII, life qui implémente le jeu de la vie de Conway, rain pour une pluie apaisante, speaky qui parle de façon dramatique, stars qui affiche un champ d’étoiles scintillantes, tunnel qui vous fait voler dans un tunnel digital, et vibe pour tout ce qui est simulation de vibe coding.

L’installation est également hyper simple :

git clone https://github.com/attogram/bash-screensavers.git
cd bash-screensavers
./screensaver.sh

Vous arrivez alors sur un menu interactif qui vous propose de choisir parmi les 11 screensavers. Ou vous pouvez lancer directement un screensaver spécifique avec ./screensaver.sh matrix, ou un random avec ./screensaver.sh -r. Ctrl+C pour sortir.

Chaque screensaver est en réalité un script bash autonome placé dans le dossier gallery/. Par exemple, gallery/matrix/matrix.sh contient tout le code pour recréer l’effet Matrix et quand vous regardez le code, vous réalisez que c’est de l’interprété ligne par ligne un peu nul, pas super optimisé, avec des boucles while true, des sleep 0.05 pour ralentir l’animation, et des appels à tput cup pour positionner le curseur à chaque frame.

Tenez, prenons bouncing. Le script doit calculer la position du “O”, détecter les collisions avec les bords du terminal, inverser la vélocité, effacer l’ancienne position, afficher la nouvelle, attendre un peu, et recommencer. Ça consomme du CPU pour un effet visuel qu’on pourrait obtenir en CSS avec 5 lignes de code et zero conso de CPU dès le premier rendu. Mais bon, c’est du script bash alors c’est trop cooool !

Quoiqu’il en soit, mon préféré c’est life. C’est le Jeu de la Vie de Conway où vous avez une grille de cellules, et chaque cellule peut être vivante ou morte. ET à chaque génération, vous appliquez ces règles : une cellule vivante avec 2 ou 3 voisins vivants survit, sinon elle meurt. Et une cellule morte avec exactement 3 voisins vivants redevient vivante. Implémenter ça en bash, ça veut donc dire parcourir une matrice 2D, compter les voisins pour chaque cellule, stocker l’état suivant, et redessiner le tout.

Le vrai but de bash-screensavers, vous l’aurez compris, ce n’est donc pas de protéger votre écran. Ça on s’en fout. Non, le vrai but, c’est de signaler à vos collègues les boulzors que : “Je travaille, ne touchez pas à mon terminal”. Hé oui, la nature humaine est mal faites car si quelqu’un voit un terminal avec du texte statique, il peut penser que la session est abandonnée alors que s’il voit un terminal avec des pipes ASCII qui poussent en temps réel, il sait que quelqu’un a lancé ça volontairement.

Le projet inclut même une section Not Ready For Primetime avec des screensavers expérimentaux qui ne sont pas encore assez bien pour figurer dans la galerie principale. Et tout le monde peut apporter sa petite contribution.

Merci à Lorenper pour l’info.

❌