Spotifyでエイス・ワンダー

open.spotify.com

フィジカルのアルバムと上記Spotifyでは1曲目・2曲目の順序が入れ替わっているのはなぜなのだろう。英国版と日本版で曲順が違っていたのかとも思ったけどそれを裏付ける情報にもたどり着けない。単なるミスなのかなぁ。

 

デビュー曲「Stay with me」はアーティストページには表示されないけれど、80年代コンピレーションアルバムの中の曲としてSpotifyでも聞くことができる。

 

音楽ライブラリ管理再考

したいこと1

iTunesで管理していた音源のmp3gain/aacgain設定値の一括変更。

新作側の音圧に合わせて目標値を99dBにしていたのを、クリッピング回避を考慮した93dBに一括でダウンさせる。

アルバムごとにフォルダが作成されてはいるが、ゲインの分析についてはやり直さず、過去の解析結果を維持したままで目標値だけを変更したい。

方法

bashスクリプトでaacgainのコマンドラインを直接使用して、ゲイン解析状況を取得し、トラックゲイン解析済みのものにはトラックゲインの再設定、アルバムゲイン解析済みのものにはアルバムゲインの再設定を行うものを作成。aacgainが読み込めない文字を含むファイル名にも対応する。

進捗

ファイルの変換はほぼ完了したが、iTunesiPodへの再転送が必要なファイルだと認識してくれない課題あり。全部消してやり直しは、したくないが…。

 

したいこと2

iTunes Musicフォルダに格納されている音楽ライブラリの一覧を作成し、CDを保有しているものとそうでないもの(レンタルしたものなど)を識別する。また、CDを保有しているものについてはどの収納ケースに現物があるかの関連付けを管理したい。

方法

(1) CDの現物確認、ソフトケース化、収納。収納ケースのナンバリング等。

(2) iTunes上の音楽ファイルの「グループ」設定で、保有CDを識別するタグを付与する。

(3) 音楽ファイルの一覧を作成する。iTunesの機能としてiTunes Libraryをテキストファイルでエクスポートするものは存在し、過去にそれを利用しようとしたこともあったが挫折している。理由は、曲タイトルや作曲家などにカンマが存在するとcsvのフィールド区切りが統一されず、手動でフィールドを修復する必要があるが事実上不可能だったため。ffprobeでタグを参照しcsvに整形しながら取り出す方法を考える。

 

進捗

(1) 実施中。物量以外の課題はなし。

(2) 実施中。抜け漏れの確認はCD現物との照合時に解消する予定。

(3) 課題あり。同じ情報を参照する方法がmp3とm4aで異なるため合わせ込みが必要。また、mp3に埋め込まれているタグはUTF-8になっていないのか文字化けする。mp3ファイルに対するタグ文字化けの修復を行うか(根本的な解決)、出力結果を手動で書き直すか(場当たり的解決)のどちらかの対処が必要になる。

 

追記

mp3に埋め込まれているタグの文字コードUTF-16に修正するのはmp3tagを用いて

d.hatena.ne.jp

 の方法で実現することが可能であることを確認。でも、文字化けを含むファイルを見つけ出して自動でこの変換をかけるといったことはできなさそう。すべてのmp3ファイルを変換対象と決め打ちしてすべてmp3tagに放り込んで上記の処理をかければいいのかもしれないけど。

 

 

第16回 ハロプロ楽曲大賞'17

去年の楽曲大賞ぶりのはてな更新。
ハロコンには相変わらず夏冬とも足を運んでいるのに、年々、ノミネート楽曲が知らない曲ばかりになっていて悲しくなってくる。デジタルネイティブ世代ではないからなのか、配信オンリーの曲や里山曲なんかは、え、いつの間に出ていたの?な状態。
そういう意味ではあまり選曲には困らず。モーニング娘。を中心に投票しました。

●楽曲部門
1位 ジェラシー ジェラシー / モーニング娘。'17 [3.0]
音符への言葉のノセ方、言葉の選び方、そしてリズムの緩急も自由自在。ハロプロに楽曲提供する方が増えてきている中にあっても、つんくさんの存在感は変わらないなと思わされた作品。

