# [alsa] Master ou pcm sur une delta audiophile 24/96 (résolu)

## Marsu

Bonjour,

je viens juste de m'acheter une carte son M-Audio delta audiophile 24/96, elle marche parfaitement : directement reconnue avec alsa et tout. Le truc qui manque cependant, c'est un contrôle Master ou PCM permettant de gérer le volume. Je m'explique dans alsamixer il y a deux contrôles de volume qui me sont utiles : DAC 1 et DAC 2 (qui n'ont pas de mute d'ailleurs). Je souhaiterais qu'il y ait un Master permettant de contrôler les deux à la fois et aussi de "muter"/"démuter" le son. Est-ce qu'il est possible de faire ça avec les fichiers de configuration alsa ? Est-ce que quelqu'un a déjà essayé de faire quelque chose d'approchant ?

----------

## guilc

T'as essayé ça ? a tout hasard. Ca parle d'un contrôle pcm, ça pourrait...

http://www.alsa-project.org/main/index.php/Matrix:Module-ice1712#The_.asoundrc_file

----------

## Marsu

c'est ce que j'ai déjà dedans, mais y'a rien de plus (peut être que alsa ne l'a pas pris en compte, comment lui dire de se mettre à jour par rapport au .asoundrc ?).

----------

## mdos

salut,

moi j'utilise ca pour contrôler le son sur ma carte hercule 5.1

http://alsa.opensrc.org/index.php/Softvol

----------

## Marsu

ça m'a l'air d'être ce que je cherchais : dès que je suis de retour chez moi j'essaye!

----------

## Marsu

Yeahhh, c'est exactement ce que je voulais, si y'a des gens qui cherchent à faire la même chose pour la même carte :

```

pcm.softvol {

    type            softvol

    slave {

        pcm         "front:CARD=M2496,DEV=0"

    }

    control {

        name        "Master"

        card        0

    }

}

pcm.!default {

    type             plug

    slave.pcm       "softvol"

}

```

Pour rafraichir l'environnement par rapport au asoundrc j'ai rien trouvé de mieux que de se délogguer/relogguer pour l'instant.  J'ai aussi l'impression depuis que j'ai rajouté ce contrôleur de volumen que les aigus crachent un peu.

----------

## Marsu

Bon, en fait pas tant yeah que ça : j'ai le volume que pour une seule appli à la fois maintenant. En fait, alsa m'a l'air tellement mauvais pour ça que finalement je me suis fait un petit script :

```

#!/bin/bash

if [ "$1"x == "up"x ]; then

        volume0=$(amixer get DAC,0 | grep "Mono:" | awk '{print $2}')

        volume1=$(amixer get DAC,1 | grep "Mono:" | awk '{print $2}')

        Y0=$(($volume0+1))

        Y1=$(($volume1+1))

        amixer set DAC,0 $Y0

        amixer set DAC,1 $Y1

fi

if [ "$1"x == "down"x ]; then

        volume0=$(amixer get DAC,0 | grep "Mono:" | awk '{print $2}')

        volume1=$(amixer get DAC,1 | grep "Mono:" | awk '{print $2}')

        Y0=$(($volume0-1))

        Y1=$(($volume1-1))

        amixer set DAC,0 $Y0

        amixer set DAC,1 $Y1

fi

if [ "$1"x == "mute"x ]; then

        state=$(cat ~/.mute | awk '{print $3}')

        echo "state=$state"

        if [ $state -ne 0 ]; then

                volume0=$(cat ~/.mute | awk '{print $1}')

                volume1=$(cat ~/.mute | awk '{print $2}')

                amixer set DAC,0 $volume0

                amixer set DAC,1 $volume0

                echo "0 0 0" > ~/.mute

        else

                volume0=$(amixer get DAC,0 | grep "Mono:" | awk '{print $2}')

                volume1=$(amixer get DAC,1 | grep "Mono:" | awk '{print $2}')

                echo "$volume0 $volume1"

                amixer set DAC,0 0

                amixer set DAC,1 0

                echo "$volume0 $volume1 1" > ~/.mute

        fi

fi

```

