HOME

通信回線をIIJmioに統合して通信料を月8000円ぐらい安くする話

最近になって、使用中の回線を見直している。主な理由としては、携帯を現在のauからMVNOの回線に変更することにしたため。
自分の使い方ではキャリアの通信量上限まで全然達することはないし、キャリアのサービスなんで全く利用しないし、通信料金高すぎるしで、現状のキャリアを使い続けるメリットは全くないので、MVNOに変更することにした次第。ちょっと引っかかるのは昔から使ってるキャリアメールと、三大キャリアのメール以外を受け付けないサービスの利用。ただ、キャリアメールは迷惑メールばかり届くのでもう要らないし、最近はgmailが普通にサービスで利用できたりするので問題ないかな、と。メールの変更は連絡がちょっと手間かも。

MVNOの変更先はIIJmio。すでにSIMを2枚契約している上に、固定回線のプロバイダもIIJmioなので、もう全部ここに統合してしまおうという計画。固定回線とIIJmioを統合すると、月々600円ぐらい割り引かれるというメリットも魅力だった。さらに言うと、3枚のSIMをまとめてファミリーシェアプランというプランにすると、個別に3枚契約するよりもちょと安くなって通信量が増えるというメリットもある。
また、現状のIIJmioで契約しているプロバイダを、フレッツ回線とプロバイダ登録がセットになった「IIJmioひかり」に変更することにする。

で、結局どのくらい安くなるのか計算してみた。価格は100円単位の大雑把な値。

まず現状。

  • NTTフレッツ回線:3000円
  • IIJmio FiberAccess/DF(プロバイダ):2000円
  • IIJmio データ通信専用SIM:900円
  • IIJmio 音声通話機能付きSIM:1600円
  • au :7500円
  • (計:15000円)

次に変更後。

  • mio ひかり:3400円 (mio割で-600円)
  • IIJmio ファミリーシェアプラン(音声2回線、データ1回線):4000円 (2560+700*2)
  • (計:7600円)

合計で、15000 – 7400 = 7600円程安くなる。ついでに、mioひかりとIIJmioを組み合わせると、2年間はsim 1枚当り150円引かれるキャンペーンが行われているので、450円安くなる。つまり、変更前に比べて8000円ぐらい安くなる。

1ヶ月辺り8000円安くなるのはなかなかのインパクトだと思う。通信を1会社に集中させるのはあまり良くないような気がするという懸念はあるのだけど、料金の安さと運用の簡易さの前にはあまりにも弱かった。
ついでに、ファミリーシェアプランだとLTEが10GB使えるので、変更前よりLTE通信量の上限は上がるというおまけ付きでもある。そんなに使わないけれど。

そんなわけで、通信回線を見直すとこれだけ安くなるよ、という話。というか、3大キャリアの携帯回線がぼったくりすぎなんだよな…。

ちなみに、IIJmioの契約は固定回線も携帯回線もビックカメラのBIC simカウンターで行えるので、直接IIJmioに連絡とるよりこちらの方が色々相談にも乗ってくれるのでお勧めです。むしろ直接IIJmioとやりとりすると、向こうからの手続き待ちやら連絡待ちやらで色々面倒でした…。

ところで、複数のIIJmio回線を一つのファミリーシェアプランにまとめる仕組みを用意しているとの話だったけれど、いつやるんでしょうか…。今回はsimの再発行でいいですが。

Windows 10 で SoundBlaster X-Fi Titaniumを使う

本日、メイン機のOSをWindows 7からWindows 10に変更。
近年はスマートフォン、タブレットが台頭したり、MacBookが流行したりして、「まだWindowsなんて使ってんの?」的な風潮が無きにしも非ずな昨今だけど、ゲームに使えて開発に使えてソフトウェアが豊富で過去の資産が活用できて、様々な作業がかなり高い水準で達成できる汎用性の高いOSなので、今後も重宝すると思う。

それはさておき、Windows10を導入するに当たり困ったのが、SoundBlasterのドライバ。Creative公式を見ると、現在刺さっているSoundBlaster X-Fi Titaniumは、10月までまともなドライバを出してくれない模様。

