読者です 読者をやめる 読者になる 読者になる

Yuichiro_S の Twitterでは文字数が足りないもの

Twitterに書くには向いてないことを書きます。文字数制限だとか、検索に引っかからないだとか、流れてしまって読んでもらえないだとか。

DreamSpark に登録しようとすると you are not born yet! と言われる件

DreamSpark の学生アカウントを取ろうとするときに、生年月日入力UIをどう操作しても you are not born yet! というエラーが出まして、過去の日付しか指定できないのになにを言っているんだ……

解決方法: マイクロソフトアカウントのほうで生年月日を登録してから、データが反映されるまでしばらく待つ

ブラウザのインスペクタを使っていろいろ確認して、あーなんとなくこれかなー、と、マイクロソフトアカウントの生年月日が未登録だったので登録したりしたわけですが、どうにもならないのでサポートに投げたら、それはもうやったわ! みたいな返信が来ました。
仕方ないので自分でなんとかするかー、とりあえず現状を確認して……あれ、できた。

マイクロソフトからはメールの内容を転載するな引用するなと言われましたので、この内容から察してください。

……なんでこんなに分かりづらいエラーメッセージにしたんだろう。

mikutterでのTwitterの自分宛リプライの特殊仕様の対応

毎回忘れるので備忘録

Twitterでは自分宛のリプライは@つけてなくてもin-reply-toで繋げられるが、mikutterのmessage.rbは@がないと replyだと認識しないので、手元では

