アルサリサンプリング

アルサリサンプリング

私の設定はFedoraベースのLinux音楽ディストリビューションであるVortexbox 2.3です。 miniDSPのマルチチャンネルサウンドカードであるUSBStreamerがあります。asound.conf別々の出力チャンネル用に複数のスクイズライト再生インスタンスを持つように別々のステレオデバイスを設定しました。すべてのプレーヤーには時計が1つしかないため、オーディオのサンプリングレートは同じでなければなりません。私の音楽のほとんどは44.1kHzですが、一部は48kHzなので、48kHzファイルを再生するときは少しリサンプリングする必要があります。私はこの問題を解決しましたasound.conf。しかし、ALSAは私が期待していた48kHzをプレーヤーが出力するのではなく、元のサンプルレートにもかかわらず、すべてを44.1kHzにリサンプリングするようです。リサンプリングなしでデフォルトの44.1ファイルを再生できるようにしたいです。プレーヤーの代わりにALSAでサンプルレートを処理し、他のプレーヤーも追加したいと思います。

レートが一致しない場合にのみALSAを再サンプリングする方法はありますか?

#
# Place your global alsa-lib configuration here...
#

#defaults.pcm.rate_converter "speexrate"

pcm_slave.miniDSP {
# pcm "hw:0,0"
pcm "hw:USBStreamer"
rate 44100        # fixed, because all dshare devices must use the same samplerate. Could use rate unchanged but not for here.
format S32_LE
channels 10
}

pcm.stereo_1_raw {
type plug
slave.pcm {
    type dshare
    ipc_key 662662
ipc_key_add_uid true
    slave miniDSP
    bindings [ 0 1 ]
}
}

pcm.stereo_2_raw {
type plug
slave.pcm {
    type dshare
    ipc_key 662662
ipc_key_add_uid true
    slave miniDSP
    bindings [ 2 3 ]
}
}

pcm.stereo_3_raw {
type plug
slave.pcm {
    type dshare
    ipc_key 662662
ipc_key_add_uid true
    slave miniDSP
    bindings [ 4 5 ]
}
}

pcm.stereo_4_raw {
type plug
slave.pcm {
    type dshare
    ipc_key 662662
ipc_key_add_uid true
    slave miniDSP
    bindings [ 6 7 ]
}
}

pcm.stereo_1_output {
    type rate
    slave {
            pcm stereo_1_raw
            rate 44100
    }
    #converter "speexrate_medium" This doesn't work for 4 channels.
converter "samplerate"
}

pcm.stereo_2_output {
    type rate
    slave {
            pcm stereo_2_raw
            rate 44100
    }
    converter "speexrate_medium"
}

pcm.stereo_3_output {
    type rate
    slave {
            pcm stereo_3_raw
            rate 44100
    }
#converter "speexrate_medium"
converter "samplerate"
}

pcm.stereo_4_output {
    type rate
    slave {
            pcm stereo_4_raw
            rate 44100
    }
    #converter "speexrate_medium"
converter "samplerate"
}

答え1

plugプラグインはrate必要なときにのみプラグインを挿入しますが、rateプラグインを手動で挿入するとこの結果が得られます。

rateプラグインを削除するだけで、stereo_x_rawデバイスを直接使用できます。 (リサンプリングアルゴリズムの場合、デフォルト設定を使用できます。)

関連情報