Windows 10 ドライバー対応状況

Windows8用のドライバが動くのだけど、Creativeのオーディオマネージャが起動しない。そのため、ステレオ音声を5.1chに振り分けて再生したり、バスリダイレクションでサブウーハーに振り分けたりできない。恐らく、サラウンド音声関連もダメダメだろう。
ちなみに、Windowsアップデートでダウンロードされるドライバはインストールしてはいけない。これをインストールすると音が鳴らなくなる。

そこで調べて見たところ、SoundBlasterシリーズの非公式ドライバ、Support PackがWindows10に対応していた。

SB X-Fi Series Support Pack 3.4 (07/08/2015) – Updated Auzentech drivers

これをインストールしたところ、無事各種設定が行えるようになった。X-Fi以外のドライバについては、下記を参考に最新ドライバを探す。

ドライバ – Sound Blaster Wiki*

ちなみに、nVIDIAのビデオカードからHDMI出力でアンプに直結しようと思ったのだけど、映像を出力しないと音声も出ないし、アンプのテレビをON/OFFすると音声が途切れて具合が悪いので諦めた。私にはまだサウンドカードが必要なようで。

コミックマーケット88 サークル参加のお知らせ

8月14~16日にビックサイトで開催される、コミックマーケット88にサークル参加します。4回目の参加です。
参加情報は以下の通り。

コミックマーケット88
日付:8/16(日) (3日目)
場所:東O-55a
サークル:Melog

今回の出版物は以下の通り。

タイトル:同期歌詞を作ろう!
ページ数:48ページ
価格:300円

拍子は以下のような感じです。適当すぎて何かもう…。

C88 同期歌詞を作ろう! 表紙

C88 同期歌詞を作ろう! 表紙

内容は、音楽と同期する歌詞についての本です。LRCやタイムタグ付き歌詞など、同期歌詞全般について書いてます。48ページと盛り沢山ですが、内容はそんなに多くないかもしれません。割と大雑把な内容なので、同期歌詞を作る時に参考にしていただければ、程度の内容です。

それから、今回初めて印刷屋を使いました。オフセットです。何かすげぇ(何が)。

そんなわけで、お暇でしたらスペースにいらしていただけると嬉しいです。

Google Play は他の商標から始まる名前のアプリはリジェクトされる

最近、Google Playにアプリを登録しようとしたところ、以下のようなメールが届く。

他の商品のブランドや商品名名前で始まるタイトルを無許可でアプリに使用してはいけません。その企業の関連商品であるとユーザーに勘違いされてしまうおそれがあります。代わりに、「for [ 商品名またはブランド名 ]」を使用してください。

今回は、頭に「Twitter」が入っていたのが良くなかった模様。もちろん、権利を侵害するつもりは毛頭無かったけど、よく考えたらそうだよね。逆に言うと、頭に入ってなければ割と自由に入る模様。

詳細:キーワード スパム – Google Play デベロッパー ヘルプ

TSファイルの自動エンコードスクリプト

最近、TVをTSで録画した後に自動的にMP4形式にエンコードするようバッチ処理させたいと思い立ったので、色々調べてみた。
ちなみに自分の方針としては、CM等は削らない、画質はあまり問わない、設定にあまり手間をかけない、です。とにかく、サイズが小さく出来れば良いし、CM無しや良い画質が欲しけりゃBD買うよ、というスタンスなので。むしろ録画当時のCMとか残しておきたいよねー、って思ってる。

録画完了後にバッチを走らせるパターンが多いようだけど、録画直後にエンコーダを走らせると、その負荷が次の録画等の処理に影響してしまったり、複数のエンコーダ同時に走って、いつまで経ってもエンコードが終わらず面倒な事になるかもしれない…と思い、タスクスケジューラで指定時刻に順次エンコードさせることにした。
…が、そのような処理をさせる人をネットであまり見かけない。負荷による影響はあまり気にしなくても良いのかなぁ…。しかしまぁ、せっかくなので当初の予定通り、タスクスケジューラで実行させる事にした。