2位 初恋サンライズ / つばきファクトリー [2.5]
メジャーデビュー作特有のきらめき、疾走感。サンライズジャンプ。

3位 若いんだし! / モーニング娘。'17 [2.0]
つんくさんがメンバーの名前をもじって、手紙のような歌詞を作られるのが昔からとても好きなのです。愛情を感じます。

4位 誤爆 〜We Can't Go Back〜 / 一岡伶奈段原瑠々川村文乃、高瀬くるみ、清野桃々姫 [1.5]
ハロコンで初めて聴いた時の、何このマイケルジャクソン!?な印象が鮮烈で忘れられません。

5位 ドレドレ / Lovelys [1.0]
りーたんのことは初ステージからずっと見守ってきているので、ハロコンやカウントダウンライブと、出演機会の増えていることがとてもうれしいのです。これからも応援していきます。


●MV部門
1位 若いんだし! (Complete Edit.) / モーニング娘。'17 [3.0]
2位 BRAND NEW MORNING / モーニング娘。'17 [2.0]
3位 モーニングみそ汁 (キャンプファイヤー Ver.) / モーニング娘。'17 [1.0]


●推しメン部門
モーニング娘。'17 石田亜佑美

第15回ハロプロ楽曲大賞'16

楽曲部門
1位 モーニング娘。'16 The Vision/モーニング娘。'16
世間的にハネたのは「泡沫サタデーナイト」のほうかな?と思うけれど、
EDMの取り入れ方や歌詞はこちらのほうが好きなので。
「泡沫」はMV部門の1位としました。
2位 Juice=Juice Dream Road 〜心が躍り出してる〜/Juice=Juice
もろAviciiなアレンジだけど、これもうまくハロプロに取り込んでいるな
という印象が強かった。
3位 モーニング娘。'16 冷たい風と片思い/モーニング娘。'15
鞘師さんとのお別れの曲。素敵な歌詞で送り出してくれたつんくさんに感謝。
4位 アンジュルム 次々続々/アンジュルム
5位 つばきファクトリー 気高く咲き誇れ!/つばきファクトリー

MV部門
1位 モーニング娘。'16 泡沫サタデーナイト!/モーニング娘。'16
2位 モーニング娘。'16 セクシーキャットの演説/モーニング娘。'16
3位 アップアップガールズ(仮) パーリーピーポーエイリアン/アップアップガールズ(仮)

推しメン部門
モーニング娘。'16 石田亜佑美

Photorec & TestDiskを自分でビルドする(2)

Bash on Ubuntu on Windows10上では動作可能なphotorecをビルドできないことがわかったため、cygwinでビルド。
できあがったphotorec.exeを/usr/local/bin/に置いても起動できないため、/bin直下にある cyg*.dllをphotorec.exeと同じフォルダにコピーする。また、バイナリ配布版に存在する63フォルダもphotorec.exeと同じフォルダにコピーする。
これで私家版photorecを起動することができた。

救出対象フォーマットを「ts」のみに限定しても「m2ts」が救出されてしまう理由はおそらく、file_m2ts.cのregister_header_check_ts関数の実装が

static void register_header_check_ts(file_stat_t *file_stat)
{
register_header_check(0, "G", 1, &header_check_m2t, file_stat);
register_header_check(4, "G", 1, &header_check_m2ts, file_stat);
}

となっているため。header_check_m2tsを含む行をコメントアウトすると自分の欲しい結果(1パケット188バイトのtsフォーマットのみを救出する)が得られると思われる。

Photorec & TestDiskを自分でビルドする(1)

http://www.cgsecurity.org/wiki/Developersに記載されている手順で、Bash On Ubuntu On Windows10の環境でTestDiskをビルドする。
モチベーションは、tsファイル救出のカスタマイズ。
現状、tsファイルに関しては192byteパケットのtsと188byteパケットのtsを区別していないところを、時間短縮のため、特殊用途で188byteパケットのものだけを選んで救出できるようにしたい。他にもあるけれどまずはこれを最優先で。
(ビデオカメラ撮影動画は192byteパケット、PT2/PT3の録画ファイルは188byteパケット)

