◎メインサイトとSNS
VSRX - オリジナルOSやライブラリ、アプリケーションのリファ レンスとプログラミングなどの各種テクニックを公開しています。
RED - デジタルガジェットとサブカルチャーの話題を取り上げています。
Instagram
Youtube Channel
KANSAI IDOL EVENT Calendar
人気記事ランキング
    最近の記事

    2018年09月20日

    オリジナルOS「VSRX-18」での音質向上策について

    オリジナルOS「VSRX-18」では、デフォルトのUbuntuよりも音質が向上するようにしています。Pulse Audio+Jack Audio Connetion Kitの組み合わせで、VSRX-18のサウンドシステムを構築していますが、qjackctlで設定していません。その理由は、Windows APIレイヤー「Wine」上でWindowsアプリケーションを起動させた時に、Pulse AudioでもALSAでも音が出なくなってしまうからです。その対策として、jack_controlコマンドでJACK Audio Connection Kitの設定をし、動作させています。これでWine上でALSAを使ってサウンド再生出来るようにしておけば、通常Pulse Audio+Jack Audio Connection Kitの組み合わせで音を出していても、自動的に切り替わるようになります。qjackctl経由でサウンドシステムを起動させた場合は、この自動切り替えが出来ないので注意してください。この方法は、Ubuntu系Linuxディストリビューションで有効かと思います。

    さて、VSRX-18の音質向上策は、Pulse AudioとJack Audio Connetion Kitをmodule-jack-sink/module-jack-sourceというPulse Audio用の2つのモジュールを使って接続して、以下の設定を行っています。

    ・リアルタイムをオン
    ・サンプルレート:192000KHz
    ・フレーム/ピリオド:1024
    ・ピリオド/バッファー:3
    ・1フレーム当たり128周
    ・schedtoolを使って優先順位を上げた


    上記の設定は以下のスクリプトで行っています。

    #JACK+PulseAudio
    sleep 5;jack_control start &
    sudo schedtool -R -p 256 `pidof jackdbus`
    jack_control eps realtime true
    jack_control ds alsa
    jack_control dps device hw:0
    jack_control dps rate 192000
    jack_control dps nperiods 3
    jack_control dps period 1024
    sleep 5;pactl load-module module-jack-sink channels=2
    pactl load-module module-jack-source channels=2
    sleep 3;pacmd set-default-sink jack_out
    pacmd set-default-source jack_in

    #sleep 2;ln -s /usr/bin/pulseaudio /tmp &
    #sleep 5;/tmp/pulseaudio --start &
    sleep 5;pulseaudio --start &


    Pulse Audioの設定も変更しました。
    ~/.config/pulse/daemon.conf

    # This file is part of PulseAudio.
    #
    # PulseAudio is free software; you can redistribute it and/or modify
    # it under the terms of the GNU Lesser General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    #
    # PulseAudio is distributed in the hope that it will be useful, but
    # WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    # General Public License for more details.
    #
    # You should have received a copy of the GNU Lesser General Public License
    # along with PulseAudio; if not, see .

    ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
    ## more information. Default values are commented out. Use either ; or # for
    ## commenting.

    daemonize = no
    ; fail = yes
    ; allow-module-loading = yes
    ; allow-exit = yes
    ; use-pid-file = yes
    ; system-instance = no
    ; local-server-type = user
    ; enable-shm = yes
    ; enable-memfd = yes
    ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
    ; lock-memory = no
    ; cpu-limit = no

    high-priority = yes
    nice-level = -11

    realtime-scheduling = yes
    realtime-priority = 20

    ; exit-idle-time = 20
    ; scache-idle-time = 20

    ; dl-search-path = (depends on architecture)

    ; load-default-script-file = yes
    ; default-script-file = /etc/pulse/default.pa

    ; log-target = auto
    ; log-level = notice
    ; log-meta = no
    ; log-time = no
    ; log-backtrace = 0

    resample-method = speex-float-2
    ; avoid-resampling = false
    ; enable-remixing = yes
    ; remixing-use-all-sink-channels = yes
    ; enable-lfe-remixing = no
    ; lfe-crossover-freq = 0

    flat-volumes = no

    ; rlimit-fsize = -1
    ; rlimit-data = -1
    ; rlimit-stack = -1
    ; rlimit-core = -1
    ; rlimit-as = -1
    ; rlimit-rss = -1
    ; rlimit-nproc = -1
    ; rlimit-nofile = 256
    ; rlimit-memlock = -1
    ; rlimit-locks = -1
    ; rlimit-sigpending = -1
    ; rlimit-msgqueue = -1
    ; rlimit-nice = 31
    ; rlimit-rtprio = 9
    ; rlimit-rttime = 200000

    default-sample-format = s16le
    default-sample-rate = 96000
    alternate-sample-rate = 48000
    ; default-sample-channels = 2
    ; default-channel-map = front-left,front-right

    ; default-fragments = 4
    ; default-fragment-size-msec = 25

    ; enable-deferred-volume = yes
    deferred-volume-safety-margin-usec = 1
    ; deferred-volume-extra-delay-usec = 0

    posted by takatan at 12:17| 大阪 ☔| 開発話 | このブログの読者になる | 更新情報をチェックする