スクリプトは以下のような感じのを自前で作った。余所ではバッチファイルが多いけれど、私はあんまりバッチファイルを書けないもので…。細かいことやろうとすると色々調べる事になるので、結局WSHとか使った方が楽かな、と。何れにせよWindowsなら間違いなく動くので、別に良いかと。


var Fso      = new ActiveXObject("Scripting.FileSystemObject");
var WshShell = new ActiveXObject("WScript.Shell");

/// User ///////////////////////////////////////////////////////////////////////

var InputDirPath = "D:\Record";
var OutputDirPath  = InputDirPath;
var WorkDirPath    = Fso.BuildPath(OutputDirPath, "work");
var ProgramDirPath = WScript.ScriptFullName.replace(WScript.ScriptName, "");
var Threshold      = 1000000; // re-encode threshold size.

// Split
function splitTs(inputFilePath, outputDirPath) {
	var tsSplitterPath = Fso.BuildPath(ProgramDirPath, "TsSplitter.exe");
	var tsSplitterCommand = " -ECM -SD -1SEG -SEP2 ";
	
	WshShell.Run(tsSplitterPath + tsSplitterCommand + " -OUT \"" + outputDirPath + "\" \"" + inputFilePath + "\"", 0, true);
}

// Encode
function encodeTs(inputFilePath, outputFilePath) {
	var encoderPath = Fso.BuildPath(ProgramDirPath, "HandBrakeCLI.exe");
	var encoderCommand = " -f mp4 -e x264 --x264-preset=medium --x264-tune=animation --h264-profile=high -q 22 --cfr -a 1 -E fdk_aac -6 stereo -B 160 -R auto --gain 10 -w 1280 -l 720 --crop 0:0:0:0 --decomb ";
	
	WshShell.Run(encoderPath + " -i \"" + inputFilePath + "\" -o \"" + outputFilePath + "\" " + encoderCommand, 0, true);
}

///////////////////////////////////////////////////////////////////////////////

var InputExt = ".ts";
var OutputExt = ".mp4";

// Exec cscript.
if (Fso.GetFileName(WScript.FullName).toLowerCase() != "cscript.exe") {
	WshShell.Run("cscript " + WScript.ScriptFullName);
	WScript.Quit();
}

try {
	var workExists = Fso.FolderExists(WorkDirPath);
	if (!workExists) {
		Fso.CreateFolder(WorkDirPath);
	}
	
	var folder = Fso.GetFolder(InputDirPath);
	var enumerator = new Enumerator(folder.Files);
	for( enumerator.moveFirst(); !enumerator.atEnd(); enumerator.moveNext() ) {
		// Input File
		var inputPath = enumerator.item().Path;
		var inputName = enumerator.item().Name
		if (inputName.match(".*" + InputExt + "$") == null) continue; // not .ts file
		
		// Output File
		var outputPath = Fso.BuildPath(OutputDirPath, inputName.substr(0, inputName.length - InputExt.length) + OutputExt);
		if (Fso.FileExists(outputPath) && Fso.GetFile(outputPath).Size > Threshold) continue; // completed
		
		// Split
		splitTs(inputPath, WorkDirPath);
		
		// Get max size file
		var files = new Enumerator(Fso.GetFolder(WorkDirPath).Files);
		var maxSize = 0;
		var maxSizeFilePath = "";
		for(files.moveFirst(); !files.atEnd(); files.moveNext()) {
			if (inputName.match(".*" + InputExt + "$") == null) continue;
			if ( files.item().Size > maxSize) {
				maxSize = files.item().Size;
				maxSizeFilePath = files.item().Path;
			}
		}
		
		// Encode
		try {
			if (maxSize > 0) {
				WScript.Echo(maxSizeFilePath +  " begin.");
				encodeTs(maxSizeFilePath, outputPath)
				WScript.Echo(maxSizeFilePath +  " end.");
			}
		} catch (e) {
			WScript.Echo(maxSizeFilePath +  " error.");
		} finally {
			// Delete files
			for(files.moveFirst(); !files.atEnd(); files.moveNext()) {
				if (inputName.match(".*" + InputExt + "$") == null) continue;
				Fso.DeleteFile(files.item().Path);
			}
		}
	}
	
	if (!workExists) {
		Fso.DeleteFolder(WorkDirPath);
	}

} catch(e) {
	WScript.Echo(e.message);
} finally {
	WshShell = null;
	Fso = null;
}

