Une histoire de carte son sous Linux (la GoXLR)

50
17
août
2022
Matériel

Cette dépêche, écrite en janvier 2022 et reniée depuis par son auteur initial, a failli passer à la trappe. Ce n'était pas l'avis de quelques habitués de l'espace de rédaction qui ont trouvé dans ce texte réflexions et inspiration pour d'autres aventures à venir immanquablement entre logiciels libres et certains matériels.
Vous avez sans doute vécu de pareilles péripéties, c'est l'occasion de nous en faire part.

La carte son GoXLR, très prisée par les streamers est en passe de fonctionner sous Linux, mais tout cela ne tient qu'a un fil, ou plutôt, à un dev. Voici l'histoire…

GoXLR Linux

Un conte de Noël un peu bof

C'était le soir de Noël, j'étais super content de voir que le père Noël avait mis une belle carte son, spéciale streamer, de chez TC-Helicon. Une GoXLR.
Et là, c'est le drame !

La carte n'est pas compatible sous Linux. Voyant ma déception, mes parents me proposent de la ramener au magasin. La carte son coûte quand même 500 euros !

Je fais un petit tour sur GitHub et je vois une page qui dit qu'une partie des fonctionnalités, celle du mixage, fonctionne.

Après beaucoup d'hésitations, je décide de la garder.

Moment de doute

Ai-je bien fait ?

En arrivant chez moi, je me rends compte que le script proposé sur GitHub ne fonctionne qu'avec JACK et avec le noyau >= 5.11 … Et avec les noyau <= 5.14 … Un bug noyau a été ouvert a ce sujet.
Pire, pour accéder à l'ensemble des fonctionnalités de la carte, il faut charger le logiciel depuis une machine virtuelle Windows…

Après trois noyaux installés, du trifouillage de JACK et de PulseAudio dans tous les sens absolument rien ne marche. 😢
Je commence à regretter mon cadeau de Noël…

Faut-il se battre pour le libre ?

En rage contre TC-Helicon, et leur carte privatrice ! Je jure de lutter pour mes droits et ceux de mes frères et sœurs linuxien·nes, j'imagine une pétition, que je vais re-prendre ma carte à la FSF-Europe, que je vais écrire à RMS… Et puis je ne fais rien, parce que… la flemme quoi (!)
Enfin si, dans ma fougue révolutionnaire, je vais quand même lâcher deux tweets méchants contre TC-Helicon avec le tag #goXLR… Personne ne les lira…

Vaincu par le système (et par ma flemme) … Je me décide à entamer les négociations avec l'ennemi…

Je vais sur le Discord de TC-Helicon pour demander (très poliment) au service support de publier les sources de leur logiciel sous Windows.

Ils me disent que non, parce que cela permettrait de donner des informations sur les utilisateurs à cause de la télémétrie…
Malin comme un singe, je leur demande de donner tout le reste du code source, sauf cette partie…
Ils me répondent encore poliment d'aller me faire cuire un œuf.

Encore perdu.

Sauvé par la commu !

Je finis par tomber sur un Discord d'utilisateurs de possesseur GoXLR … sous Linux 🥳

Une petite communauté (en particulier un developpeur) bosse sur le sujet et fait de la rétro-ingénierie USB sur la carte. Grâce à WireShark, il réussit à trouver les commandes pour régler la carte et installer des effets et se met à coder un petit utilitaire en Rust.

Une certaine magie s'opère lorsqu'il montre une petite vidéo des faders qui bougent tout seuls depuis sa ligne de commande. ✨

Et l'histoire, elle finit comment ?

Bah, le bug sur le noyau n'est toujours pas réglé. La carte ne marche pas.

Dans le Discord, le génial Dinnerbone, explique que se passer totalement de Windows va encore être très compliqué parce que l'échange d'info se fait à un niveau très bas en USB.

Je lis tous ses commits, dans l'espoir du jour où cela fonctionnera parfaitement sur ma machine. Il paraît que l'espoir fait vivre…

