Forum Linux.debian/ubuntu Le bazar du son sous Linux…

Posté par .
Tags : aucun
1
12
juil.
2010
J'aimerais savoir si c'est possible de faire marcher un bête micro (analogique, pas usb) avec alsa.

Je suis sous Debian Lenny, j'ai une carte son CM8738 avec sorties analogique et optique. J'ai un kit 5.1 branché sur la sortie optique. Après pas mal de galères au fil du temps avec esd, puis pulseaudio, puis alsa et dmix, j'ai réussi à avoir du son fonctionnel : 5.1, plusieurs flux en même temps (y compris le plugin proprio flash), émulation oss (sauf pour un jeu Loki, heroes3).

J'étais enfin content… jusqu'à ce que je branche le micro. Je l'ai mis sur l'entrée analogique (la rose). J'ai vérifié que le volume du micro était bon, que Mic. boost est activé. J'ai rajouté des trucs à propos de dsnoop dans /etc/asound.conf. Je me suis d'ailleurs aperçu que le son marchait aussi bien sans ce fichier (il y avait avant le résultat de mes batailles pour avoir du son 5.1 avec dmix). Mais rien de rien, audacity n'enregistre que du vide.

J'ai une mauvaise expérience avec pulseaudio. À la limite si y'a pas moyen d'avoir le micro avec alsa, je veux bien installer pulseaudio ou jackd. Mais il faudrait qu'ils passent par alsa (c'est-à-dire comme une application normale qui utiliserait dmix), parce que je suis pas motivé à l'idée de tout changer encore dans ma config son…

Des idées pour faire marcher ce micro ?
  • # Tu peux envoyer une copie d'écran de alsamixer ?

    Posté par . Évalué à 1.

    Envoie seulement une copie d'écran de alsamixer, parfois c'est juste un canal qui est éteint.

    Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

  • # PulseAudio ne peut rien pour toi

    Posté par (page perso) . Évalué à 2.

    Je ne pense pas que PulseAudio puisse grand chose pour toi. Ce n'est qu'un serveur de son, qui se branche sur Alsa : si Alsa ne prend pas en charge ton entrée micro, PulseAudio ne fera rien de plus.

    Tu peux toujours essayer ceci dit : PulseAudio utilisant Alsa, tu auras toujours dmix, et les logiciels non PulseAudio pourront toujours utiliser le son en même temps. Enfin, signalons que PulseAudio implémente aussi une émulation d'entrée Alsa, qui peut être sélectionnée comme carte par défaut, permettant aux logiciels Alsa d'envoyer directement à PulseAudio.

    Non, là ça ressemble plutôt à une limitation de ton pilote son…
    • [^] # Re: PulseAudio ne peut rien pour toi

      Posté par (page perso) . Évalué à 4.

      Je détaille par un schéma ma petite explication sur PulseAudio :

                  ┌───────┐        ┌──────┐
      API Pulse ══╡       ╞════════╡ Alsa │
                  │ Pulse │  card0 └──────┘
      API ALSA  ══╡       │
          default └───────┘



      Ainsi, un logiciel ALSA utilisera la sortie Alsa par défaut, c'est à dire… PulseAudio ! PulseAudio qui est lui-même branché sur la sortie Alsa correspondant à la vraie carte son.
      • [^] # Re: PulseAudio ne peut rien pour toi

        Posté par . Évalué à 2.

        Alors là ça m'étonne ce que tu racontes : t'as un tuto ou des explications détaillées sur ce système ? De mon expérience avec PA, dès qu'il est lancé tu dis au revoir à tout ce qui touche à alsa.
        • [^] # Re: PulseAudio ne peut rien pour toi

          Posté par (page perso) . Évalué à 3.

          Non, tu peux suspendre pulseaudio le temps d'utiliser une autre application :

          pasuspender jackd

          permet par exemple de libérer la carte son le temps de travailler avec des applis qui exigent Jack.

          Tu peux aussi accéder à ta carte son directement avec F6 dans un alsamixer très récent (moins de 6 mois).

          ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

      • [^] # Re: PulseAudio ne peut rien pour toi

        Posté par . Évalué à 2.

        Pulseaudio ne permet pas le passthrought, je voudrais donc quelque chose comme ça :


                    ┌───────┐        ┌──────┐
        API Pulse ══╡ Pulse ╞════════╡      │
                    └───────┘        │ Alsa │
                    ┌──────┐         │ dmix │
        API ALSA  ══╡ Alsa ╞═════════╡      │
                    └──────┘         └──────┘


        Si je lance « pulseaudio -D -v » alors que j'ai déjà une appli alsa lancée, un mplayer -ao pulse n'a pas de son. Si je lance pulseaudio sans aucune appli qui utilise la carte son, ça marche déjà mieux : mplayer -ao pulse a du son. Mais si je lance une autre appli, et refait mplayer -ao pulse, mplayer reste bloqué sur la première image de la vidéo.

        Apparement pulseaudio se considère comme la seule appli légitime à accéder directement à alsa, il en a rien à foutre de dmix.

        PS : comment tu t'y es pris pour le dessin aasci art ?
        • [^] # Re: PulseAudio ne peut rien pour toi

          Posté par (page perso) . Évalué à 3.

          Pulseaudio ne permet pas le passthrought

          Je ne sais pas ce que tu appelles le pass-through, mais s'il s'agit d'utiliser PulseAudio comme une émulation de sortie Alsa, comme sur mon schéma, il le permet, clairement.
          http://pulseaudio.org/wiki/PerfectSetup#ALSAApplications

          Quant à tes histoires avec PulseAudio qui monopolise Alsa, je n'ai touché à rien et je n'ai pas ce problème : chez moi, PulseAudio est un client Alsa dmixé comme tous les autres. En revanche, attention, je crois que dmix n'est capable de mixer que des flux de même fréquence d'échantillonage.

          Apparement pulseaudio se considère comme la seule appli légitime à accéder directement à alsa, il en a rien à foutre de dmix.

          Ça m'étonne énormément qu'un logiciel utilisateur, même pas root, ait le droit d'ordonner à Alsa de cesser de dmixer.

          PS : comment tu t'y es pris pour le dessin aasci art ?

          Ce n'est pas de l'ASCII, plutôt de l'Unicode. J'ai fait ça en copiant et collant les caractères de dessin depuis une table générée par l'outil unicode [http://kassiopeia.juls.savba.sk/~garabik/software/unicode/]. Ensuite j'ai remplacé tous les espaces par des espaces insécables sinon Templeet les bouffe.
          • [^] # Re: PulseAudio ne peut rien pour toi

            Posté par . Évalué à 1.

            Je ne sais pas ce que tu appelles le pass-through

            Le passthrough S/PDIF, c'est ce qui permet d'envoyer directement du dts ou de l'ac3 à un kit 5.1. Pulseaudio est connu pour ne pas le supporter. Il faut fermer toutes les applis qui utilisent le son, ainsi pulse détecte qu'il n'est plus utilisé et libère alsa. On peut alors utiliser le passthrough… tout simplement parce que pulse n'est plus en ligne de compte, on parle directement à alsa.

            mais s'il s'agit d'utiliser PulseAudio comme une émulation de sortie Alsa, comme sur mon schéma

            Regarde mon schéma, ce n'est pas ce que je veux faire. Il n'est pas question d'envoyer les applis alsa sur une sortie émulée par pulse alors que j'ai une installation alsa fonctionnelle. D'ailleurs je vois pas l'intérêt pour moi à part rajouter de la latence.

            J'aimerais avoir un pulseaudio fonctionnel, je peux en avoir besoin (pour une deuxième carte son, pour du réseau etc). Mais à condition qu'il se rajoute à ma config existante comme une simple appli dmixée, et que mes autres applis alsa continuent à fonctionner comme aujourd'hui. Cad en parlant directement à alsa, pas en passant par une sortie alsa émulée par pulse. Et je pourrais spécifier au cas par cas les applis qui passeraient par pulse en les configurant explicitement pour.

            En revanche, attention, je crois que dmix n'est capable de mixer que des flux de même fréquence d'échantillonage.

            J'ai un doute, chez moi j'ai mpd, mplayer avec du mp3 ou de l'ac3/dts, flash et tous les différents formats des vidéos youtube et autres, les jeux etc qui passent tous en même temps. J'ai pas eu à me poser la question de la fréquence d'échantillonage

            Ça m'étonne énormément qu'un logiciel utilisateur, même pas root, ait le droit d'ordonner à Alsa de cesser de dmixer.

            C'est pourtant ce qu'il se passait à l'époque où dmix n'était pas activé par défaut. Il n'y avait qu'une seule appli qui pouvait utiliser alsa au même moment, root ou pas root.
  • # Hmm

    Posté par (page perso) . Évalué à 2.

    J'ai déjà eu ce genre de problème ;)

    Normalement, tu as une entrée capture dans kmix (gnome aussi surement), tu cliques la case à cocher "capture" et oh miracle cela fonctionne !
  • # Ça marche

    Posté par . Évalué à 2.

    Effectivement c'était bien une histoire de canal capture à activer. Comme j'avais jamais utilisé de micro, j'étais pas au courant de cette subtilité : dans kmix les pastilles vertes sont pour contrôler les canaux de sorties, les rouges pour les entrées et les jaunes pour les autres types de canaux.

    Je ne trouve pas cette séparation vert/rouge/jaune pertinente, étant donné qu'il y a déjà les onglets Sortie / Entrée / Interrupteurs. Sans compter que kmix a la bonne idée de proposer l'option mute des canaux d'entrée… avec une pastille verte ! Fatalement en activant la pastille verte au-dessus du micro je pensais activer l'entrée micro… Naïf que je suis.

    J'ai compris ça en lisant la doc. Alors oui, j'aurais dû avoir le réflexe d'aller lire la doc, même pour une appli kde. Mais franchement, un poil de cohérence ça aiderait à s'y retrouver quand même…

    De plus, l'interrupteur Mic boost ne marche pas chez moi dans kmix. J'ai dû aller l'activer dans alsamixer. Or sans le Mic boost (qui rajoute +20dB à l'entrée micro) mon micro n'enregistre rien de perceptible.

    Conclusion : pour les trucs "avancés" mieux vaut utiliser directement alsamixer. Y'a toujours alsamixer-gui pour les consolophobes, je sais pas ce qu'il vaut. Je testerai le kmix de kde4 et si rien n'a changé, je soumettrai un rapport de bug whislist.

    Bon, tout ça pour vérifier qu'un micro analogique c'est pas super, on entend rien et y'a trop de souffle. À moins que les applis de voip fassent des miracles, j'ai plus qu'à en chercher un usb qui marche sous Linux (et me reprendre la tête avec alsa, j'imagine…)
    • [^] # Re: Ça marche

      Posté par (page perso) . Évalué à 3.

      Un micro usb, c'est juste un micro analogique avec une mini carte d'acquisition du son (convertisseur analogique/numérique/usb).

      À moins d'habiter à cotés d'un Tokamak, un bon micro avec un bon câble peut donner de très bon résultats.

      Si ce n'est pas le cas, c'est ta carte son qui est mauvaise. Dans ce cas, il faut mieux changer la carte son. C'est plus cher, mais tu gagnes vraiment en qualité sonore.

      Envoyé depuis mon lapin.

Suivre le flux des commentaires

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