このスクリプトは、スクリプトが置かれたフォルダ上にTSSplitter.exeとHandBrakeCLI.exeが必要。このパスを変更する場合は、「ProgramDirPath」の値を弄る。
スクリプトの処理の概要は以下の通り。

  1. WorkDirPathフォルダが無ければ作成。
  2. InputDirPathフォルダ内にあるTSファイルを走査。
  3. 出力ファイル(TSファイル名.mp4)が既に存在し、Thresholdよりサイズが大きい場合は次のTSファイルへ。
  4. TSファイルを TSSplitterで分割し、WorkDirPathフォルダに出力。
  5. WorkDirPathフォルダに分割されたTSファイルのうち、一番サイズの大きなTSファイルを取得。
  6. 一番サイズの大きなTSファイルをエンコードし、OutputDirPathフォルダに出力(TSファイル名.mp4)。
  7. WorkDirPathフォルダ内の分割TSファイルを削除。
  8. 3に戻り、次のTSファイルを処理。これをInputDirPathフォルダ内のTSファイル分繰り返す。
  9. WorkDirPathフォルダを作成した場合は、フォルダを削除。

基本的には、他のサンプルと同様にTSファイル分割→エンコードの流れ。本当はエンコードだけでも良かったのだけど、TsSplitter噛まさないと、MXの録画がエラーで止まるもので…。常時マルチ編成になった後はどうなったのかは知らないけれど。
ここでは分割時に一番大きなサイズのファイルを採用してエンコードしている。必ずしも目的のファイルが一番大きなサイズのファイルになる保証は無いけれど、まぁ9割9分ぐらい問題ないと思う。
Threshold判定は、何らかの事情でエンコードに失敗し、サイズの小さいゴミファイルが生成されてしまった場合に再エンコードさせるためのも。1000000という数字は適当。おまじないみたいな物だけど、必ずエラーが起こる場合は毎日エンコードを試みることになるので、無駄な処理が発生するかもしれない。
ちなみに、本スクリプトは必ずcscriptで起動させるようにしているけれど、これは単に途中経過を示すコンソール画面が欲しかったため。

splitTsメソッドとencodeTsメソッドの中のパラメータは、必要に応じて適当に弄る。気が向いたら別のエンコーダに差し替えるかもしれない。
補足としては、スクリプトではTsSplitterをExecメソッドで実行し、HandBrakeCLIをRunメソッドで実行している。TsSplitterは、実行させてもすぐに処理が戻ってきてしまうため、処理が完了するまでStatusプロパティを監視する必要がある。一方のHandBrakeCLIはStatusプロパティは利用できないが、Runメソッドで実行させると完了するまで処理が戻ってこない。そんなわけで、ExecとRunを使い分けてる。
すいません、大嘘ついてました。Runメソッドで結果がすぐ帰って来てたのは、第3引数にtrue指定し忘れてただけだった。Runでいいです。むしろExecはTsSplitterが正しく終了ステータスを返さない場合がある事を確認しているので、やめた方がいいです。(これはTsSplitterの問題では無く、Execメソッドが昔から抱える問題の模様)

あとは、これをタスクスケジューラに登録する。
自分はとりあえず、毎日5時に実行されるようにしている。この時間なら、まぁ録画は行われていないだろう、という判断。

そんな感じで、タスクスケジューラでエンコードのバッチ処理を行う方法でした。
スクリプトはそんなに真面目に検証してないので、もしかしたら間違いがあるかもしれないです。

Android端末をDynamic DNSクライアントにする

最近、ダイナミックDNSの更新に失敗して自宅サーバにアクセスできなくなる事態が発生した。更新ドメインは2重化していたのに、何れもアクセス出来ずに失敗してしまった。