En attendant, la vraie magie de Linux, c'est que j'ai appris plein de trucs, sur PipeWire, JACK et PulseAudio. J'ai aussi vu comment fonctionnait le Rust, un langage très chouette. Je suis pas encore prêt pour contribuer, mais qui sait…
Ha, puis je suis tombé sur une tonne de bloggeurs linuxiens qui parlent de streaming, qui trafiquent OBS et ce qui tourne autour.

C'est peut-être ça la magie de Noël pour Linux. Y a un peu de déception, mais aussi beaucoup d'apprentissage !

PS de la modération : Voir plus bas dans les commentaires pour un happy end.

  • # Dinnerbone

    Posté par  . Évalué à 6.

    Dinnerbone est bien connu dans la communauté Minecraft.

    À l'origine, il développait des mods pour Minecraft avant d'être engagé par le studio Mojang qui développe Minecraft (studio qui a ensuite été racheté par Microsoft)

  • # TC-Helicon aide « un peu »

    Posté par  . Évalué à 8.

    Contrairement à ce que laisse suggérer la dépêche, il semble que TC-Helicon ait aidé un peu le principal développeur.

    C'est toujours ça.

  • # Idem pour une webcam sur Dell XPS13 2 en 1

    Posté par  . Évalué à 8.

    Même histoire à peu de chose prêt pour une webcam d'un portable…

    Tentative d'ajouter le support hardware en mergeant des commits d'un dépôt d'un ingé d'Intel (basé sur kernel 4.9) vers les derniers noyaux (5.4 à l'époque) …. mais pas les compétences en C nécessaires au final (j'avais réussi à merger vers le 4.9, mais la branche 5.4 avait changée trop de chose pour ma compréhension).
    Beaucoup d'aller/retour, de gens très motivés (mais pas assez "qualifiés"), de gens "qualifiés" mais peu dispos malheureusement (car ils ne peuvent pas contribuer à tout, forcement).

    Mes regrets:
    1. Intel pour son non support de son IPU4 sous linux
    2. Dell pour continuer d'inclure du matériel exclusivement supporté sous Windows dans ses portables (oui y a une déclinaison Ubuntu Dev, mais elle est pas toujours avec les derniers cpu… et c'était pas le cas quand j'ai dû faire mon achat)
    3. Mon incapacité à être autonome pour ajouter le support nécessaire…

    Mes choix:
    Ne plus acheter du matériel qui n'est pas déjà pleinement supporté (oui, enfin forcément, je referai l'erreur malheureusement… pas toujours le choix / la possibilité)

  • # Haaaa je vois que c'est publié !

    Posté par  . Évalué à 10.

    Oui, j'avais laissé tombé l'écriture de cet article.
    Pour info, depuis 2 mois, la carte marche nickel ! On a meme une interface web qui fait hyper bien le taff !

  • # Sans contrainte ,pas de plaisir !! :-)

    Posté par  . Évalué à 10.

    Bonjour,
    En fait, ça sera le parcours du combattant et la loterie tant qu'une loi ne dira pas : « L'univers du libre est important pour ce pays et la puissance publique veut lui donner les moyens de se développer ;
    article 1 : tout matériel devra dorénavant fournir les pilotes nécessaires aux système libre qu'est gnu/linux.
    article 2 : lorsque le suivi du produit n'est plus assuré, le fournisseur a l'obligation de libérer les sources nécessaires à la poursuite du suivi par des tiers, organismes ou particuliers.»

    Mortalité : il est sans doute plus rentable de s'investir pour faire élire, à tous les échelons, des gens favorables au libre que de batailler sans fin contre les moulins à vent que sont toutes ces boîtes et ces élus qui, a minima n'en ont rien à foutre, quand ils ne favorisent pas outrageusement les GAFAM.
    Pour les cartes-son, je trouve que cela devient d'ailleurs de plus en plus compliqué.

    cordialement,

    PS : moi-même, j'avais acheté d'occasion une EMU0404 dont seule une des deux versions était compatible ; pas de chance, la mienne ne l'était pas…

    • [^] # Re: Sans contrainte ,pas de plaisir !! :-)

      Posté par  (site web personnel) . Évalué à 10. Dernière modification le 18 août 2022 à 20:30.

      On peut aussi se demander pourquoi les matériels que l'on construit :

      • sont super compliqués ;
      • demandent des pilotes super compliqués ;
      • changent autant à chaque micro version.

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # Re: Sans contrainte ,pas de plaisir !! :-)

        Posté par  . Évalué à 3.

        Hypothèse, ils sont fait d'autres composants pas exactement standardisés qui ont des coûts non négligeable et a chaque version ils prennent en fonction de ce qu'il y a sur le marché ? Refaire un pilote dans le monde du matériel est sûrement bien moins coûteux que d'acheter un composant obsolète et cher de la version d'avant ?

      • [^] # Re: Sans contrainte ,pas de plaisir !! :-)

        Posté par  (site web personnel, Mastodon) . Évalué à 5.

        Soit on fait du matériel super-compliqué qui est facile à programmer, mais qui coûte cher et qui est peu flexible.

        Soit on fait du matériel simple, pas cher, qui peut faire plein de trucs, mais qui demande beaucoup de logiciel pour fonctionner.

        Comme la deuxième solution coûte moins cher pour le même résultat, c'est celle là qui est utilisée.

        Il y a quelques dizaines d'années, le compromis était différent parce que les machines avaient peu de CPU et de mémoire. Aujourd'hui ces ressources sont en général largement disponibles. Il existe toujours du matériel de lapremière catégorie, par exemple des interfaces réseau qui font tout plein de trucs en interne. Sauf qu'en fait, elles contienne simplement un CPU spécialisé, pour toujours la même raison: c'est moins cher et plus flexible.

      • [^] # Re: Sans contrainte ,pas de plaisir !! :-)

        Posté par  (site web personnel) . Évalué à 5.

        Tout est toujours plus complexe. Regardes une vielle carte, c'est des packages DIP, ensuite tu vois des QFP, maintenant c'est des packages à billes, tellement il y a de connections.

        Tout est toujours plus complexe. Le dernier M1 d'Apple dépasse le milliard de transistors.

        Pour le cas de la webcam d'intel, on dirais qu'il y a un peu d'intelligence dedans comme des traitements d'image ou autre. Ils veulent cacher les algos.

        "La première sécurité est la liberté"

        • [^] # Re: Sans contrainte ,pas de plaisir !! :-)

          Posté par  (site web personnel) . Évalué à 6.

          J'ai utilisé le mot compliqué et pas complexe exprès :-)

          Exemple dans un autre domaine: systemd est plus complexe que les anciens init (il a plus de fonctionnalités, pourtant il est moins compliqué (la syntaxe des units est plus simple que les vieux scripts shells).

          Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

          • [^] # Re: Sans contrainte ,pas de plaisir !! :-)

            Posté par  (site web personnel) . Évalué à 7.

            Exemple dans un autre domaine: systemd est plus complexe que les anciens init (il a plus de fonctionnalités, pourtant il est moins compliqué (la syntaxe des units est plus simple que les vieux scripts shells).

            C'est vrai, systemd est un très bon logiciel (merci Lennart Poettering). Cependant, j'avais moins de mal à faire ce que je voulais avec initd.
            Je n'ai jamais trouvé une explication simple pour l'utiliser. Les explications s'adressent toujours à des experts.

          • [^] # Re: Sans contrainte ,pas de plaisir !! :-)

            Posté par  . Évalué à 2.

            J'ai utilisé le mot compliqué et pas complexe exprès :-)

            Pourrais-tu nous donner tes définitions de ces deux termes, qu'on soit tous bien d'accord sur ce que nos perceptions/compréhensions/définitions convergent et coïncident?

  • # Histoire similaire

    Posté par  (site web personnel, Mastodon) . Évalué à 6.

    Ça me rappelle beaucoup le driver EciAdsl que j'avais développé… il y a 21 ans déjà, ça ne me rajeunit pas !

    Je raconte l'histoire ici : https://flashtux.org/eciadsl/story/

    Le développement est arrêté, les modems USB ayant (je l'espère) disparu.

    WeeChat, the extensible chat client

Suivre le flux des commentaires

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