Paalonのブログ

ゲームと物理学と情報学のブログ

Ubuntu 18.04.5 で 高音質の Bluetooth オーディオのコーデックを利用する

Bluetooth 接続のワイヤレスイヤホン (Anker Soundcore Liberty Air 2) を買って、Ubuntu で曲を聞こうと思ったら、音質が悪すぎる。 iPhoneMacBook Pro で聞いているときは、こんなに音質が悪くないので、ハードウェアではなく、ソフトウェアの問題である。

調べたら、このブログ記事が出てきた。 blog.katio.net

pulseaudio-modules-bt をインストールすることによって、高音質のコーデックを利用できるようだ。 github.com

以下私のやった手順

  • pulseaudio-modules-bt をインストールする。
# puluseaudio-modules-bt のレポジトリを追加する。
# この ppa は Ubuntu 18.04 向けのメンテナンスされていないものなので、
# それよりも新しいバージョンを使っている場合はレポジトリのサイトで確認すること。
sudo add-apt-repository ppa:eh5/pulseaudio-a2dp
# pulseaudio-modules-bt をインストールする。
sudo apt update
sudo apt install pulseaudio libavcodec58 libldac pulseaudio-modules-bt
  • pulseaudio の設定を変更するために /etc/pulse/default.pa に以下を書き加える。
# LDAC Standard Quality
load-module module-bluetooth-discover a2dp_config="ldac_eqmid=sq"

# LDAC High Quality; Force LDAC/PA PCM sample format as Float32LE
#load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq ldac_fmt=f32"
  • pulseaudio を再起動する。
pulseaudio --kill
pulseaudio --daemonize

これで Settings > Sound > Profile で High Fidelity Playback (A2DP Sink: aptX) などが選択できるようになる。

私のイヤホン (Anker Soundcore Liberty Air 2) は、aptX まで対応しているので、自動的にこれが選択されるようになった。 再生するとノイジーだったのがそうではなくなったので目的は達成された。

確率分布の累積分布関数と確率密度関数

要約

積分布関数は確率分布の累積表現で確率密度関数は確率分布の密度表現なので、それぞれ累積関数と密度関数と呼ぶべき。

確率分布って何?

私は確率分布と言われたときにどういう数学的な対象を指しているのか今の今まで理解していなかった。
その原因は私が今まで測度論的な話に踏み込んだことがなかったことが主だが、それ以外にもある。最たるものは確率論において通用されている諸概念のネーミングの悪さである。

確率分布の形式的な定義

確率空間 {\displaystyle (\Omega, \mathcal{A}, P)} から測度空間 {\displaystyle (S, \mathcal{S})} に対しての確率変数  {\displaystyle X: \Omega \to S} を考えると、測度空間 {\displaystyle S} から実数 {\displaystyle \mathbb{R}} への確率測度 {\displaystyle P \circ X^{-1}} が定まる。これを確率分布といい、{\displaystyle P^X} で表す。

累積表現と密度表現

つまり測度空間 {\displaystyle (S, \mathcal{S})} は晴れて確率空間 {\displaystyle (S, \mathcal{S}, P^X)} へと昇格し、その確率分布 {\displaystyle P^X} の具体的な形は累積分布関数 {\displaystyle F}確率密度関数 {\displaystyle p} で与えることができる。
つまり、累積分布関数 {\displaystyle F} は確率分布 {\displaystyle P^X} の累積表現を与えるのであり、確率密度関数 {\displaystyle p} は確率分布 {\displaystyle P^X} の密度表現を与えるのである。
何が言いたいのかというと累積分布関数も確率密度関数も確率分布の表現なのであるから、両方を分布関数と呼んでもおかしくないはずなのである。
しかし、数学者にとっては累積分布関数の方が一般的に扱いやすいからという理由で累積分布関数を分布関数と呼ぶ伝統になっている。
そのせいで確率分布を与える関数である確率密度関数を分布関数と呼ぶことができなくなってしまっている。
これは良くない。
私はこれから、累積分布関数を単に分布関数と呼ぶことはないだろう。
積分布関数と確率密度関数は確率分布の表現を与えるという意味で対等なものなのだから、表現方法は両者で対等にするべきである。
つまり、確率分布の累積表現関数と確率分布の密度表現関数とでも呼ぶのがふさわしいはずである。
短くするなら累積関数と密度関数とか、確率累積と確率密度とかと呼べばいいのだ。
とにかく、累積関数を分布関数と呼ぶのは気持ち悪い。私は密度関数を分布関数と感じているからだ。
統計学へと応用する視点では確率分布において密度関数の方が本質的であり直感的だと思うのは私だけだろうか?
共感してくれる人がいるならぜひとも累積表現の関数を分布関数呼ぶのをやめて累積関数、せめても累積分布関数と呼んで欲しい。