その要因の一つに、有名なダイナミックDNSサービスであったDynDNSが有料化し、サービスが利用できなくなった事が挙げられる。今まで、DynDNSサービスはBUFFALOのルータから更新していたけれど、今後は有料サービスを使わないとBUFFALOルータのダイナミックDNS更新機能は利用できなくなってしまった事になる。
ちなみに、自宅のサーバでは別のダイナミックDNS更新ソフトが走っており、別のドメインを更新させているけれど、今回は何故か設定が消失して更新されなくなっていた。この対策は別途考えるとして、今回は置いておく。

使えなくなったDynDNSの代替手段を別途確保しようと色々頭を捻ってみたところ、まず思いついたのがRaspberry Piを使った更新処理。ただこれは、色々準備しないといけないので面倒臭い。
しかし背に腹は替えられない…と思って機器を揃えたところでふと思いついた、余ったAndroid端末を使えばいいんじゃね?と。Androidの携帯端末ならば、常時稼働が前提だし、省電力製に優れるし、電源の確保も簡単だし、ネットワークにも接続できるし、コンパクトだし、単独でメンテナンスもできるし、ソフトウェアのインストールも簡単だし、代替手段として全く申し分ない。もっと早く気付くべきだった…。

ダイナミックDNSの設定

で、ここからが本題。AndroidからダイナミックDNSの更新を行うために、アプリを導入する必要がある。今回利用したのは、「Dynamic DNS Update」というアプリ。

Dynamic DNS Update – Google Play の Android アプリ

またダイナミックDNSサービスは、DynDNSの代わりにVALUE DOMAINを利用することとする。自分の場合、元々Value Domainでドメインを取得していたため、ここで提供されているダイナミックDNSサービスを利用することにした。なお、Value DomainのダイナミックDNS更新については、ダイナミックDNS機能のご利用方法に情報がある。

Dynamic DNS Updateの設定画面は以下のような感じ。

Dynamic DNS Update

ここで設定するべき内容は以下の通り。各種情報は、Value Domainにあらかじいめ登録しておく。

Select Dyanamic DNS url
http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=[自分のドメイン]&p=%password%&h=%hostname%&i=%ip%
Update every (minutes)
更新間隔(分)。この間隔おきにIPアドレス変化のチェックが行われ、違っていれば更新処理が行われる。(デフォルト動作)
Hostname
更新対象のホスト名。あらかじめDNSレコードに登録しておく。
Password
更新用パスワード。あらかじいめValue Domainに登録しておく。

これを登録し、「Start」ボタンを押してDynamic DNS Updateをバックグラウンドで走らせておくことで、無事ダイナミックDNSの更新を行うことができた。注意点としては、パスワードとか丸見えなので、普段使ってるパスワードは絶対使わないこと。
ちなみに、アプリには複数の更新を登録することができる。あと、端末起動時にアプリを起動する場合は、設定の「Start the app on boot」にチェックを入れておく。

そんな感じで、Value DomainとDynamic DNS Updateを利用した、AndroidからのダイナミックDNS更新について書いてきたけど、他のサービスにも色々使える(テンプレートが用意されている)ため、AndroidでダイナミックDNS更新を行う場合は結構汎用性が高いと思われる。
そんなわけで、興味がある人は是非チャレンジをば。

Mouse Without Bordersのマウスホイールが効かない場合の対処

Microsoft download from The Garage: Mouse without Borders – Next at Microsoft – Site Home – TechNet Blogs
窓の杜 – 【NEWS】Microsoft、複数PCでマウス・キーボードをLAN共有する「Mouse Without Borders」

複数のPCでキーボード・マウスを共有できるMicrosoft製ソフトウェア「Mouse Without Borders」。もちろんWindows専用ソフトウェアだけれど、Windowsに特化しているためか反応も良く、自宅にあるサーバの操作にはなかなか重宝している。ところが、自分の環境ではマウスホイールが効かないという事象が発生していた。
以前から気にはなっていたけれど、最近少し調査してみたら。Logitechのドライバが悪さをしていることが分かった。

SetPoint

