Un serveur musical pour mon salon

Posté par  . Édité par palm123, cli345, Benoît Sibaud, devnewton 🍺, Nils Ratusznik et BAud. Modéré par devnewton 🍺. Licence CC By‑SA.
57
28
mai
2025
Son

Aujourd’hui, on va mettre en place un serveur musical pilotable à distance en utilisant MPD. Il sera notamment capable de jouer de la musique stockée dessus ou des radios Internet. Il sera aussi capable de se comporter comme une enceinte Bluetooth.

On va parler de récup de vieux matos, de Debian, MPD, PipeWire, Samba, d’agent Bluetooth, de systemd (-analyze, -logind), de Powertop et de vbetool.

Serveur musical - les clients MPD se connectent à MPD, les clients Bluetooth peuvent jouer de la musique, les clients SMB peuvent envoyer des fichier, et le serveur est relié à des enceintes en Jack

Cet article au ton très « administration système » s’adresse à :

  • des gens qui voudraient mettre en place un système plus ou moins similaire, même pour faire autre chose dans le même esprit (en mode tutoriel) ;
  • des gens qui aiment les détails techniques et voir les trucs cools qu’on peut faire avec les logiciels libres ;
  • toute autre personne curieuse pour d’autres raisons.

Il est probablement trop technique pour quelqu’un qui ne manipule pas la ligne de commande, qui pourra peut-être malgré tout, avec suffisamment de motivation, se laisser porter par la démarche.

Journal Débugger un problème de performance avec strace

Posté par  . Licence CC By‑SA.
34
1
sept.
2024

Journal un peu rapide orienté debug de perf et découverte de strace.

J’héberge une instance privée d'Invidious. C’est un frontal alternatif pour Youtube qui permet notamment de suivre des chaînes sans avoir de compte Google, et d’accéder à Youtube avec du code libre. C’est pas mal, en attendant que tout le monde se mette à PeerTube.

Depuis des mois, il y avait une latence aléatoire au chargement des pages, des vidéos, de tout. Parfois tout s’affichait (…)

Journal Fin d’OCSP chez Let’s Encrypt : quid ?

Posté par  . Licence CC By‑SA.
Étiquettes :
76
14
août
2024

Récemment, Let’s Encrypt a annoncé leur intention d’arrêter prochainement leur service OCSP, et cette annonce a été partagée sous la forme d’un lien sur LinuxFr.

Cette annonce mérite démystifications, explications et est l’occasion de parler un peu de ces concepts, en particulier pour celles et ceux qui ne seraient pas familiers avec OCSP ou même comment toute cette infrastructure de confiance fonctionne. Je l’avais un peu fait dans un commentaire complètement buggué, et on m’a suggéré d’en (…)

Journal Fusionner deux profils signal-desktop pour retrouver ses conversations

Posté par  . Licence CC By‑SA.
54
18
avr.
2022

Me revoilà pour un journal un peu technique. On part à l’aventure et on va notamment parler de Signal, de SQL, SQLite, de son extension fts5 (vite fait) et de SQLCipher (variante de SQLite capable de chiffrer les bases de données, découverte à l’occasion), et de fusion de deux bases de données Signal pour reconstruire un historique complet et « réparer » un profil Signal un peu moisi.

Généralités sur Signal

Signal est une application de messagerie instantanée chiffrée de (…)

Journal Simuler un clic avec libevdev et uinput

Posté par  . Licence CC By‑SA.
70
2
sept.
2021

Préambule

Samedi 7 août, 14h UTC+2 : une pluie de tous les enfers se déchaîne. Il pleut tout l’après-midi, mais c’est la tempête surtout pendant une demi heure. Le sol est inondé. Les gens courent, l’imper sur lequel je comptais jette l’éponge, mon téléphone pas étanche dans la poche de l’imper pas étanche est mouillé et c’est le drame : il ne s’allume plus.

