スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【同じタグを付けた記事の一覧】

foobar2000 で OMA(ATRAC)を聴く

2011年08月26日(金)18時30分

foobar2000 用 OMA 再生コンポーネント

というわけで、OMA(ATRAC)ファイルを foobar2000 で再生するための INPUT コンポーネントです。
ただし、x-アプリ必須です。
正確にはx-アプリではなく、一緒にインストールされる Sony Media Library Earth(以下 SMLE、iTunes でいうところの QuickTime に相当するもの)を勝手に利用して再生する仕組みですので、SonicStage でも BeatJam でもかまわないのですが、ともかくこの SMLE を同梱しているソフトウェアがインストールされている必要があります。
それと、最初に書いておきますと、全体的に遅いです。
再生開始や曲送り・シーク等、諸々の動作がもっさりとしていますので、これをもって ATRAC を foobar2000 での楽曲管理の主軸にそえようというのは無理があるかもしれません。

ATRAC へのコンバートに必要

これを作ったそもそもの理由は、「foobar2000 を使うことに(インストール編)」で書いたように、音楽の視聴体制を「自宅では FLACfoobar2000 で聴き、外出時には ATRAC を LISMO ケータイで聴く」に変更したことにあります。
その際、「foobar2000 で直接 ATRAC を作れれば管理が少し楽になるな」と、ATRAC にコンバートするコマンドライン・ツールを作ったわけですが、foobar2000 のコンバータは、仕様的にINPUT コンポーネントも必要(生成後のファイルにタグ情報を付加するため)になるのでこれも作ることになったのです。
ですので、このコンポーネントの主目的は「OMA ファイルのタグ編集」で、「OMA ファイルを聴く」のはどちらかというと副産物的なものです。

ATRAC の音量統一

とはいえ、聴くことは聴けますので、これはある意味、以前に書いた「ATRAC の音量」という記事に対する、「もう少しマシな」返答のうちの半分(ATRAC の音量を統一して「聴く」まで)でもあります(残りの半分は次回)。
この「ATRAC の音量」という記事、今でも日に数アクセスあったりするのですが、しかしながら内容が若干お粗末なもの(おそらく見に来た方の期待に沿う内容ではない)でしたので。

mora には非対応

使用前の重要な注意事項として、製作者は mora 等で購入可能な著作権管理機能で制限された楽曲ファイルを所有しておらず、こういった楽曲ファイルに対するテストは全くされていない、ということがあります。
「再生できない」だけであれば別にかまわないのですが、もしかしたら「全転送権利を失ってしまう」等の重篤な副作用がある「かも」しれません。
ともかくテストが一切されていない以上、何が起こるか全くわかりませんので、こういったファイルに対しては絶対に使用しないでください。

その他の注意事項

また、SMLE の仕様や SDK 等は(おそらく)非公開で、この INPUT コンポーネントは SMLE の関数名等から推測・実験して得られた成果をもとに書かれた非公式なものです。
ですので、これがうまく動かなくとも Sony さんのあずかり知るところではなく(というより Sony さんに問い合わせたりしないでください)、そして作者である自分自身もこれで正しいのかはわかっていないため、ここのコメント欄等で何かを尋ねられても、おそらくご期待には沿えないだろうと思います。
というわけで、正常に動作しない場合は「所詮その程度のものだった」ということでこのコンポーネントの存在は忘れていただきますようお願いします。

使い方

