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

    2018年09月24日

    Google Colaboratoryを使ってオンラインでPythonを使おう!

    Pythonを使おうと思ったら、LinuxなどのOS上にPythonの実行環境やライブラリなどをインストールしなければいけません。近年では、Jupyter notebookが登場した事で、Pythonを使ったスクリプトの作成も直ぐにコードを書いて実行する環境が作る事が出来るようになっていますが、それでも、Jupyter notebookを導入するまで時間がかかってしまいます。

    いつでも直ぐにPythonのコードを書いて実行したいのであれば、Googleが公開しているオンラインサービス「Google Colaboratory」を使ってみると便利です。
    https://colab.research.google.com/

    アクセスすれば、既にJupyter notebookベースのGoogle Colaboratoryが使えるようになっていますので、新規プロジェクトを作って色々とコードを書いて試してみて下さい(^^)

    以下が実際の画面です。

    こんにちはColaboratory   Colaboratory.png

    posted by takatan at 01:17| 大阪 ☁| linux | このブログの読者になる | 更新情報をチェックする

    2018年09月23日

    ArchWikiでLinuxの音楽環境を考えてみよう

    ArchLinuxの情報源であるArchWikiは、他のLinuxディストリビューションでも応用する事が出来ますので、僕はよく閲覧しています。今回は、このArchWikiの「プロオーディオ」という項目に着目して、Linux上での音楽再生環境、あるいはDTM環境について考えてみたいと思います。基本的にどのLinuxディストリビューションでもやっておいた方が良いのは、この部分です。
    https://wiki.archlinux.jp/index.php/%E3%83%97%E3%83%AD%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA#.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E8.A8.AD.E5.AE.9A


    以下のシステムの最適化がよく使われています:

    ユーザーを audio グループに追加する。
    threadirqs カーネルパラメータを追加する。
    linux-rtAUR カーネルをインストールする。
    cpufreq の governor を performance に設定する。

    noatime をファイルシステムのマウントオプションに追加する (パフォーマンスの最大化を参照)。
    リアルタイムの設定は大部分が自動化されています。リアルタイムアクセスのために /etc/security/limits.conf などのファイルを編集する必要はもうありません。とはいえ、設定を変更する必要があるときは、/etc/security/limits.d/99-audio.conf や /usr/lib/udev/rules.d/40-hpet-permissions.rules を見て下さい (これらのファイルは jack や jack2 に含まれています)。さらに、RTC の最大割り込み周波数 (デフォルトは 64 Hz) を増やすには起動時に次を実行するようにしてください:

    echo 2048 > /sys/class/rtc/rtc0/max_user_freq
    echo 2048 > /proc/sys/dev/hpet/max-user-freq
    デフォルトでは、swappiness によって定義されるスワップの頻度は 60 に設定されています。この数字を 10 にまで減らすことで、システムはディスクへの書き込みをしにくくなります。また、ファイルの変更を監視してアプリケーションにそれを報告する inotify というものがあります。大量の音声データを扱う場合、多くの対象を監視する必要がでるため、監視対象の上限を増やす必要があります。どちらの設定も /etc/sysctl.d/99-sysctl.conf で調整ができます。

    vm.swappiness = 10
    fs.inotify.max_user_watches = 524288

    PCI サウンドカードの PCI レイテンシタイマを最大化して他の全ての PCI 周辺機器のレイテンシタイマを上げるのも効果があります (デフォルトは 64 です)。

    $ setpci -v -d *:* latency_timer=b0
    $ setpci -v -s $SOUND_CARD_PCI_ID latency_timer=ff # eg. SOUND_CARD_PCI_ID=03:00.0 (下を参照)


    Linux-ckなどのカスタムカーネルでは、cpufreq governorがondemandになっているケースが多いのですが、どうやら、performance設定にしておいた方が良いようです。プロセッサのクロック周波数を抑えて、ノイズを抑えた方が良いと考えている人もいますので、この辺がちょっと分からないですね(^_^;)


    デスクトップ効果と JACK
    上のシステムの設定セクションに書かれている要素と realTimeConfigQuickScan.pl で確認できる設定に加えて、デスクトップ環境によって xruns や JACK の音声に問題が発生することもあります。特にメモリや CPU の消費が激しいデスクトップ効果を利用するデスクトップで発生します。JACK を使用する際はデスクトップ効果を無効化することを推奨します。軽量なデスクトップやウィンドウマネージャを使うことで最適なパフォーマンスを得ることができるでしょう。

    デスクトップ効果は出来るだけ切っておいた方が良いようです。今はハードウェアの性能が上がって、デスクトップ効果を出す事でプロセッサが余計にリソースを使うといった事が起こらなくなっているので、それほど神経質にならなくても良いですが、より綺麗な音を出したいのであれば、デスクトップ効果を切っておいても良いでしょう。

    ◇リアルタイムカーネルについて
    リアルタイムカーネルの導入は、現在のバニラカーネルでも十分にソフトリアルタイム性能がありますので、もうほとんど入れる必要性は無いと思いますが、入れておきますと自己満足出来ます(^_^;)HyperThreading TechnologyやSMTといった技術もBIOSなどで切っておいた方が音が安定するようです。

    https://wiki.archlinux.jp/index.php/%E3%83%97%E3%83%AD%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA#.E3.83.AA.E3.82.A2.E3.83.AB.E3.82.BF.E3.82.A4.E3.83.A0.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB

    ◇Wi-FiとJackの安定化
    https://wiki.archlinux.jp/index.php/%E3%83%97%E3%83%AD%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA#.E3.83.92.E3.83.B3.E3.83.88.E3.81.A8.E3.83.86.E3.82.AF.E3.83.8B.E3.83.83.E3.82.AF

    録音をするときは WiFi を無効化してブラウザなどの不要なプログラムを終了してください。WiFi を無効化することで JACK のパフォーマンスが安定するようになったという報告は多数あります。


    ネットワーク関連の機器はノイズを発生するという事もあり、Wi-Fiなどのネットワークを切る事でノイズを大幅に減らす事ができ、Jack Audio Connection Kitの安定性が向上します。
    posted by takatan at 16:47| 大阪 ☁| linux | このブログの読者になる | 更新情報をチェックする

    2018年09月20日

    MPVの設定を変更

    オリジナルOS「VSRX-18」には、動画プレーヤーとしてMPVをプリインストールしています。これの設定を変更していきます。
    ~/.config/mpv以下に設定ファイルを作って変更を適用しています。
    https://wiki.archlinux.jp/index.php/Mpv
    ◇mpv.conf

    # Write your default config options here!

    cache=262144

    deinterlace=yes
    hwdec=vdpau
    profile=opengl-hq
    ao=pulse
    af=acompressor


    ◇input.conf

    Alt+RIGHT add video-rotate 90
    Alt+LEFT add video-rotate -90
    Alt+- add video-zoom -0.25
    Alt+= add video-zoom 0.25
    Alt+j add video-pan-x -0.05
    Alt+l add video-pan-x 0.05
    Alt+i add video-pan-y 0.05
    Alt+k add video-pan-y -0.05

    SHIFT+* add ao-volume 2


    ◇luna-settings/osc.conf

    layout=bottombar
    vidscale=no
    scalewindowed=1.75
    scalefullscreen=1.75
    boxalpha=160
    hidetimeout=2000
    posted by takatan at 17:29| 大阪 ☔| 開発話 | このブログの読者になる | 更新情報をチェックする

    Wine stagingにCSMTの項目が無いなあと思っていたら既にデフォルトでWineに取り込まれていた

    ちょっと古いバージョンのWineですと、CSMTというOpenGLの特別なシステムコールを使えるものがありました。しかし、Wine 3.3以降はどうやら、デフォルトでCSMTがオンになっていました(^_^;)

    https://wiki.archlinux.jp/index.php/Wine#CSMT

    CSMT は OpenGL コールに対して特別なスレッドを使うことでパフォーマンスを著しく向上させる技術で、Wine によって使われています。Wine 3.3 から CSMT はデフォルトで有効になっています。


    だから、CSMTが欲しい場合には、もう新しいバージョンの安定版や開発版のWineをインストールしておけば良いのです。
    posted by takatan at 15:54| 大阪 ☔| linux | このブログの読者になる | 更新情報をチェックする

    オリジナル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| 大阪 ☔| 開発話 | このブログの読者になる | 更新情報をチェックする

    Kona Linux 4.0やKLUE 3.0の音質向上策はこういう風にされているらしい

    https://docs.google.com/document/d/11Db6HCC-X25rH_INhkw5G4gofliGM7GU9MWsmzZpWHA/edit?usp=sharing

    Kona LinuxやKLUEで実施されている音質向上策が大体分かる部分を抜粋しました。


    (9/6追記)
     サウンドに”サイレントサウンド”(某映画のテーマか?というツッコミはなしで)を追加しました。ハイパーサウンドにノイズを少なくする処置を施したものです。ネットワーク関連のサービスに手を入れてノイズを減らしました。電源とネットワークに金をかけると音がよくなるとオーディオ界隈で言われていますが、ソフトでも電源管理とネットワークをいじると音が変わります。ノイズを減らすのはソフト的にはちょっと難しくCPUクロックを下げることくらいしか思いつきませんが、ネットワーク関係のサービスをすべて止める(当然ネットワークが使えなくなる)と明らかにノイズが減り音質が向上することには気づいていました。LANカードが大量にノイズを出しているのが止まるからです。ネットワークを止めずに止めたときと同じノイズ低下の効果を実現したところに意味があります。しかしノイズが減った音の高品質化には驚きを隠せません。音の生々しさが段違いです。オーディオファンがノイズを減らすことに血眼になる理由がよくわかりました(笑い)。
    ということでサイレントサウンドがハイパーサウンドに代わって最高音質サウンドにおどり出ました。
    この低ノイズ化の手法はKona Linux 4.0にも適用しています。
    (9/8追加)
     DockyをPlankへ変更します(lightだけは最初からplank)。
    Dockyは音質的に好ましくないからです。
    自動更新の過程で音が出なくなったりネットワークが動作しなかったりしますが、バックグランドで更新が行われるのでディスクアクセスがあるうちはPCを終了させないでください。
    再起動をすると正常になります。
     サイレントサウンドはボーカルの声が生々しくまるで目の前で歌っているような錯覚に陥ります。女性ボーカルの高音が豊かに優しく響き渡ります。これがKonaサウンドの特徴です。


    この文章を読んで音質向上策は、プロセッサのCPU使用率を出来るだけ抑える事とLANなどから発せられるノイズの低減が鍵になっているようです。
    posted by takatan at 11:32| 大阪 ☔| linux | このブログの読者になる | 更新情報をチェックする

    オリジナルOS「VSRX-18」ではインストールの際にgrubのインストールの失敗を減らす工夫を行っています。

    オリジナルOS「VSRX-18」をSSDやHDDにフルインストールするには、右クリックメニュー(Ctrl+mでも起動可能です。)の「Install VSRX-18」の項目をクリックすると、インストーラー「Ubiquity」が起動し、インストールをする手順が開きます。その手順のポップアップの内容は以下のようになっています。
    install_vsrx.jpg

    ◇インストール方法
    1.右クリック→「Install VSRX」→インストール
    2.OSのインストールが終わった後に出てくるダイアログで「試用を続ける」を選択する。選択後に自動的にboot-repairが起動。
    3.「高度なオプション」→「GRUBのオプション」→「SecureBoot」のチェックを外して、適用ボタンを押す。
    4.GRUBをインストールしたら、システム再起動


    UbiquityでシステムをSSDやHDDにインストールします。出来るだけ高速でインストールしたい場合は、インターネットを切っておきます。fbpanelの右側にnetwork-managerのアイコンが表示されていますので、これを右クリックすれば、項目が開きますので、ここからネットワークを遮断すれば良いです。
    Ubiquityは-bオプションを使って起動させていますので、このインストール作業ではブートローダーである「grub」はインストールされません。インストール作業が終わりますと、ダイアログが表示され、その「試用を続ける」を選択してクリックをしますと、自動的にboot-repairというアプリケーションが起動しますので、このアプリケーションの「高度なオプション」→「GRUBのオプション」→「SecureBoot」のチェックを外して、適用ボタンを押しまうと、grubをインストールする事が出来ます。

    ちなみに、パソコンの電源を入れた時に表示されるメーカーロゴが表示されている時に、Deleteキー、あるいはF11キーを押しますとUEFIの設定画面に入る事が出来ますので、インストールディスクを起動させる前に、セキュアブートの項目をオフにしておいてください。
    posted by takatan at 11:12| 大阪 ☔| 開発話 | このブログの読者になる | 更新情報をチェックする

    オリジナルOS「VSRX-18」の心臓部

    オリジナルOS「VSRX-18」はUbuntu 18.04 LTSをベースにしていますが、作成したカスタムカーネルを導入したり、動画編集ソフトやゲームエミュレーターなどの導入、ChromiumとFirefoxのデュアルブラウザ体制、データサイエンス用の環境やオリジナルスクリプトの導入など様々な要素を盛り込んでいます。

    このOSの心臓部は、カスタムカーネルと/etc/skel以下にあるスクリプト群です。これらによって、システムの高速化・軽量化と機能強化を図っています。/etc/skelの構造は画像のようになっています。

    Screenshot from 2018-09-20 09-30-38.pngScreenshot from 2018-09-20 09-30-45.pngScreenshot from 2018-09-20 09-31-01.png

    Openboxの設定ファイルは、.config/openbox以下に入っています。その中のautostartというスクリプトで、JACK Audio Connection KitやPulse Audio、xfce4-power-managerやfbpanel、fcitxやnetwork manager、nitrogenやcomptonやxrandarなどの各種アプリケーションをシステム起動時に起動させるようにしています。つまり、このOpenboxのautostartスクリプトがカスタムカーネルやViper ToolsやVSRX settingsと並ぶVSRX-18の心臓部となっています。

    ◇オリジナルOS「VSRX-18」の心臓部
    ・カスタムカーネル
    ・オリジナルアプリケーション「Viper Tools」
    ・VSRX-18用設定ツール「VSRX settings」(Site Specific Browser機能を含む)
    ・Openboxのautostartスクリプト
    posted by takatan at 09:53| 大阪 ☔| 開発話 | このブログの読者になる | 更新情報をチェックする

    2018年09月18日

    古いマザーボードが2枚余っているので個性的な自作PCを作る事が出来るんじゃないかとちょっと思った

    C1007UN-DとH97I-PLUSという古いマザーボードが2枚余っているので、個性的な自作PCを作る事が出来るんじゃないかと、ちょっと思った(^_^;)

    例えば、以下の作例のようにマザーボードとアクリル板をスペーサーで重ねてネジで固定するといったまな板タイプがあります。これを応用して、2枚のマザーボードで構成し、CPU切替器でマザーボードを切り替える事で、普段は省電力プロセッサで動作させ、必要に応じて性能が高い方のシステムに切り替えるといった使い方が出来るマシンを作れば、面白いのではないかと(^_^;)


    まãa板まãa板3.5_2台
    この作例では、アクリルまな板を使っていますが、僕の場合は、2枚のマザーボードでこの構造を行えば良いと考えています。ただ、問題は電源が2つ必要になるということでしょう(^_^;)


    posted by takatan at 17:17| 大阪 ☀| PC and Phone | このブログの読者になる | 更新情報をチェックする

    2018年09月15日

    オリジナルOS「VSRX-18」用の設定ツールをブラウザベースからgladeベースに変更しました

    オリジナルOS「VSRX-18」用の設定ツール「VSRX Web UI」をブラウザベースからgladeベースに書き換えました。

    名称も「VSRX Settings」に変更しています。

    http://www.valkyrieviper.space/article/461223053.html
    posted by takatan at 02:25| 大阪 ☔| 開発話 | このブログの読者になる | 更新情報をチェックする