Dimanche 8 août. Le téléphone refonctionne (son module wifi et Bluetooth démarre bien quand bon lui (…)

Communiquer avec le serveur depuis un navigateur Web : XHR, SSE et WebSockets

112
18
avr.
2021
Internet

Dans cette dépêche, nous allons faire un tour d’horizon de différentes manières de communiquer avec un serveur depuis une application Web, avec un petit peu d’histoire, avant de rentrer plus profondément dans le fonctionnement des WebSockets, que nous allons démystifier. Nous digresserons ensuite à propos de la gestion (problématique) des requêtes longues et de HTTP 2 avec Apache, et nous discuterons d’une manière de limiter la casse. La dépêche contient quelques morceaux raisonnables mais l’absurdité est latente.

Supposons que nous ayons une application Web qui a besoin de recevoir des évènements du serveur pour voir si quelque chose s’est passé. À tout hasard, un jeu de société en ligne. Ce jeu a besoin d’envoyer les coups des joueurs et joueuses, et de recevoir les coups des autres.

Le serveur ne peut pas contacter le navigateur. Celui-ci est peut-être derrière un pare-feu, et de toute façon il n’y a pas de méthode pour cela. Le modèle du web, c’est une requête HTTP de la part du navigateur, et le serveur sert cette requête. Et puis, à la base, une requête = un chargement de page.

Mais des techniques sont apparues pour abuser de ce modèle, puis les standards se sont mis à intégrer des méthodes pour mener ces abus en toute sérénité.

Journal Trivabble s'offre un nom de domaine

Posté par  . Licence CC By‑SA.
Étiquettes :
30
12
mar.
2021

Pour celles et ceux qui ne connaissent pas, Trivabble est un jeu libre en réseau où il faut aligner des mots en lignes ou en colonnes sur une grille dont certaines cases sont spéciales et faire un max de points possible. Vous connaissez probablement le principe. Rythme effréné et doses d’adrénaline garanties. Bref, ça a été présenté ici dans cette dépêche et dans les articles qui ont suivi.

Préambule

Que ne serait un bon journal sans son intro totalement (…)

Journal FOSDEM 2021 : c'est ce weekend !

Posté par  . Licence CC By‑SA.
Étiquettes :
23
1
fév.
2021

Salut lecteur, lectrice,

FOSDEM 2021, c'est ce weekend (les 6 et 7 février) et ça, vous le saviez peut-être déjà grâce à la dépêche parue plus tôt dans la soirée. Et si vous n'aviez pas percuté, eh bien ce journal est là pour vous, avec l'info dans le titre pour accrocher le regard des gens qui parcourent leurs flux RSS et qui ouvrent sélectivement les nouvelles.

Mais au fait, qu'est-ce que FOSDEM ?

Pour celles et ceux qui ne (…)

Journal Piano Quick & Dirty

Posté par  . Licence CC By‑SA.
Étiquettes :
24
10
oct.
2020

Il y a 5 ans, j'ai voulu apprendre un chant que ma chorale avait fait l'année avant que je les rejoigne. À ma disposition, il y avait la partition, mes souvenirs auditifs et pas d'enregistrement. Ma voix n'était pas la voix principale de ce chant donc ça peut être un peu contre intuitif à apprendre. J'ai donc reproduit la partition sur MuseScore pour la jouer.

Je n'ai pas d'instrument non plus et avoir quelque chose pour jouer des notes rapidement (…)

Journal Réception d'un MMS difficile

Posté par  . Licence CC By‑SA.
74
4
oct.
2020

Incipit

Un alignement de planètes quelconques (ou un alignement quelconque de planètes, comme vous préférez) a rendu impossible une réception de MMS sur le téléphone que j'utilise, un vieil appareil bas de gamme sur Android 6 abandonné par la personne à qui il appartient (c'est pour donner le contexte, rendre les choses concrètes et augmenter le nombre de mots, mais ça n'a pas du tout d'intérêt pour la suite).

En général ça fonctionne, mais là, non : je reçois un (…)

Journal Psychologie d'un parseur Javascript

Posté par  . Licence CC By‑SA.
13
9
sept.
2020

(attention : beaucoup de suppositions, peu de vérifications dans ce journal. Lisez pour le cheminement plus que pour le résultat…)

Un constat choquant

De manière tout à fait intéressante en Javascript :

++ ++ i;

Donne l'erreur suivante dans Node (V8):

SyntaxError: Invalid left-hand side expression in prefix operation`

Et, dans Firefox (SpiderMonkey):

SyntaxError: expected expression, got '++'

Alors que :

i ++ ++;

Donne l'erreur suivante dans les deux moteurs (à quelque chose près) :

SyntaxError: Unexpected
(…)

Journal MPRIS-Sync : Regardez des films ensemble par internet

Posté par  . Licence CC By‑SA.
47
5
juil.
2020

J’ai voulu regarder une série avec ma sœur, parce que c’est quand même bien sympa de s’entendre mutuellement rire pendant les épisodes.

Sauf que problème, on n’habite pas dans la même ville. Comment alors regarder en même temps, facilement, une série ensemble, sans trop de décalage avec possibilité de repasser une scène qui nous a particulièrement amusé ?

Je n’ai pas trouvé de solution libre permettant de diffuser facilement, sans gros décalage, depuis un ordinateur vers un autre ordinateur sur (…)

Journal LineageOS 17.1 (Android 10), F-Droid et géolocalisation Wifi et GSM avec microG

Posté par  . Licence CC By‑SA.
27
20
juin
2020

J'ai un téléphone sous LineageOS et la version 17.1 (Android 10) est maintenant disponible pour mon téléphone. J'utilise F-Droid et microG.

Contexte

F-Droid est un magasin d'applications libres. J'utilise ça et pas autre chose. De plus, n'installant pas les fameuses GApps (services Google), je n'ai pas le Play Store, le service de communication utilisé par plein d'applications qui utilise le cloud Google (GCM - Google Cloud Messaging / Firebase), et le service de géolocalisation Google utilisant les antennes Wifi et (…)