まず、「ただ ATRAC の音量を調整したいだけなんだけど、foobar2000 って何?」という方は、「foobar2000 を使うことに(インストール編)」等を参考に foobar2000 を使用できるようにしておいてください。
その後、TraConv のダウンロードページ(http://www.vector.co.jp/soft/winnt/art/se492660.html)から「TraConvXXXXXX.zip(Xはバージョン番号)」をダウンロードし、展開(解凍)します。
「components」フォルダ内にある foo_input_oma.dll が本体になりますので、これを foobar2000 のインストールフォルダにある「components」フォルダにコピーするだけです。
もし「ATRAC を生成する」予定がある場合は 「bin」フォルダの TraConv.exe を foobar2000 のインストールフォルダにコピーしておいてください(OMA ファイルを聴くだけであれば不要です)。

音量調整のために

このコンポーネントを、単に OMA ファイルへのタグ付けや、あるいはちょっとした確認程度に使うだけであればこのままでいいのですが、リプレイゲイン(音量調整機能)を使用する場合には設定を変更する必要があります。
「Library → Configure」で foobar2000 の設定画面を開き、「Advanced → Decoding → Sony Media Library Earth wrapper」の「Storage place of tag that cannot be written with SMLE」以下に存在する「Use user profile」にチェックしてください。
さらにその配下にある「Keeps clean」も選択しておきます。

リプレイゲイン値の記録場所

この設定は何のために必要なのか?という話ですが、foobar2000 のリプレイゲイン機能は、あらかじめその曲の音量を分析・記録しておき、再生時にその分析値に応じて再生音量を変更することで行われます。
つまり、リプレイゲインを使用するためにはそのトラックの音量分析値をどこかに記録しておく必要がありますが、OMA ファイルにはこの分析値を記録しておく場所がありません。
…正確に言うと、もしかしたら規格上はあるのかもしれませんが、それを利用するソフトが存在しないため確認できなかったのです。
この情報をタグに記録できないと、foobar2000 では OMA ファイルにリプレイゲインが使えないということになりますので、foo_input_oma.dll では OMA ファイルごとに独自のタグ記録用ファイルを作り、そこに記録することにしました。
上記設定では、そのタグ記録用ファイルを foobar2000 の設定記録用フォルダにまとめて生成するように指定しています(その他詳細は後述)。
この設定をすることで、本来 OMA ファイルには記録できない情報、例えばディスク番号やレーティング等を foobar2000 で管理できるようになったりしますが、基本的にあまり好ましい方法ではないと思われ、また OMA ファイル本体の移動等で全く不要な無駄ファイルと化したりしますので、「どうしてもリプレイゲインを使いたい」という場合以外では使わないことをお勧めします。

リプレイゲイン値の算出

上記「リプレイゲイン値の記録場所」の設定がすみましたら、「foobar2000 を使うことに(音量統一再生編)」等を参考にリプレイゲイン値の算出および記録をしておきます。
これで「OMA ファイルの音量を統一して聴く」ことができるようになる「はず」です。

起動が遅くなる

以下、foo_input_oma.dll についてのメモを思いついた順に列記します。
まず、このコンポーネントを導入すると、起動が遅くなります(他にもいろいろと遅いですが)。
というのも、このコンポーネントは起動時に SMLE の初期化処理を行いますが、SMLE は初回の初期化に若干時間がかかりますので、導入すると foobar2000 の初回起動に時間がかかるようになるのです。
ですので OMA を使う予定がないのに、コレクション的に(foobar2000 での再生可能形式を増やすだけの目的で)導入するのは、全くお勧めできません。

ジャケット写真の扱い

foobar2000 はバージョン 1.1.7 からアルバムアートや Cover Art と呼称される添付画像の操作を標準で搭載するようになりました。
で、foo_input_oma.dll もこれに対応しているのですが、foobar2000 ではアルバムアートを「Front cover、Back cover、Disc、Icon、Artist」の5種と規定しており、しかし OMA では複数枚の画像を格納できはしますが、特に「これがジャケット写真で、これがアーティスト画像で…」という決まりはないと思われます(多分)。
そこで、foo_input_oma.dll ではこの5種を単なる通し番号として「Front cover=1枚目、Back cover=2枚目…」のように扱います。
さらに、とびとびには設定できないため、画像なし状態で「Artist(5枚目)」を設定しても「Front cover(1枚目)」となりますし、その状態で「Disc(3枚目)」を設定しても「Back cover(2枚目)」として書き込まれます。
また5枚以上設定された状態で、例えば「Icon(4枚目)」を削除すると、5枚目以降が一つずつ前に繰り上がることになります。

バッファリング・モード(非推奨)

このコンポーネントの「遅さ」の原因の一つとして、SMLE が(本来ストリーミング再生を目的としている)DirectShow の上に実装されており、foo_input_oma.dll がこれに一時停止命令を繰り返しながら無理やり少しずつデータを取り出している、ということがあります。
そこで、DirectShow を一時停止せず、裏でずっと再生しっぱなしにしてデータをメモリに貯めこみ、そこから要求に応じて少しずつ foobar2000 に引き渡す「バッファリング・モード」も実装しました。
ところが、予想に反して速度向上効果はわずかしかなく、にもかかわらず、メモリ消費量が(当然ですが)巨大になり、さらに動作が非常に不安定になるという残念な結果になりました。
「Library → Configure → Advanced → Decoding → Sony Media Library Earth wrapper → Buffering Mode」にチェックすることで使用可能ですが、非推奨です。

3GP のサポート(非推奨)

SMLE における AAC の標準的なコンテナが 3GP 形式であることもあり、foo_input_oma.dll でもこの形式をオプションでサポートしています。
「Library → Configure → Advanced → Decoding → Sony Media Library Earth wrapper → Support 3gp」にチェックすることで、3GP をこのコンポーネントが担当することになりますが、まったくもって非推奨です。
まず、foobar2000 自体も AAC には標準で対応(3GP のタグは読まないのですが)しており、それと奪い合いになるためか foo_input_oma.dll が使われたり使われなかったりと不安定になります。
また、3GP 自体はもっといろいろな情報が格納可能なのではないかと思うのですが、SMLE では数種類の限定されたタグ情報しか読み書きできないため、それ以外は foo_input_oma.dll 独自のタグ記録用ファイルに記録することになり、これはあまりいい方法とはいえません。
さらにデコード速度が非常に遅く、WinXP でも2倍速程度、Win7x64 では1倍速を切り、まともに再生できない状態でした。
ということで、この機能は OMA に輪をかけて「うまくいけばラッキー」的なものになります。

タグ記録用ファイル

OMA ファイルに格納できない情報を記録するために foo_input_oma.dll がデータベース代わりに生成するタグ記録用ファイルですが、これは純粋に ID3v2 形式のヘッダ部分そのものです。
そしてその生成場所は設定で2か所のどちらか、あるいは両方を指定できます。
1か所目は foobar2000 のユーザー情報保存フォルダに「ID3v2」フォルダを生成しそこに格納する方法で、設定画面の「Use user profile」にチェックすることで指定可能です。
この方式の利点は、保存場所が一か所に集中するため不要になった場合にまとめて削除可能なことで、難点は元ファイルの移動や削除に弱く、場合によっては全く役に立たない無駄なファイルが永続的に残留してしまうことです。
2か所目は NTFS の持つ副次ストリーム機能で各ファイルに「ID3v2.tag」ストリームを生成しそこに格納する方法で、設定画面の「Write “NTFS Alternate Data Stream”」にチェックすることで指定可能です。
この方式の利点は、元ファイルと一体化しているため移動や削除に追従できることで、難点は NTFS でフォーマットされたディスクでしか使用できず、またその存在が確認しづらいことです。

「Use user profile」のオプション

「Use user profile」にはさらに二つの選択肢があり、排他で選択できます。
一つ目の「Keeps clean」は、foo_input_oma.dll が「ID3v2」フォルダ内を検索する際に、アクセスしたタグ記録用ファイルの元ファイルが存在しない場合、そのタグ記録用ファイルを削除します。
このことによって、既に削除された OMA ファイル用のタグ記録用ファイルが、いつまでも無駄に残り続けることを(ある程度)防ぐことができます。
もう一つの「Portable」は、タグ記録用ファイル検索時に、対象 OMA ファイルのドライブ名を無視します。
foo_input_oma.dll はタグ記録用ファイルの末尾に対象 OMA ファイルのフルパスを記録しておき、これが一致するかどうかで対応するタグ記録用ファイルを検出しますが、このオプションをオンにすることで、USB メモリ等に格納された、つなぐたびにドライブ名が変わる可能性のある OMA ファイルであっても、フォルダ構成が同じであれば同一曲として追従できるようになります。

関連記事

【同じタグを付けた記事の一覧】
自作ソフト 音楽管理 LISMO foobar2000 TraConv x-アプリ ウォークマン

スポンサーサイト

コメントの投稿

非公開コメント

No title

すばらしいツールを作っていただきありがとうございます。
一応、ご報告しておいた方がよろしいかと思いましたのでこちらに書かせていただきます。

OMAのタグに関してですが、Total Tracksも曲ファイルに記録されます。フレーム名は「OMG_ATRCK」です。
foo_input_oma.dllでは読めませんでしたのでご報告させていただきました。余計なお世話でしたらすみません。

Re: No title

はじめまして、たつおさん。
貴重な情報をありがとうございます。
たつおさんの書き込みを拝見して、
ちょっと今までしていなかった確認方法を思いつきましたので、
時間が取れた時にTotal Tracksも含め、現状確認済みのもの以外にも
SMLE経由で扱える情報がないか確認してみたいと思います。

総トラック数への対応

たつおさんから頂いた情報をもとに調べなおし、総トラック数や作詞者に対応させました。
・TraProp 111029
http://www.vector.co.jp/soft/winnt/art/se489563.html
・TraConv 111029
http://www.vector.co.jp/soft/winnt/art/se492660.html

No title

Please add *.aa3 extension support. x-アプリ can decode aa3 file correctly. Now I have to add ".oma" to the end of aa3 file, which make x-アプリ unable to play...

Re: No title

I've added ".aa3" extension support.

http://ux.getuploader.com/foobar2000/download/44/foo_input_oma.zip
* Click the "ダウンロード" button.

But, I do not have AA3 file.
Therefore, it is unknown whether it operates correctly.

ATRAC3+が解読されてしまった

大介様もすでにご存知かとは思いますが、重要ニュースなのでコメントさせていただきます。
これまでSMLE以外のデコード方法が無かったATRAC3+ですが、去年大きな動きがありました。事の発端はRyuukazenomaiという方が公開した http://sourceforge.net/p/maiat3plusdec/wiki/Home/ デコーダでした。その後巷で開発が続き、Maximという人によってffmpegに搭載されました。http://www.ppsspp.org/at3plusdecoder.html これでffmpegを利用した音楽再生アプリであればどれでもATRACが再生できるようになりました。今月にはandroidアプリのneutron music player でATRAC再生が可能になり、もはやSONY製品を全く使わない再生環境が出来上がりました。
大介様のご意見もぜひお聞かせください。

Re: ATRAC3+が解読されてしまった

はじめまして、少し遅れたのですが、お返事にかえてひとつ記事を書きました。
http://denspe.blog84.fc2.com/blog-entry-203.html

感謝

コメント記事ありがとうございました。勉強になりました。恐らくmaximはMaiat3plusdecを使ったんだろうと思います。ffmpeg開発時にmaiat3plusdecは5000行ものCコードがあり、中には粗雑な記述もあり手こずっているとのmaximの書き込みがありましたよ。
何はともあれ、個人的にもtraconvには非常にお世話になっており、常にfoobarで利用しています。おっしゃるとおり特にatrac advanced losslessの再生時は良く引っかかりますがきにしていませんよ。本当にありがとうございました。そしてお疲れ様でした!
最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
月別アーカイブ
プロフィール

電脳太助

Author:電脳太助
Website:電脳スピーチ web

RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

サイト内検索
Ads by Google
FC2アクセスランキング
Ads by Google
FC2拍手ランキング
ユーザータグ

音楽管理(66)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(35)
サイト運営(32)
FC2(31)
ブログ(30)
iTunes(27)
Windows(25)
LISMO(24)
音声合成(23)
音声認識(22)
x-アプリ(22)
電子ブック(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(18)
WindowsLiveWriter(15)
画像管理(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
fi-6130(9)
FLAC(9)
JavaScript(9)
ウォークマン(9)
英語音読学習計画(8)
Gracenote(8)
Prolog(8)
ベクター(8)
雑記(8)
CodeBlocks(7)
SyntaxHighlighter(7)
TraConv(7)
spcbght(7)
wxWidgets(7)
VirtualBox(6)
W63CA(6)
DCP-J552N(6)
WinRT(6)
WindowsLiveMesh(6)
iGoinLM(6)
英語発音矯正実験(6)
ExactAudioCopy(6)
MP3Gain(6)
LAME(5)
音楽技術(5)
Mery(5)
楽器演奏(5)
GalateaTalk(4)
nLite(4)
WindowsLiveSkyDrive(4)
ホームページ(4)
GalateaProject(4)
MIDI(4)
LLVM(4)
PC-98(3)
カウンター(3)
AACGain(3)
iTCDini(3)
OverCutChecker(3)
拍手(3)
PK-513L(3)
UniversalExtractor(3)
アクセスランキング(3)
ImageCompositeEditor(2)
アクセス解析(2)
OCR(2)
qtaacenc(2)
資格試験(1)
AquesTalk(1)
AquesCmdDl(1)

FC2アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
106位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
11位
アクセスランキングを見る>>
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。