Modifier le taux d'échantillonnage dans ALSA

Je suis un ordinateur Audiophile, j'ai utilisé Windows (avec ASIO4ALL) et OSX pour l'audio. Maintenant, je fais Ubuntu 13 mon HTPC / Audio stéréo. Pour commencer, j'ai désactivé l'audio Pulse et utilisé GooMusicplayer avec ALSA.

Mon DAC est capable de 24 bits 96khz. Je n'arrive pas à find une configuration pour ALSA pour définir le taux d'échantillonnage de sortie. Comment puis-je le configurer?

Le taux d'échantillonnage de l'appareil est par défaut celui configuré par l'application, c'est-à-dire le taux d'échantillonnage du file d'origine.

Alsa utilise par défaut le même taux d'échantillonnage et le même format que la source. Il est cependant possible de forcer la fréquence d'échantillonnage vers le haut (ou vers le bas).

Voici une façon de le faire. (dans /etc/asound.conf ou ~ / .asoundrc )

pcm.device{ format S24_LE rate 96000 type hw card 0 device 0 } 

Pcm (attention: le format 24 bits ne fonctionnera pas sauf si vous avez une carte compatible, j'utilise normalement S32_LE qui fonctionne sur la plupart des maps).

 pcm.!default{ type plug slave.pcm "device" } 

ce qui précède ne fonctionnera cependant que pour les sources stéréo (donc si vous jouez à partir d'une source 5.1 qui utilisera par défaut le pcm surround51, les choses deviennent un peu plus compliquées)

Le seul moyen que je connais (et utilise personnellement) pour forcer le taux d'échantillonnage de sources non stéréo est de prendre des parties de ce file et de les modifier. (Note: je n'ai pas écrit ce file moi-même)

(Vous pouvez find mon asound.conf dans cette question et il suffit de le copyr directement au lieu de passer par la difficulté de le modifier manuellement ci-dessous)

Copiez d'abord le pcm "dmixed" et modifiez sa section matérielle au taux d'échantillonnage et au format désirés.

Copiez ensuite les composants par défaut, surround40 et surround51 de la même façon qu'ils sont. Cela dmixera efficacement toutes les sorties et convertira le taux d'échantillonnage de toutes les sources 2.0, 4.0 et 5.1 à la fréquence d'échantillonnage qui a été définie dans le pcm dmixed.

Dans ce file de configuration, vous pouvez également find le pcm "upmix20_51" intéressant car c'est un moyen effictif de monter les sources 2.0 en 5.1 en dupliquant sélectivement les sons sur les autres canaux. Si vous souhaitez l'utiliser, vous devrez changer le type de celui-ci de "plug" à "route", puis le définir comme esclave sur le pcm par défaut.

 pcm.!default{ type plug slave.pcm "upmix20_51" } 

Comme "surround51" utilisé par pcm utilise "dmixed" comme esclave, le taux d'échantillonnage forcé s'appliquera également à ce pcm.

Malheureusement, les sources mono ne sortent que du haut-parleur gauche, mais ce n'est guère un problème car les sources sonores mono sont rares ces dadys. L'exemple que je viens de donner serait exactement comment j'ai configuré mon propre asound.conf , profitez-en si vous avez une configuration d'enceintes 5.1 et que vous voulez forcer des fréquences d'échantillonnage de 96khz.

En théorie, je pense que forcer le taux d'échantillonnage ne vous apportera rien (car il est absurde de penser que cela améliorerait la qualité de l'audio de sa source qui avait un taux d'échantillonnage inférieur) en tant que tel, vous serez un beaucoup mieux configurer l'application pour utiliser la sortie 96khz.

Mais pour moi j'ai eu quelques problèmes avec des sons crépitants (dans des jeux spécifiques, comme Xcom: Enemy Unknown) si je n'ai pas forcé la fréquence 96khz ou 44.1khz. En voyant que je ne perds rien du tout en forçant 96khz (il n'augmente ni ne diminue la qualité des sources 44.1 / 48khz), c'était une solution parfaite.

Les autres réponses sont quelque peu correctes.

La plupart des maps son n'ont pas de multicanal par défaut. Si vous avez une de ces maps qui possède un mixeur multicanal, vous n'avez probablement pas besoin de lire ici. ALSA mélange plusieurs sons dans le logiciel.

D'une manière générale, 2 options sont possibles:

  1. La sortie du logiciel de mixage par bypass vous permet de profiter d'une plus grande gamme de sons (taux d'échantillonnage et débit plus élevé, par exemple, canalisation vers 6 enceintes ou plus).

    Un seul programme est autorisé à fonctionner avec la carte son!

  2. (Asus Xonair DX avec Sennheiser HD598 testé, n'a pas remarqué de différence, a utilisé 96 kHz 6 canaux flacs taux d'échantillonnage et 192 kHz 2 canaux).

    Plus d'un programme peut fonctionner de cette façon! Je ne suis pas un audiophile, attention à vous, pas encore de toute façon.

La deuxième option est activée par défaut si votre matériel ne prend pas en charge le mixage de plusieurs stream en même time.

REMARQUE: Il existe également une troisième option. ALSA peut être configuré avec ré-échantillonnage dans le logiciel, mais d'après mon expérience, il est possible d'ajuster toutes les applications à rééchantillonner au plus haut taux d'échantillonnage et le débit binary – il a introduit un retard notable dans les jeux FPS, ce qui n'est pas OK pour un gamer (un tiers de seconde environ, quand j'ai tiré les balles du pistolet, ce qui m'a énervé).

Soyez avisé, que la troisième option n'est probablement pas pratique pour quelques raisons:

  1. Je n'ai pas bien testé, mais je suppose que certaines applications peuvent encore avoir des problèmes avec elle.
  2. La plupart des collections audio sont en taux d'échantillonnage de 44,1 / 44 khz avec un taux de 16 bits, sauf si vous utilisez beaucoup de FLAC, mais même alors, FLAC doit avoir un taux d'échantillonnage plus élevé.
  3. le suréchantillonnage ne fournit PAS une meilleure qualité de son (en théorie, mais si vous utilisez des écouteurs bon marché, vous ne le remarquerez pas, j'en suis sûr à 99%).
  4. le décalage dans les jeux est très réel, sauf si j'ai fait quelque chose de mal dans mon file .asoundrc .

Pour rendre les choses plus confuses, cela peut devenir encore pire dans le bon sens. Vous pouvez créer des "appareils" avec différents réglages (canaux / taux / fréquence d'échantillonnage / sortie physique et configuration d'input). Et certaines applications peuvent utiliser des appareils que vous créez manuellement, d'autres pas. Ça m'énerve.

Les plus notoires et les plus problématiques: flash player.

J'espère que ça aide quelqu'un.

Cette réponse est vraie pour quelqu'un qui n'utilise pas d'écouteurs connectés par USB. Ils ont leurs propres maps son embeddedes et j'ai des connaissances limitées à ce sujet, c'est probablement plus vrai pour ceux qui ont des maps son embeddedes dans la carte mère. Peut-être encore appliqué aux casques USB, mais prendre tout avec du grain de sel. Je devine probablement autour de 10% de toutes les maps son produites utiliserait le matériel de mixage de toute façon car le matériel ne le ferait pas en option. La sortie optique est une grande exception. La sortie optique AFAIK n'a pas besoin de mélangeur. Le démultiplexage se poursuit dans "récepteur", où il est fait est matériel. Ne prenez pas ma parole pour cela.

Pensez que ce n'est pas vrai. Eu le même problème. Alsamixer rééchantillonne toujours tous les stream à 44,1 kHz par défaut. Je ne peux pas imaginer autrement comment mélanger des stream avec des taux d'échantillonnage différents que de les rééchantillonner à un commun. Fichier approprié pour le changement c'est ~ / .asoundrc

http://www.alsa-project.org/main/index.php/Asoundrc

Vous pouvez vérifier le résultat ici: cat / proc / asound / card0 / pcm0p / sub0 / hw_params (ou card1 si vous avez 2 maps)

Merci pour l'info ci-dessus @Cestarian. Cela devrait m'aider à get l'interface audio semi-pro d'usb pour aller au taux d'échantillonnage qui est normalisé avec mon reencoding (96K). Je trouve cette installation très perspicace cette machine pour le studio.

Pour vous aider, puisque vous m'avez aidé, je répondrai à ces questions:

"En théorie, je pense que forcer le taux d'échantillonnage n'apportera rien pour vous (comme c'est une idée absurde que cela améliorerait la qualité de l'audio de sa source qui avait un taux d'échantillonnage plus faible) en tant que tel, vous serez beaucoup mieux à configurer l'application pour utiliser la sortie 96khz.

Mais pour moi j'ai eu quelques problèmes avec des sons crépitants (dans des jeux spécifiques, comme Xcom: Enemy Unknown) si je n'ai pas forcé la fréquence 96khz ou 44.1khz. En voyant que je ne perds rien du tout en forçant 96khz (il n'augmente ni ne diminue la qualité des sources 44.1 / 48khz), c'était une solution parfaite.

Il y a une application que vous prendriez un signal numérique, et le convertir en un multiplicateur plus élevé que son original: réduction de la gigue numérique. Il serait intéressant de connaître la précision d'un ordinateur par rapport à une boîte de conversion de fréquence d'échantillonnage externe utilisée dans les studios de mastering à cet effet.

sur le second: je l'image il doit y avoir un cadre de traitement qui doit se produire lorsque le taux d'échantillonnage n'est pas défini. Logiquement, il devrait détecter datatables entrantes du disque dur, puis le formater (si ce n'est pas correct) dans le stream de données au lieu de simplement émettre vers le stream de données. Le son utilise le traitement en time réel et non le processeur. Mais puisque vous êtes en train d'échantillonner aussi, vous pourriez être en train de fixer la source de la gigue du taux d'échantillonnage sur le file audio du jeu.