define_source_getter(:replyto, /@[a-zA-Z0-9_]/){ |this, result|

define_source_getter(:replyto){ |this, result|

と書き換えて雑に対処して使っている。

Nexus7 1st gen (2012) で Stock ROM (rootless) と CyanogenMod を MultiROM で共存させたメモ; ストレージがなぜか 6GB になる現象の対処メモ

Nexus7 1st gen (2012) で Stock ROM (rootless) と CyanogenMod を MultiROM で共存させたメモ

概要

今回は、ホスト cm11 で、ゲストに Stock ROM の 4.4.4 とか 5.1.1 とかを入れたい感じでした。

結局どうしたか

fastboot で Stock ROM の boot, system, userdata を焼いて、TWRP でバックアップ、バックアップから MultiROM で Add ROM しました。
boot.img と system.img から flashable zip を作ろうとするのは労力の無駄っぽい。

こっから詳細

ハマりポイントとしては、Google から提供されている Stock ROM が fastboot で焼くイメージしかなくて、カスタムリカバリから焼ける flashable zip じゃないという点です。

flashable zip を作る方法としては、ググると出てくるのは

  1. Stock ROM で root を取ってからがんばる
    root 取ったら Stock ROM である意味が個人的になかったのでナシでした。

  2. Android Kitchen でがんばる
    2013 年に更新が止まっているせいか、それっぽいzipを生成してくれるけれども MultiROM patched TWRP がエラーを吐くので諦めました。

Nexus7 1st gen (2012) で、ストレージがなぜか 6GB になる現象の対処

概要

いくら Multi ROM だからってストレージ足りなくなるなんておかしい、と思ったら、なぜか 6GB になっていた。32GB モデルなのに。
どうやら珍しくはない現象らしい。解決したので適当に情報をまとめる。

結論

フルワイプでなおる

こっから拾った情報まとめ

  • ブートローダのバグらしい?
  • fastboot flash userdata userdata.imgすると発生するらしい?
  • fastboot での作業途中に fastboot モードを抜けると発生するらしい?
  • フルワイプするのに rm -rf するだけなやつがあるので mkfs.ext4 してくれるやつを使わないと無駄

Audacityで “クリッピングを表示” “Show Clipping” オプションを使って音割れを判断している方へ

この記事を書いた理由

近年(おそらく2013年くらい)音割れ音源が増えすぎて、誰もが音割れを気にするようになった。
しかし、無料で高機能なために手軽に波形を見たりするのに使われるAudacityは、何も知らないと使い方があんまり分からない。
とりあえずググッて出てくるセンセーショナルで悲惨な例に倣い、見様見真似で使って、結果的にアーティストを中傷することになってしまったり、逆に、自分の耳がおかしいのではないかと疑って音楽が楽しめない、などということになったりする。

また、音割れ音源が増える前は、いわゆる海苔音源が問題視されていたため、混同されることが多い。

そのあたりを整理したかったので、これを書いている。

音割れを判断する根拠として、クリッピングを表示オプションを使うのは間違いである。クリッピングを検出コマンドを使うべきである。

2015/10/06 21:13 追記:0dBに張り付いていなければクリッピングを検出コマンドでは検出できないので、検出されない音割れはあります。
例えば、下記の音割れの例の音源に対して、音量が下がるような加工(イコライジング等を含む)を加えると、実際には音割れはあるにも関わらず、検出されなくなります。
音割れの存在は検知できますが、音割れがないことは検知できません。

音割れとは

言葉の説明

ここで言う音割れとは、記録されている音声が、0dBを「超えて」「音の情報が失われて」いるものを指す。これはデジタル音声フォーマットにおいてはそこそこ一般的な定義だと思う。
ここで出す例と説明はまったく厳密でないです。

例1

440Hzのサイン波を
f:id:Yuichiro_S:20151006194904p:plain
音量を上げて音割れさせると
f:id:Yuichiro_S:20151006194914p:plain
のようになる。
元の音とは明らかに違う音だろうなーくらいに思ってほしい。

例2

440Hzのサイン波に4400Hzのサイン波を足した音声
f:id:Yuichiro_S:20151006194327p:plain
の一部の音量を上げて音割れさせると
f:id:Yuichiro_S:20151006194331p:plain
のようになる。
4400Hzの情報が失われてるなーくらいに思ってほしい。

クリッピングを表示とは そしてそれにまつわる誤解

クリッピングを表示という機能の説明

0dBに届いているところを赤く表示しているだけである。

なんでこんな機能があるのかというと、古きよき音源においては、音量が最大の場所でも-0.9dBとかの余裕をもって制作することがほとんどだったので、0dBに張り付いてるというのは異常なことで、音割れの目安として使えたのである。音圧を上げるということが(いわゆる音圧競争と呼ばれるマーケティング的な意味だけでなく、音楽の表現のかたちとして)一般的になった現代においては、あんまり役に立たなくなった。

クリッピングを表示機能を使うと真っ赤だけど音割れしていない例

f:id:Yuichiro_S:20151006192406p:plain
音量0dBのサイン波を生成すると、音量0dBなので、当然クリッピングを表示機能に検知され、
f:id:Yuichiro_S:20151006192414p:plain
真っ赤になる。しかし、実際は
f:id:Yuichiro_S:20151006192417p:plain
音声に問題はない。

クリッピングを表示機能を使うと大して赤くないけれども音割れはしている例

f:id:Yuichiro_S:20151006192422p:plain
振幅0.9のサイン波を生成して、一部の音量を上げると
f:id:Yuichiro_S:20151006192425p:plain
大して赤くはないが
f:id:Yuichiro_S:20151006192428p:plain
思い切り音割れしている。
こういうのを検出するために、クリッピングを検出というコマンドがあり、
f:id:Yuichiro_S:20151006192431p:plain
こういうふうに検出して表示してくれる。

そんな単純な例だと納得できないという方へ

当然だと思うんですけど、あんまり「この曲音割れてるぜ!」と書くと、気付かないで楽しんでいる方に悪いと思っていて、無難な曲を選ぶのが面倒くさくなりました。バラードっぽい曲で割れてると言われているものと、いわゆるEDMあたりを比較すると分かりやすいと思います。

最後に

この部分の記述はおかしいだろう、という部分があったらコメントなりTwitterでメンションなどください。 音がひどくてつらいのはもちろんなんですけど、音割れ音源でスピーカのツイータが焼けたら、誰が責任取ってくれるんでしょう…… 海苔音源と音割れ音源が混同されることについての説明は省きました。

おまけ

上であげた例の、440Hzサイン波の、音割れ前後のスペクトル
f:id:Yuichiro_S:20151006201341p:plainf:id:Yuichiro_S:20151006194917p:plain

上であげた例の、440Hzサイン波+4400Hzサイン波の音声の音割れ前後の、スペクトル f:id:Yuichiro_S:20151006201338p:plainf:id:Yuichiro_S:20151006201335p:plain

矩形波みたいな感じです。

Gentoo Linux で Intel Core i5-6500 の Intel HD Graphics 530 を使うメモ

※本当にただのメモです

Gentoo Forums :: View topic - [solved] Intel Skylake Graphics

Early Intel Skylake Linux Users May Run Into A Silly Issue - Phoronix

Intel To Hide Early Hardware Support By Default - Phoronix

  • 起動時に i915.preliminary_hw_support=1 を kernel に渡す、もしくは
  • CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT を有効にして kernel をコンパイルする
    と、とりあえず動きます。Xとフレームバッファコンソールが。でもソフトウェアレンダリングです。

DP接続ですが、

  • ディスプレイがスリープする→モニタを見失います
  • ディスプレイの電源を切る→モニタを見失います
  • その他よく分からない理由→モニタを見失います

ASUS H170 PRO GAMING
`x11-base/xorg-server-1.16.4 (glamor ipv6 kdrive nptl suid systemd udev xorg -dmx -doc -minimal -selinux -static-libs -tslib -unwind -wayland -xnest -xvfb)`  
'x11-drivers/xf86-video-intel-2.99.917 (dri sna udev -debug -uxa -xvmc)`  
`media-libs/mesa-10.3.7-r1 (classic dri3 egl gallium gbm gles2 llvm nptl udev -bindist -debug -gles1 -opencl -openmax -openvg -osmesa -pax_kernel -pic -selinux -vdpau -wayland -xa -xvmc ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32" KERNEL="linux -FreeBSD" VIDEO_CARDS="i915 i965 ilo intel -freedreno -nouveau -r100 -r200 -r300 -r600 -radeon -radeonsi -vmware")`  
`x11-libs/libdrm-2.4.59 (-libkms -static-libs ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32" VIDEO_CARDS="intel -exynos -freedreno -nouveau -omap -radeon -tegra -vmware")`  

Intel I219-V を Linux で使う方法

ASUS H170 PRO GAMING を買ったら、オンボードNIC Intel I219-V が新しすぎて Linux 上で動かなかったので、備忘録として。

ark.intel.com

結論としては、新しめのe1000eで動きます。

Linux Mint 17.2 kernel 3.16 (Ubuntu 14.04ベース? すみませんよく分かってません)
Gentoo Linux gentoo-sources-4.0.5
では動かない、
Ubuntu 15.04 kernel 3.19
では動く。

[net-next 01/16] e1000e: initial support for i219 — Linux Network Development
これが2015/02/22なので、Ubuntuはドライバをバックポートしたりしてるんですかね……

# lspci -vk
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V (rev 31)
        Subsystem: ASUSTeK Computer Inc. Ethernet Connection (2) I219-V
        Flags: bus master, fast devsel, latency 0, IRQ 123
        Memory at df200000 (32-bit, non-prefetchable) [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: e1000e

vanilla kernel 4.2 と gentoo-sources-4.2.0 では何もしなくてもe1000eがロードされて認識されました。

$ zcat /proc/config.gz |grep E1000E
CONFIG_E1000E=y

4ポートUSB OTGケーブル買ってみたらだめだった

概要

を買ってみました。 大雑把なレビューです。
結論から先に言うと、ぜんぜんだめです。

全体図 f:id:Yuichiro_S:20150706131633j:plain 端末側 microUSBf:id:Yuichiro_S:20150706131751j:plain 電源供給 microUSB(加工精度見た目最悪ですが普通にささります)f:id:Yuichiro_S:20150706131902j:plain 機器側(なぜか裏表が統一されていない) f:id:Yuichiro_S:20150706131821j:plain 切り替えスイッチf:id:Yuichiro_S:20150706131922j:plain

切り替えスイッチの挙動

Chargeモードで電源供給端子から機器へ電源供給、OTGモードではされない f:id:Yuichiro_S:20150706132749j:plainf:id:Yuichiro_S:20150706132612j:plain

OTGモードで端末から機器へ電源供給、Chargeモードではされない f:id:Yuichiro_S:20150706134514j:plainf:id:Yuichiro_S:20150706134428j:plain

電源供給のUSB端子から端末側のUSB端子にはデータ線はつながってません。

### 問題 充電しながらOTGでキーボードとかをぶら下げて、キーボードとかへの給電は外部から、という 思い描いていた使い方はできないようです。

Nexus7 (2012) での挙動: Chargeモードでは充電しかできない。OTGモードでは単なるハブ付きOTGケーブルとして働く。
Zenfone5での挙動: ChargeモードでもOTGモードでもOTGケーブルとして働く。Chargeモードなら機器への電源供給は外部から行われる。端末への充電はされない。

こういう感じです。コレジャナイ いろいろ試してたら異常に発熱しだして、他に何も繋いでないのに0.4A流れる状態になったので、見限ることにしました。

というわけで分解

f:id:Yuichiro_S:20150706143937j:plainf:id:Yuichiro_S:20150706143917j:plain (この電源のつなぎかたはアカン)

f:id:Yuichiro_S:20150706145941j:plain ああああああ逆流してりゅううううう

以上です