日本語ドライバなら「スムーズなスクロールの有効化」、英語ドライバなら「Enable Smooth Scrolling」のチェックを外す。これで治る模様。少なくとも自分の環境では治った。
と思う。

あけましておめでとうございます 2014

あけましておめでとうございます。2014年になりました。

去年は、コミケ出たりアプリ作ったり、どっちかというと作る方が主体になった年だったような気がします。今年も、見たり聞いたり遊んだり、といった消費型のスタイルよりも、作ったり描いたりといった創作型のスタイルの比重を高めたいと思っていたりします。
もちろん、インプットあってこそのアウトプットであり、アウトプットあってこそのインプット。どちらか一方に偏っても多分よい結果は得られないと思いますので、程々にバランスよくやっていきたいです。
とりあえず、去年作って公開したAndroidアプリの機能を拡充していく方向でがんばりたいです。現状は30ダウンロード程度しか無いのだけれど、これを多くの人に使ってもらえるようにするにはどうしたらいいか、試行錯誤しながら頑張ってみたいと思います。
あと、今年の夏もコミケ申し込み予定ですが、今年は少し絵を描いたりする機会を増やしたいなぁ、とか思ったり思わなかったりしています。あと、サイトの方ものんびりやっていきたいです。知識を纏めたり、レポートを書いたりするのに、ここは非常に便利なので。

そんな感じで、今年もよろしくお願い致します。

Falcom jdk BAND SUPER LIVE 2013 に行ってきた

Falcom jdk BAND SUPER LIVE 2013

開催日時:2013/12/21 (土)
開場時間:17:30
開始時間:18:30
終了時間:21:30
会場:東京 日本橋三井ホール

1週間前の12月21日に、日本ファルコムのjdk BANDライブに行ってきたのでその感想。1週間経ってるけど気にしない。
今回のセットリストは、他サイトを参照に丸パクリで。

  1. 明日への鼓動 (英雄伝説 閃の軌跡)
  2. GO FIGHT (スタートレーダー)
  3. 俺たちのレジェンド (イース vs. 空の軌跡 オルタナティブ・サーガ)
  4. Maybe it was fated (英雄伝説 空の軌跡)
  5. 風の伝説 (風の伝説ザナドゥ)
  6. The Fate of the Fairies (英雄伝説 空の軌跡)
  7. Inevitable struggle (英雄伝説 零の軌跡)
  8. 迷いの森 (英雄伝説 白き魔女)
  9. 星の在り処 (英雄伝説 空の軌跡)
  10. I swear… (英雄伝説 空の軌跡)
  11. 異郷の空 (英雄伝説 閃の軌跡)
  12. Tie a Link of ARCUS! (英雄伝説 閃の軌跡)
  13. Exceed! (英雄伝説 閃の軌跡)
  14. I miss You (英雄伝説 閃の軌跡)
  15. FIRST STEP TOWARDS WARS (イースI&IIクロニクルズ)
  16. 「オープニング」 (ブランディッシュ~ダークレヴナント~)
  17. 「ダンジョン」‐消えた王様の杖‐ (ソーサリアン)
  18. バレスタイン城 (イース~フェルガナの誓い)
  19. GENESIS BEYOND THE BEGINNING (イース・オリジン)
  20. To Make The End of Battle (イースI&IIクロニクルズ)
  21. Mighty Obstacle (イース~ナピシュテムの匣)
  22. パンドラ (イース~ナピシュテムの匣)
  23. The Azure Arbitrator (英雄伝説 碧の軌跡)
  24. FINAL BATTLE (イースI&IIクロニクルズ)
  25. 銀の意志 金の翼 (英雄伝説 空の軌跡)

今回は約1年ぶりのファルコムライブということで、否応なくテンションが上がってしまった。この始まる前の「あの曲聞けるかなー」「この曲は生で聞いたらどんな感じかな-」と色々想像するのが結構楽しかったりする。