Donc voilà, merci pour l'aide, mais softvol au bout du compte m'a l'air un peu merdique. A moins qu'on puisse faire un équivalent à ça directement dans alsa, auquel cas je suis preneur.

----------

## Fenril

J'ai du mal à croire qu'une carte orientée MAO ne gère pas le mixage en hardware  :Confused:   Peut-être parce que c'est sensé être plus souple ?

En l'occurrence, si tu veux gérer plusieurs canaux de mixage pour tes applications, il faut que tu installe un serveur son comme Pulseaudio, esd, ou Arts. Renseigne-toi sur lequel te conviendra le mieux. Il y en a un aussi intégré à Alsa, c'est dmix, tu peux t'aider ici : http://www.linuxmao.org/tikiwiki/tiki-index.php?page=DMIX

Mais j'ai encore plus de mal à croire que ça n'est pas configuré automatiquement par Alsa, à moins d'avoir une vieille version. Peut-être devrais-tu relancer l'utilitaire alsaconf qui détecte et configure ta carte son automatiquement (à faire en root).

----------

## Marsu

Ben en fait, elle gère le mixage, mais pas quand on utilise softvol

J'ai le alsa du kernel 2.6.34 et j'ai installé la carte avec alsaconf y'a 3 semaines.

Mais j'ai trouvé bizarre que par défaut on ait pas de contrôleur de volume Master/pcm ni de fonction mute. A la place, y'a deux contrôleurs de volume DAC 0 et DAC 1 qui gèrent les canaux gauche/droite indépendamment, mais du coup c'est assez chiant quand on veut juste baisser le son avec les raccourcis clavier. Je pensais qu'on pouvait faire ça de manière simple avec un fichier .asoundrc, mais finalement c'est allé plus vite d'écrire un script qui bidouillait directement sur les volumes des DAC.

----------

## guilc

Au passage, remplace moi vite les "$(echo  "$volume0+1" | bc) " par "$((volume0+1))" dans ton script

Pas besoin d'invoquer bc pour des calculs si simples  :Wink: 

----------

## Marsu

c'est fait, merci

----------

## Fenril

 *Marsu wrote:*   

> Ben en fait, elle gère le mixage, mais pas quand on utilise softvol
> 
> J'ai le alsa du kernel 2.6.34 et j'ai installé la carte avec alsaconf y'a 3 semaines.
> 
> Mais j'ai trouvé bizarre que par défaut on ait pas de contrôleur de volume Master/pcm ni de fonction mute. A la place, y'a deux contrôleurs de volume DAC 0 et DAC 1 qui gèrent les canaux gauche/droite indépendamment, mais du coup c'est assez chiant quand on veut juste baisser le son avec les raccourcis clavier. Je pensais qu'on pouvait faire ça de manière simple avec un fichier .asoundrc, mais finalement c'est allé plus vite d'écrire un script qui bidouillait directement sur les volumes des DAC.

 

Oui c'est bizarre pour moi aussi. Moi le potard Master disparaît sur ma Audigy lorsque je "clear" la configuration du DSP à l'aide d'un petit programme utilitaire (qui s'installe automatiquement lorsqu'on a correctement configuré ALSA_CARDS) appelé lo10k1. Il permet aussi de charger des configurations DSP, ce qui permet de faire réapparaître le contrôleur Master. Ça doit être un peu pareil pour la M-Audio, il y a bien un DSP programmable non (désolé jamais testé les M-Audio) ? Par contre je ne sais pas s'il y a des outils pour sous Linux  :Confused:  Mais essaye cette piste.

----------

## Marsu

lo10k1 ? Il est sensé être où ?

----------

## Fenril

lo10k1 c'est réservé aux cartes Sound Blaster il me semble.

Je ne connais pas assez les M-Audio pour t'aider, juste t'indiquer quelques pistes à prendre ou non. Mais il me semble que tu ne peux pas trop manipuler le DSP de la 2496 sous Linux, rien n'est prévu pour. Essaye cet utilitaire, sans garantie : http://alsa.opensrc.org/index.php/Envy24control Normalement, il est contenu dans le package alsa-tools, qui est normalement automatiquement installé si tu as renseigné ALSA_CARDS dans ton make.conf. Rien ne dit que mon idée règlera ton souci.

Bon courage.

----------

