2008年12月31日水曜日

ふるみっくな年でした。

もう今年もあと2時間を切ったので、最後にいろいろ纏めてみようかと。


2007年年末のミク厨とニコニコ運営との対立を引きずったまま始まった2008年。
2ちゃんねるようつべ板のzoomeスレに「鯖復活キタ――(゚∀゚)――!!」と書き込む度にzoomeの鯖が落ちるという、「どう見てもDDoS攻撃です。本当にありがとうございました」状態がようやく落ち着いた年明け。

…去年の年末はいろいろ凄かったんだよな…(*´Д`)

その後、夏にかけては意外と落ち着いた日々を送っていたが…
夏休みに、友人関係が殆ど帰省し、30日ほどロクに人と会わなかったという、とんでもない事態が発生。
そんな中、勢いを増したのが「このブログの更新」と「ミク厨度の上昇」。
お陰さまで、夏以前は一日多くて10アクセス程度だったものが、現在日アクセス数40~50、一番多かった日で86という記録が(Google Analytics調べ)

更に、はつねさん体験版を入手し…'`ァ,、ァ(*´Д`*)'`ァ,、ァ
3~5日間ほど、はつねさんの声しか聞かなかった、なんて事態も…

そして、初めて同人CD買ったり。
まさか自分がこの業界に触れる日が来るとは思っていなかった…'`,、('∀`) '`,、


んで、そのまま年末までミク厨のままだったんだ(´・ω・`)
おそらく来年もミク厨のままなんだ。すまない。

CV3が出ても、余程の事が無い限り…(*´ω`*)


今年増えたはつねさん関連を全部纏めてみた。
2008年に増えたみく。

…意外と少ないな、と思ったが、その他にスピーカーやらPCやらでだいぶお金使っちゃったから…ね。
そのスピーカーもPCも、結局用途はみっくみくな訳だが…w

よく考えてみたら、今年買ったCDは全部ミクでした。
そして、今回の某お祭りで更に何枚か増えるのも、全部…


\(^o^)/オワタ

それでは、また来年。

2008年12月30日火曜日

lameはコンパイラが違うと音質が変わるのか

LAMEをマルチスレッドで実行するプログラム v1.1を作っていてふと、「コンパイルの仕方によって音質は変わるのか」という疑問が。

…ということで、さっそく実行。

以前環境が変わってもlameは同じファイルを出力するのかで、環境が変わってもバイナリが同じならば同じファイルを出力することは分かっていたので、今回はコンパイルで比較してみることにした。


ソースには、以前エンコード×100実験でも使用した、"miku.wav 96kHz 3072kbps 1307774byte"を使用。

まず、http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309から、lame3.98.2のソースをダウンロード。
とりあえずはインストール先だけを指定して、make | make install。
そしてmiku.wavをオプション無しでエンコード。

次に、RareWaresで配布されているWindows用lame3.98.2バイナリを使用し、オプション無しでmiku.wavをエンコード。


最後に、出来上がったファイルのsha1ハッシュを比較。


その結果…
hachune@Hachune-VM:~/Desktop$ sha1sum miku_org.mp3 miku_win.mp3
31c0d40ce1bbafa6aa3c3b1eabc25714c622ddd5 miku_org.mp3
a89fb2c22fb83d9b0c38dcbddb998fae35515d67 miku_win.mp3



見事に全然違うファイルに…(;´Д`)
エンコード結果が違うってのは、全てのmp3ファイルのエンコーダを統一している人にとっては、ちょっと痛いな…

コンパイルの最適化を行った場合もやはり出力されるファイルが変わるのだろうか…

2008年12月29日月曜日

LAMEをマルチスレッドで実行するプログラムを作ってみた v1.1a

09.07.26 追記
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/


ここより下の情報は古いです…(´・ω・`)スマソ



冬休みが始まり、友人が殆ど帰省してしまい、ヒマになったので、「lameのエンコードをマルチスレッド処理するプログラム」をいろいろ改良(?)してみた。

変更点

  • Core i7やQuad-Core Opteronのデュアルプロセッサなんて贅沢な環境を使っている人の為に、同時に8スレッドまで立てられるようにした。
  • mp3ファイルの再エンコードに対応。
  • ファイルの上書きチェックをし、一応問い合わせるようにした。


解決していない問題

  • Unix系OSでの拡張子の大文字・小文字問題(.WAV、.wAv等が処理できない)
  • mp3ファイルの再エンコードが終了しないとwavファイルのエンコードを開始できない。
  • mp3の再エンコードのみを行うことができない。
  • 相対パスで指定することができない。
  • エンコードに失敗しても「全ての処理が完了しました」と出る。


拡張子が.wav以外だと、Unix系OSで処理できない問題は、Unix系OSとWindowsでのファイル名の扱いの違いがあることから、今回は修正出来ず…('A`)
Windowsって"miku.mp3"と"MIKU.MP3"が同じファイル名として認識されるんだったな…



RubyのバイナリはOne-Click Ruby Installer for Windowsをインストールするのが一番楽な感じがした。

One-Click Ruby Installer for Windowsは以下で入手できる。
http://rubyforge.org/frs/?group_id=167

使用方法やRubyバイナリのインストール方法はv1.0と同じで…
http://projectzero-swb.blogspot.com/2008/12/lame.html


「lameのエンコードをマルチスレッド処理するプログラム」本体は、ここからダウンロードできるようにしてみた。

旧バージョンの管理が大変なので、全てMulti thread Media Encoder Frontendに纏めました。
http://mtmef.g.hachune.net/


いつの間にかゲイツドライブの容量が25GBに増えてた…(゚д゚)ウマー


これで、一気にミク曲が100曲位増えても、あっという間にエンコードが終わるよ…'`ァ,、ァ(*´Д`*)'`ァ,、ァ
…私は曲を作ることはできないが、これなら…(´・ω・`)

2008年12月26日金曜日

'`ァ,、ァ(*´Д`*)'`ァ,、ァ

家に帰ったら、机の上にケーキが置かれてあったので…
08.12.25 with Miku x4

とりあえずはつねさん達にお供えしてあげてみた。
蝋燭の代わりにネギを立てて(ry



ちなみに、こんな日に何処行ってたかというと…

友人2人と、忘年会 兼 8時間耐久カラオケに行ってきただけなんだ…(´・ω・`)

そこで出た記録。
08.12.25 トルコ行進曲 - \(^o^)/オワタ
トルコ行進曲 - オワタ\(^o^)/
3577人中459位

恋スルVOC@LOID
恋スルVOC@LOID
764人中60位

何故恋スルVOC@LOIDの順位と得点が更に上がっているのか…わからん。
他の曲は殆ど平均より少し上程度なのに…'`,、('∀`) '`,、

5時間過ぎたあたりからどんどん点数下がりだすし…(´;ω;`)ブワッ

2008年12月23日火曜日

Amazonからきますた。

Amazonから何かが届いた。
Amazonからの箱

…あれ?何か注文してたっけ…('A`)?
とか考えつつ開けてみると…

ねんどろいどキタ――(゚∀゚)――!!

ねんどろいどキタ━ヽ(ヽ(゚ヽ(゚∀ヽ(゚∀゚ヽ(゚∀゚)ノ゚∀゚)ノ∀゚)ノ゚)ノ)ノ━!!!!
…清楚で可憐…だと…?


予定ではもっと後(12月30日位)だったハズなのだが…まぁ遅いより良いのでおk。
この時期に配送するというのは、空気読んでいるのか何なのか…

…顔だけのパーツがちょっと怖い(;´Д`)

出してみた

意外とデカかった…が、紙ミクよりは小さかった。
固定の為の棒が行方不明になって焦った。
しかし、お尻スカートで固定するのはまた凄い荒業なような…

はちゅねさん

当然のことながら、はちゅねにしてみた '`ァ,、ァ(*´Д`*)'`ァ,、ァ
はちゅねさん用前髪パーツがあるのに、一度組み上げてから気付いた…

うしろになんかいるのは、まぁキニスルナ。


Amazon+はつねさんといえば、こんな曲もあったな…w



んで、いろいろしていて、ふと外を見たら…
雪降ってきた
いつの間にかまた積もってるよ…

2008年12月21日日曜日

Google Chromeの正式版がいつの間にかリリース

…していたので使ってみた。

が、未だにインストール先が
C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Google\Chrome
で強制されているという微妙さ。
まぁProgram Files固定よりはマシ、か…(Program Filesだと、権限不足でインストール出来ない問題が発生することもあるし)

Gooogle Chrome

追加された機能として、シークレットモードなるものが追加された模様。
恐らく、InternetExproler8 Beta2のInPrivate機能に対抗したのだろうが…

ただ、そこに書いてあった説明が…


※シークレット モードが他のユーザーやサーバー、ソフトウェアの動作に影響することはありません。なお、下記のようなケースにご注意ください。
・ユーザーの情報を収集、共有するウェブサイト
・アクセスしたページをトラッキングするインターネット サービス プロバイダや雇用主
・無料ダウンロードなどと一緒にインストールされ、キーストロークを記録するマルウェア
・スパイ、諜報活動
・背後にいる人


いや、言いたい事は分かるのだが…
最後のほうがなんか…w


軽さ&シンプルさが重視されているようで、機能面では少し物足りない感じがしなくもない。
仮想マシンでもぬるぬる使えるので、非力なマシンでのWebブラウズには最適かも。
最近流行りのUMPCなんかにもかなり使えそうな気がする。
Adobe Flash PlayerはOperaやFirefoxと同じものを、設定無しに使えるようになった模様。
逆に、管理者権限が無いと弄れなくなった、という問題が発生…するかもしれない。
以前は
"C:\Documents and Settings\%Username%\Local Settings\Application Data\Google\Chrome\Application\Plugins"
なんてフォルダがあったのに、今回のリリースでは無くなっているな…


※ついでに、Opera 10 Alphaも使ってみた。
Opera 10 Alpha

Opera 10 Alphaのダウンロードはこちらから
http://jp.opera.com/products/desktop/next/
来年には正式版が出るらしいが、9.2→9.5への移行の遅さをみると、何か無理な気が…
以前より30%早くなった、と言われても、回線速度が頭打ちで、
さっぱり違いが分からない…'`,、('∀`) '`,、

LAMEをマルチスレッドで実行するプログラムを作ってみた

09.07.26 追記
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/

ここより下の情報は古いです…(´・ω・`)スマソ



mp3エンコーダーとして物凄く有名なlame。
音質などの面ではかなり良いのだが、マルチスレッド化で音質が低下するなどの問題が発生したらしく、最近主流のPhenomx4やCore2Quadなどのマルチコア・マルチスレッドCPUには対応できておらず、エンコード速度の面でちょっと問題がある。

ということで、
lameのエンコードをマルチスレッド処理するプログラム
を、Rubyで作ってみた。
(大学のレポートとして、4日間の突貫工事で作成したのだったりする)

エンコード処理内でマルチスレッドにするわけではない(コマンドプロンプトを4つ開いて、同時に実行しているのと同じ)ので、音質の問題も発生しない。…ハズ。
(以前、こんな実験をして確認したので、多分問題無い。)

一応、WindowsでもLinux・Unix・MacOSXのどれでも、Rubyが動けば使用できる…と思う。
(Windowsでは少し問題が発生したので、一応別に作り直したが)

あまりに汚いのでコメントアウトしました…(´・ω・`)



ダウンロードはこちらから。

旧バージョンの管理が大変なので、全てMulti thread Media Encoder Frontendに纏めました。
http://mtmef.g.hachune.net/



※WindowsでのRubyバイナリのインストール&スクリプトの実行


※追記: One-Click Ruby Installer for Windowsの方がたぶん楽だが、書いてしまったので一応残す。
  • http://www.garbagecollect.jp/ruby/mswin32/ja/から安定版の最新版をダウンロード。
  • Windows用lameバイナリはこちらからhttp://www.rarewares.org/mp3-lame-bundle.php
  • 適当な解凍ツールを使用し解凍。
  • "bin""doc""lib""man""share"といったディレクトリが生成されるので、ディレクトリ階層を壊さないようにそのまま全て"C:\Program Files\Ruby"などのディレクトリに入れる。
      例:
    • C:\Program Files\Ruby\bin
    • C:\Program Files\Ruby\doc
    • C:\Program Files\Ruby\lib
    • C:\Program Files\Ruby\man
    • C:\Program Files\Ruby\share
    Program Files以外のディレクトリでも、階層構造が壊れていなければおk。
  • mtlamefconf.rbをコマンドプロンプトで実行すると、「このファイルを開けません」と出るので、「一覧からプログラムを選択する」を選択。
  • 「参照」をクリックし、先ほどインストールしたRubyディレクトリの中の、bin/ruby.exeを選択。「この種類のファイルを開くときは、選択したプログラムをいつも使う」のチェックボックスをONにし、OKする。


  • 再度mtlamefconf.rbをコマンドプロンプトで実行。環境を設定する。
  • mtlamef_win.rbを実行。
Windows用Rubyのインストールには、One-Click Ruby Installer for Windowsなんてものも存在するので、試してみると良いかもしれない。 …と書いてから試してみたら、ダブルクリックでスクリプトを起動出来たりと、地味にこっちの方が便利な気がしてきた…

※Linux・Unix・MacOSXでのRubyのインストール・スクリプトの実行

  • ソースコードかパッケージ管理を利用してRubyとlameをインストール。
  • mtlamef.rbのソースの1行目の
    #!/usr/bin/ruby
    を、自分でRubyをインストールしたディレクトリに設定しなおす。
  • 端末でmtlame*.rbを実行。

※既知の問題

  • 同じ名前のmp3ファイルが存在すると、問い合わせなしに上書きしてしまう
  • ".wav"以外の拡張子が付いていた場合、wavファイルでも処理することができない
    (".Wav"、".WAv"、".WAV"、".wAv"、".wAV"、".wav"、".wave"…など)
  • mp3ファイルの再エンコードが出来ない
  • 相対パスで指定することができない("~/mp3"など)
  • "lameが見つからない"、"ファイルのアクセス権が無い"などのエラーが発生した場合でも、
    最後に「エンコードが完了しました」と出てしまう。
ソースに意味不明な#コメントが付いていたり、無駄が大量にするが、 見ないふりしてほしいんだ…(´;ω;`)ウッ…


そのうちCorei7向けに8スレッドまで立てられるのも作ろうかと画策中(30分もかからずに出来そう…だが)
この要領で、他のAACやogg、flacとかのエンコーダやデコーダに対応したのも簡単に作れそうだな… …時間が足りないな('A`)

このプログラムを作成する上で、はつねさんの声を一体何回エンコードしたのだろうか…
そして1週間ほどニコニコ放置してたら新曲増えまくりで涙目w …(´;ω;`)ブワッ