今回の目玉は、やはり9月末に発売された閃の軌跡の曲かなぁ、と。このライブの前日…というか、当日の午前1時頃に閃の軌跡をクリアしていた(ライブ合わせでクリアできるように頑張ってた)ので、心置きなく聞くことができた。
今回の「I miss you」は、他の軌跡シリーズはエンディングがもう少ししっとりしたバラード調の曲なのに対し、アップテンポな感じでちょっと違和感。ただ個人的にはそういう曲は好きで、OPもEDも結構お気に入りだったりするので、両方とも聞けたのは嬉しいところ。
その他の新曲の中で、「Tie a Link of ARCUS!」「Exceed!」といった戦闘曲は、ゲームプレイ中に「あー、これライブでやりそうだなぁ」と思って期待してたので、やはりやってくれたかという感じで嬉しい。ただそれ以上に、個人的には「異郷の空」が印象深かった。ゆったりしたフィールド曲を生で改めて聞いてみると、バイオリンの演奏が映えて実に趣深く、じっくり聞き入ってしまったよ。

あとそれとは別に、今回個人的に特に印象深かったのは古めの曲の多さ。「風の伝説 (風の伝説ザナドゥ)」、「迷いの森 (英雄伝説 白き魔女)」、「オープニング (ブランディッシュ~ダークレヴナント~)」、「ダンジョン‐消えた王様の杖‐ (ソーサリアン)」辺りは今回初だと思うけれど、こういった古めの曲が聞けて凄く嬉しい。特に、悲願だったBrandishやガガーブ曲が演奏されたのは感銘すら覚えた(ガガーブは以前少しあったと思うけれど)。あと、中学生の頃に購入して何百回と聞き込んだ「Falcom Vocal Collection IV」収録の「風の伝説」が聞けたのも実に良い。昔から何度も聞いてきた曲が生で聞ける感動なんて、なかなか味わえるもんじゃないしなー。もちろん「消えた王様の杖」も最高。ソーサリアンをプレイして、最初の冒険で聞ける曲なので、色々印象深い。
「GO FIGHT (スタートレーダー)」は前回も演奏されているけれど、もしかしてこの曲を定番曲にする気だろうか。そういえば、オカジは「イカルスさんには、過去のJDK BANDの曲を歌って貰いたい」と言ってたし、この方向性の曲はまだ増やしていくのかも。それは個人的にも結構歓迎かなぁ。次は「GET IN THE WILD」辺りでいかがでしょう。

それから、「GENESIS BEYOND THE BEGINNING」や「バレスタイン城」辺りの曲も久しぶりに聞けて嬉しかったな、と。「バレスタイン城」なんて、ファルコム曲の中では定番中の定番だけど、そういえば最近全くやってなかった…。

逆に残念なのは、割と最近の作品の「イース セルセタの樹海」や「那由多の軌跡」が無かったところかなぁ。「一陣の風」とか凄く好きな曲なので、できればやって欲しかったなぁ…と。まぁ、あれもこれもと欲張ってもしょうがない。

そんな感じで参加したファルコムライブ。
今回のライブは全体的に見て「全世代をターゲットにしてた」という印象。最新の閃の軌跡を主体にして、人気の軌跡シリーズ、ガガーブやブランディッシュ等の90年代、ソーサリアンやイースの80年代など、多分ほぼ全世代をバランス良くカバーしてるように思えた。自分はどの世代もイケるクチ(主に90年代がメイン)なので、この方向性は大歓迎だなぁ。次も是非ともこの方向性で頑張ってほしいところ。

最後に、今回一緒に参加された方々。本当にお疲れ様でした。おかげさまで、本当に楽しいライブとなりました。また一緒に参加して、色々語っていただけると嬉しいです。
それから、jdk BANDの方々。いつも本当に最高のステージをどうもありがとうございます。このライブのおかげで、「あー、ファルコムファンやってて良かったなぁ」と思ってます。これからも楽しいステージを期待しています。

関連

