ALSAでサンプリングレートを変更する

ALSAでサンプリングレートを変更する

私はコンピュータ愛好家で、Windows(ASIO4ALLを含む)とOSXを使用してオーディオを操作してきました。これでHTPC /ステレオオーディオとしてUbuntu 13を使用しています。まず、Pulseオーディオを無効にし、ALSAでGooMusicplayerを使用しました。

私のDACは24ビット96kHzをサポートしています。出力サンプルレートを設定するためのALSA設定が見つからないようです。どのように構成しますか?

ベストアンサー1

Alsaは基本的にソースと同じサンプリングレートとフォーマットを使用します。ただし、サンプリングレートを強制的に上げ下げすることは可能です。

ここにあなたができる1つの方法があります。 (存在する/etc/asound.confまたは~/.asoundrc)

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

次に、対応するpcmをデフォルト(ステレオ)pcmなどの他のpcmにスレーブにします。 (警告:24ビットフォーマットは互換性のあるカードがないと機能しません。私は通常、ほとんどのカードで動作するS32_LEを使用します。)

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

しかし、上記はステレオソースでのみ機能します。したがって、デフォルトでSurround51 pcmを使用する5.1ソースで再生すると、状況は少し複雑になります。

モノラルソースのサンプリングレートを強制する方法について私が知っている(そして個人的に使用する)1つの方法は、次のように始めることです。このasound.conf/asoundrc(デッドリンク)修正してください。 (注:この文書は私が書いたものではありません。)

(私のものを見つけることができますサウンドプロファイルこの質問には、以下から手動で修正する手間をかけずにコピーするだけです。)

まず、「dmixed」pcmをコピーし、ハードウェア部分を目的のサンプルレートとフォーマットに変更します。

次に、!default、around40、およびaround51 PCMをそのままコピーします。これにより、すべての出力が効果的に混合され、すべての2.0、4.0、および5.1ソースのサンプリングレートがdmixed pcmに設定されたサンプリングレートにアップコンバートされます。

このプロファイル内では、「upmix20_51」pcmは、サウンドをオプションで別のチャンネルにコピーして2.0ソースを5.1にアップミックスする効率的な方法なので、興味深いかもしれません。使用するには、そのタイプを「プラグ」から「ルート」に変更してから、デフォルトのpcmのスレーブに設定する必要があります。

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

このpcmで使用される「surround51」は「dmixed」をスレーブデバイスとして使用するため、強制サンプリングレートがこのpcmにも適用されます。

残念ながら、現在の状態ではモノソースは左側のスピーカーからしか出力できませんが、これらのお父さんの間ではモノソースがまれであるため、これはほとんど問題になりません。今提示した例は、私が直接説明したものです。サウンドプロファイル設定後に5.1スピーカー設定があり、96kHzのサンプリングレートを強制的に適用したい場合は、楽しんでください。

理論的には、より高いサンプルレートを強制することは役に立たないと思います(低いサンプルレートでソースのオーディオ品質を向上させることはとんでもない考えだからです)。したがって、アプリケーションを構成します。 96kHzの出力を使用する方が良いです。

しかし、私の場合、96khzまたは44.1khzの周波数を強制的に設定しないと、カチカチ音がする問題があります(XCOM:Enemy Unknownなどの特定のゲームでは)。 96khzを強制しても失われることはありません(44.1/48khzソースの品質を向上または低下させません)。これは完璧なソリューションです。

おすすめ記事