結局のところ、累積表現というのは積分形であって、密度表現というのは微分形であるというだけなのだが、微分方程式の本はたくさんあっても、積分方程式の本が少ないことが示すように、積分形の方が存在はいえるのかもしれないが、微分形と比べると表現力は乏しくなってしまう。つまりは微分形の方が扱いやすい。その意味では密度関数は累積関数に勝っている。それなのにもかかわらず、同じ分布の表現関数=分布関数である密度関数があたかも分布関数ではないかのように言われるのは言葉の本質を外している。

Macを買ったら初めにすることリスト

新しい Mac を手に入れたのでまた今度新しく Mac をセットアップするときに参考にするために Mac を起動してからやる設定をひたすら書いていく。今回手に入れた MacMacBook Air JISキーボードである。OS は macOS Sierra 10.12.4 である。 

 

アップデート

とにかく初めは App Storeを開いて Apple からきたOSのセキュリティアップデートやその他もろもろを反映させる。

macOS自体の設定

システム環境設定での設定を紹介する。

一般 -> メニューバーとDockを暗くする -> on

一般 -> メニューバーを自動的に隠す/表示 -> on

一般 -> デフォルトのWebブラウザ -> Google Chrome.app (後で設定)

f:id:paalon:20170414160434p:plain

 

Dock -> 画面上の位置 -> 左

Dock -> ウィンドウをしまうときのエフェクト -> ジニーエフェクト

Dock -> Dockを自動的に隠す/表示 -> on

 

f:id:paalon:20170414160725p:plain

トラックパッド -> ポイントとクリック -> タップでクリック -> on

トラックパッド -> ポイントとクリック -> 軌跡の速さ: 6

トラックパッド -> スクロールの方向: ナチュラル -> off

f:id:paalon:20170414161359p:plain

f:id:paalon:20170414161354p:plain

f:id:paalon:20170414161311p:plain

Misson control - hot corner -> mission control

Finderの設定

Finder -> 環境設定 -> 一般 -> デスクトップに表示する項目 -> ハードディスク -> off

Google日本語入力をインストール

Google日本語入力をインストール

www.google.co.jp

Kalabiner-Elementsをインストール

USキー配列が好きなのでそれっぽくするのと、左親指のキーにCommandを、右親指のキーにBackspaceを持ってくる。

https://pqrs.org/latest/karabiner-elements-latest.dmg

github.com

英数キー -> left_gui(equal to `left_command`)

かなキー -> delete_or_backspace

backslash (\) -> return_or_enter