「Falcom jdk BAND 2013 Super Live」大盛り上がり! 「ブランディッシュ」から「英雄伝説 閃の軌跡」まで – GAME Watch
電撃 – 『閃の軌跡』主題歌から始まったファルコムjdkバンドの日本橋三井ホールライブをレポ! 『軌跡』10周年の日本ファルコムに2014年も要注目
「英雄伝説 閃の軌跡」の「I miss You」から往年の名曲まで全25曲が披露された,「Falcom jdk BAND 2013 Super Live in NIHONBASHI MITSUI HALL」をレポート – 4Gamer.net
「閃の軌跡」のEDテーマ「I miss You」に熱狂!アコースティックな楽曲も楽しめた「Falcom jdk BAND 2013 Super Live in NIHONBASHI MITSUI HALL」レポート|Gamer

Falcom jdk BAND 2013 Super Live 感想 – 全てが脂肪になる

Androidの密度グループと解像度の関係

Androidアプリのアイコンを作る上で、Androidの密度グループと、dipと、画像の解像度と、解像度毎のアイコン用途の対応関係がよく分からなかった。一応計算式やツールはあるのだけど、使うdipは大体限られてくるので、一々計算せずとも一覧表にした方が早いという事で、簡単に表にしてみた。

密度グループ ldpi mdpi tvdpi hdpi xhdpi xxhdpi 備考
ピクセル密度 120dip 160dip 213dip 240dip 320dip 480dip
dpx比 (px/dip) 0.75 1 1.33125 1.5 2 3
dip pixcel
1 0.75 1 1.33125 1.5 2 3  
2 1.5 2 2.6625 3 4 6  
4 3 4 5.325 6 8 12  
8 6 8 10.65 12 16 24  
16 12 16 21.3 24 32 48  
24 18 24 31.95 36 48 72 アクションバーアイコン
ステータスバーアイコン
32 24 32 42.6 48 64 96 タブアイコン
ダイアログアイコン
リストビューアイコン
48 36 48 63.9 72 96 144 ランチャーアイコン
56 42 56 74.55 84 112 168  
64 48 64 85.2 96 128 192  
72 54 72 95.85 108 144 216  
96 72 96 127.8 144 192 288  
128 96 128 170.4 192 256 384  
144 108 144 191.7 216 288 432  
256 192 256 340.8 384 512 768  
288 216 288 383.4 432 576 864  
備考     NEXUS 7 NEXUS ONE
NEXUS S
NEXUS 4
NEXUS 10
新NEXUS 7  

また、Androidではアイコンを作る上で余白を864px x 864pxで作り、これを縮小する事が推奨されている(参考: Iconography | Android Developers)。ついでに言えば、SVGでベクトル画像で作る事が一番望ましい。

この解像度は、Androidで使われる各アイコンのサイズに整数倍率で縮小できるため、縮小を綺麗に行う事ができる。もちろん、何でも整数倍率で縮小できるわけではない。そんなわけで、各解像度別に整数倍率で縮小できるサイズを計算してみた。下記の表で、値が整数で表される解像度が、864x864pxで作ったアイコンを綺麗に縮小できるサイズ、という事になる。

密度グループ ldpi mdpi tvdpi hdpi xhdpi xxhdpi
ピクセル密度 120dip 160dip 213dip 240dip 320dip 480dip
dpx比 (px/dip) 0.75 1 1.33125 1.5 2 3
dip 864 / pixcel
1 1152 864 649.0141 576 432 288
2 576 432 324.507 288 216 144
4 288 216 162.2535 144 108 72
8 144 108 81.12676 72 54 36
16 72 54 40.56338 36 27 18
24 48 36 27.04225 24 18 12
32 36 27 20.28169 18 13.5 9
48 24 18 13.52113 12 9 6
56 20.57143 15.42857 11.58954 10.28571 7.714286 5.142857
64 18 13.5 10.14085 9 6.75 4.5
72 16 12 9.014085 8 6 4
96 12 9 6.760563 6 4.5 3
128 9 6.75 5.070423 4.5 3.375 2.25
144 8 6 4.507042 4 3 2
256 4.5 3.375 2.535211 2.25 1.6875 1.125
288 4 3 2.253521 2 1.5 1

とりあえず、ここでは備忘録用に簡単にまとめただけ。tvdpiは多分、まともに相手しなくていい。