configureに発生したエラーと回避策は下記の通り。

:
configure: error: At least one of ncursesw/ncurses/pdcurses/curses library must be present
% sudo apt-get install ncurses-dev
%./configure

:
configure: error: No uuid_create or uuid_generate function in library libuuid or uuidgen function present
% sudo apt-get install uuid-dev
%./configure

:
./configure: line 8208: syntax error near unexpected token `QTGUI,'
./configure: line 8208: ` PKG_CHECK_MODULES(QTGUI, Qt5Gui >= 5.0.0,,use_qt=false)'
% ./configure --disable-qt
:
./configure: line 8208: syntax error near unexpected token `QTGUI,'
./configure: line 8208: ` PKG_CHECK_MODULES(QTGUI, Qt5Gui >= 5.0.0,,use_qt=false)'
% ./configure --enable-qt=no
:
./configure: line 8208: syntax error near unexpected token `QTGUI,'
./configure: line 8208: ` PKG_CHECK_MODULES(QTGUI, Qt5Gui >= 5.0.0,,use_qt=false)'

むぅ、なんでだ。
見た目はconfigure構文エラーみたいやけど、9年間メンテナンスなしで放置されてるってありえるんかなぁ。
あらためて、

apt install build-essential e2fslibs-dev libncurses5-dev libncursesw5-dev ntfs-3g-dev libjpeg-dev uuid-dev zlib1g-dev qtbase5-dev qttools5-dev-tools pkg-config dh-autoreconf

をやり直して、再挑戦…したけど、駄目。なんでやろう。cygwinでは通ってbash on ubuntuでは通らないとかってあるんやろうか。

(追記)
http://rcmdnk.github.io/blog/2014/12/30/computer-automake/
を参考に、configフォルダを削除してautoreconfからやり直したらやっとmakeできるようになった。
なったけれど… sudo photorecの結果は、つれなく、"No harddisk found"になってしまう。
bash on ubuntuからはハードディスクが検索できないのか?
/dev/の下にHDDのデバイスファイルが生成されず、dfコマンドでも見えないので駄目らしい。(涙)

Windows10でMP3GainGUIが使用できない

今頃気づいた。
解決策は、MP3Gain.exe(AACGain.exe)コマンドを直接使用すること。
C++ Builder Starter Editionが無償化されたことやし自前でUIが書けたらいいんやけど。

http://blog.hogehoge.com/2016/06/Windows10-MP3Gain.htmlと、http://denspe.blog84.fc2.com/blog-entry-62.htmlを参考にして、自分の場合は、

@echo off
C:\"Program Files (x86)"\MP3Gain\mp3gain.exe /a /c /d 10.0 %*
pause

というアルバムゲイン用のバッチファイルを作成。トラックゲイン用のバッチファイルは上記の、/aを/rに変更しただけのもの。

UIがないので、ゲイン適用済みのファイルかどうかなどの確認ができないけれど、ゲインを設定することは可能になった。ただし、アクセント記号付きのアルファベットなど変な文字が含まれているファイルパスは指定できなかった。

別解として「MP3Gainについて語らないか Part 2」スレッドで投稿されている
http://www1.axfc.net/u/3664702?key=aacgainbat
も試してみたけれど、同様にアクセント記号付きのアルファベットが含まれているファイルパスは指定できなかった。


(追記)
Bash on Ubuntu on Windows10でmp3gainパッケージがインストールできるけど、動かすと

#0 0x7f7770e8231d==1802== AddressSanitizer CHECK failed: ../../../../src/libsanitizer/sanitizer_common/sanitizer_linux.cc:403 "((IsOnOf(*current_++, 's', 'p'))) != (0)" (0x0, 0x0)

な感じのログが無限に出力されるだけで何もできなかった。