international1 -> grave_accent_and_tilde (`)

international3 -> backslash (\) 

 

パッケージマネージャ

Macで一般的なパッケージマネージャにはFink, MacPorts, Homebrewなどがある。各々有利不利があるが、Homebrewを入れる。

Homebrew — macOS 用パッケージマネージャー

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

GUIアプリケーション

基本的に一般に広く使われているようなGUIアプリケーションは brew cask などで管理しないほうが良い。caskが推奨されている場合はこの限りでない。公式サイトのインストール方法に従ってインストールする。

Google Chrome をインストール

https://www.google.co.jp/chrome/browser/desktop/

Dropbox をインストール

https://www.dropbox.com/ja/install

Evernote をインストール

https://evernote.com/intl/jp/download/

Atom をインストール

https://atom.io/

 

TeX のインストール

TeX Live をインストールする。

Ghostscriptのインストール

まず Homebrewでghostscriptをインストールする。

brew install ghostscript

MacTexのインストール

次にMacTexをインストールする。

MacTexのパッケージのダウンロードはSafariでやることが強く推奨されている。

http://www.tug.org/mactex/mactex-download.html

パッケージをダウンロードしたら開いてインストーラを起動する。

途中カスタムからGUI-applicationとghostscriptはインストールしない設定にする。

インストールし終わったら、tlmgr (TeX Live Package Mananger) でアップデートする。

sudo tlmgr update --self --all

 

CUIアプリケーション

Ninja build のインストール

brew install ninja

Jupyter のインストール

brew install pyenv

brew install pyenv-virtualenv

~/.bash_profileに次をpyenvの設定を書く。

PYENV_ROOT=~/.pyenv
export PATH=$PATH:$PYENV_ROOT/bin
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)”


source ~/.bash_profile
pyenv versions
pyenv install —list
pyenv install anaconda3-4.3.1

 

Amethyst のインストール

brew tap caskroom/cask

brew cask install amethyst

 

Dockに登録しているアプリケーション

 以上が私の設定である。 個人的な防備録なので参考になるところだけ参考に。

 

Atomのlinter-gccパッケージがヘッダファイルを走査するたびに.gchファイルが生成される問題の解決法

Ubuntu + gccAtom を使って C++ プロジェクトを書いているのだが、文法チェックが欲しいので linter-gcc を入れた。

atom.io

ところが、ヘッダファイルを保存する度に数百MBもある.gchファイルを生成し始めた。これの対策法は実はちゃんと README に書いてあって、 linter-gcc の Settings の C Flags (または C++ Flags) のところに `-fsyntax-only`  とフラグを追加すると .gchファイルを生成しなくなる。ちゃんとREADMEにも記載されているのだが、気付いていなくてちょっと悩んだのでここにメモしておく。

 

Hyper Light Drifter を一周した

スタイリッシュ2Dアクションの Hyper Light Drifter を一周した。

感想を短くまとめてみる。大きなネタバレはしていないので買うかどうか悩んでいる人は参考に。

 

私が一周に要したプレイ時間:7時間強

おすすめ度:★★★★☆

特徴

コントローラのボタンを使いまくって駆使する爽快アクション

良い点

  • グラフィックが綺麗
  • 爽快なアクション
  • 探索が楽しい

何とも言えない点

  • 一周あたりのボリュームが7時間強だということ
  • RPG性は薄い

悪い点

  • そこそこ移動判定系のバグがある

プレイするのをおすすめできる人

  • アクションが好きな人
  • 世界観を楽しむのが好きな人
  • 自由に世界を探索するのが好きな人

期待してはいけないもの

  • RPG的なストーリー

Mac で Hyper Light Drifter が Xbox コントローラを認識してくれなかった話

今朝 Steam を起動すると良さげな世界観のゲームがおすすめされて、Hyper Light Drifter を衝動買いした。

早速起動してみると、コントローラでプレイするのがおすすめ!と表示されるのでこないだ買った Logicool Gamepad F310(買ったときの記事:http://blog.hatena.ne.jp/paalon/paalon.hatenablog.com/edit?entry=10328749687181765512)をMacに繋いで使うことにした。ところが、そのままでは認識してくれなかった。システム環境設定からドライバ(Releases · 360Controller/360Controller · GitHub)の設定画面の Advanced の Spoofing Preferences の Pretend to be an Xbox Controller にチェックを入れると認識するようになった。

Macでゲームパッド(Logicool F310r)を使う

Stardew Valleyをゲームパッドでやりたかったので、LogicoolゲームパッドF310rを買ってMacで使ってみた。 

 

LOGICOOL ゲームパッド F310r

LOGICOOL ゲームパッド F310r

 

 

F310rはXモード(Xboxコントローラと同じ)とDモード(昔からある古い規格)を裏に付いているスイッチで切り替えることができる。USBをMacぶっ挿しただけのデフォルトの状態ではXモードで認識してくれないのでドライバをインストールする必要がある。

調べてみるとXbox360コントローラ向けにgithubでドライバを上げてくれている人がいるみたいなのでそれを使う。

github.com

Installation のところに rereases page へのリンクがあるのでそこからインストーラ(私がやった時は 360ControllerInstall_0.16.4.dmg)をダウンロードしてインストール、Macを再起動する。起動するとシステム環境設定に Xbox 360 Controllers が追加されるはず(右下のところ)。

f:id:paalon:20160901033904p:plain

あとはF310rを接続し、MODEボタンを押してライトが点くかどうか確認できれば正常にXモード機能する。Xbox 360 Controllers のところから細かい設定ができる。

f:id:paalon:20160901034459p:plain

ボタンを押すと反応する。

f:id:paalon:20160901034626p:plain