スポンサーサイト

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

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

x-アプリと SonicStage CP の歌詞とライナーノーツの扱い

2011年02月23日(水)19時42分

はじめに(「歌詞ピタ」とは無関係です)

最初に申し述べさせていただきますと、今回の内容における「歌詞」とは「歌詞ピタ」とは全く無関係です。
今回述べる「歌詞」とは、x-アプリにおいては表示のみ、ウォークマンに至っては表示すらできないもので、まあ、少し前に書いた「x-アプリと SonicStage CP のジャケット写真の扱い」同様、普通に使っている分にはほとんどどうでもいいような話です。
また、文中における「x-アプリ」は執筆時点(2011/02/23)における最新版である「Ver.2.0」を指しており、それ以外のバージョンでは当てはまらない場合があることをご了承ください。

歌詞表示機能

実際、「x-アプリから使い始めた(SonicStage CP を使ったことがない)」というような場合ですと、この歌詞表示機能は「その存在すら知らない」という可能性すら考えられますが、x-アプリの場合この機能は、歌詞が設定されている曲を再生中に、右上あたりに存在する「開いた本」のようなアイコン押すことで使用することができます。

x-アプリの歌詞表示アイコン

まずは結論から

いろいろ調べながら書いた結果、無駄に長くなってしまったため、最初に結論を持ってきますと、「x-アプリでは OMA コンテナに格納された画像形式の歌詞しか表示できない」という結果になりました。
つまり、x-アプリにおいてこの歌詞表示機能を使用する場合、現時点では、ATRAC で取り込み(または ATRAC に変換し)、SonicStage CP をインストールして「画像」として歌詞を付ける以外にない、と思われます。

SonicStage CP では

x-アプリは少し前まで SonicStage V という名称でリリースされており、この「SonicStage V → x-アプリ」というバージョンアップでは、基本的な構造・機能に変更はなく、ある意味「名前を変えただけ」に近い変化でしかなかったわけですが、その SonicStage V の前のバージョン(つまりx-アプリの二世代前)である SonicStage CP は「全く別物」といっていいアプリケーションでした。
そして、記事タイトルにある「歌詞」と「ライナーノーツ」というのは、もともとこの「別物」であった SonicStage CP に存在していた機能です。
これは管理する各曲に対して、「歌詞」としてテキストか画像のどちらか(排他)を、ライナーノーツ(メモ書きのようなもの)としてテキスト(画像は不可)を設定できる、というものでした。

SonicStage CP テキスト 画像
歌詞
ライナーノーツ ×

x-アプリでは

ところがこの機能、SonicStage V になると、どういう事情なのか分かりませんが、「歌詞の表示のみ可能」というところまで縮小されてしまいました。
新規に設定したり、既存のものを編集したり変更したりすることはできず、「表示のみ」です。
しかも、なぜか表示可能なのは「画像歌詞」のみで、テキストで設定してあった歌詞は表示できません。
そして、「ライナーノーツ」にいたっては丸ごと切り捨てられ、その存在すら忘れ去られています。
その後、x-アプリでは「歌詞ピタ」というサービスが開始されましたので、今はまだ「画像歌詞の表示のみ可能」として残されているこの機能も、もしかしたら今後のバージョンアップに伴って、いずれ消えゆく予定なのかもしれません。

x-アプリ テキスト 画像
歌詞 ×
ライナーノーツ × ×

OMA コンテナでは

x-アプリSonicStage で ATRAC ファイルを作ると、拡張子が「.oma」となるファイルができますが、この OMA コンテナでは、「歌詞」と「ライナーノーツ」はファイルに直接埋め込まれます。
そしてその埋め込まれ方ですが、OMA コンテナの内部構造的には、「歌詞」も「ライナーノーツ」も多分同じ形式で格納されており、それぞれに「テキスト格納領域」と「バイナリ格納領域」が別々に存在しているようです。
つまり、OMA コンテナ内には「歌詞のテキスト格納領域」「歌詞のバイナリ格納領域」「ライナーノーツのテキスト格納領域」「ライナーノーツのバイナリ格納領域」の4領域が独立して存在しているということで、そして、実験してみたところ、それぞれに別個のデータを格納することが可能でした。
ですので、「歌詞はテキストか画像の排他、ライナーノーツはテキストのみ」というのは SonicStage CP での実装からくる仕様・制限ということのようです。
さらに内部構造について調べますと、SonicStage CP でテキストを設定した場合は「テキスト領域 → Unicode で格納、バイナリ領域 → シフト JIS ファイルで格納」、画像を設定した場合は「テキスト領域 → 空、バイナリ領域 → 画像ファイルで格納」、という形になっていました。
ただし、OMA コンテナ内でのテキスト領域は Unicode で格納されているようですが、唯一それが表示可能なアプリケーションである SonicStage CP が Unicode 非対応であるため、実質的には Unicodo 文字は表示(設定も)不可能ということになります。
なお、テキストと画像を同時に格納した場合、SonicStage CP ではテキストを優先するようです(ただしx-アプリではテキストを表示しないためテキストを無視し画像を表示します)。
もちろん、「ライナーノーツ」は、そもそも SonicStage CP にも画像を表示する機能が存在しないため、画像が設定してあっても単に無視されます。

OMA コンテナ テキスト領域 バイナリ領域
テキスト設定時 Unicode シフト JIS ファイル
画像設定時 画像ファイル

OMA 以外の形式では(SonicStage CP の場合)

WAVE や MP3 といったファイルの場合、タグ情報として「歌詞」や「ライナーノーツ」をファイルに埋め込むことができないため、外部ファイルとして保持し、その位置を SonicStage CP のライブラリ情報管理用ファイルである MtData.mdb に、対象トラック番号とセットで記録することで管理されています。
具体的には、まず歌詞は「lyrics.txt」、ライナーノーツは「notes.txt」というファイルが対象ファイルと同じ位置に生成されます。
この時、同じ位置にすでに同名のファイルが存在した場合には、例えば歌詞のときは「lyrics(0).txt」「lyrics(1).txt」…となります。
そしてこのファイルのフルパスが MtData.mdb に記録されます。
この MtData.mdb は、Microsoft Access 等でも開くことができる汎用的なデータベース形式のファイルで、トラック情報は「t_object」と名付けられたテーブルに格納されていますが、他にも「t_property」というテーブルが存在し、歌詞やライナーノーツの情報が記録されるのは、こちらの「t_property」の方です。
この「t_property」というテーブルには、「PropertyId」「PropertySpecId」「ObjectId」「IntegerValue」「StringValue」「DateTimeValue」「PropertyTypeId」の7項目が存在し、「PropertyId」は連番(というより多分管理番号として他とかぶらない数値)、「PropertySpecId」は歌詞なら 1235 でライナーノーツなら 1234、「ObjectId」は「t_object」テーブルで管理されている対象トラックの番号、「IntegerValue」は 0、「StringValue」は生成した歌詞ファイル等の位置(フルパス)、「DateTimeValue」は空、「PropertyTypeId」は 2、となっていました。

t_property 内容
PropertyId ユニーク ID
PropertySpecId 1235(歌詞)か 1234(ライナーノーツ)
ObjectId トラック ID
IntegerValue 0
StringValue ファイルの存在位置(フルパス)
DateTimeValue
PropertyTypeId 2

OMA 以外の形式では(x-アプリの場合)

x-アプリの場合も、その管理楽曲情報は SonicStage CP と同じく MDB というデータベース形式のファイルに記録されており、ファイル名も MtData.mdb と同じですが、SonicStage CP の MtData.mdb とは保存場所の異なる別ファイルとして存在し、内部の構造も若干異なります。
ただし、基本的な作りに共通点は多く、「t_property」というテーブルも存在し、そこには SonicStage CP と同様の7つの項目があります。
ということで、x-アプリでの「ObjectId(「t_object」テーブルで管理されている対象トラックの番号)」を調べ、それを使って SonicStage CP と同様の内容を「t_property」テーブルに書き込めば、x-アプリでも MP3 等で歌詞を表示できるようになるだろう、と予想されます。
で、それを実行してみたわけですが、表示されませんでした。
そこで方針を変更し、まず OS をクリーンインストールしたテスト環境を作り、そこに SonicStage CP をインストールして、MP3 ファイルを追加し、それに画像歌詞を設定しました。
そのあとでx-アプリをインストールし、初回起動時の「旧バージョンの SonicStage のデータが存在します。このデータを本プログラムに取り込みますか?」に「はい」を選択して SonicStage CP の情報を引き継ぎました。
これでx-アプリに登録されている MP3 ファイルには画像歌詞が設定された状態になっているはずですが、歌詞表示はできず、MtData.mdb の「t_property」テーブルにも未登録でした。
つまり、x-アプリにおいて「歌詞表示機能」が有効なのは OMA コンテナの楽曲のみ、ということのようです。

関連記事

【同じタグを付けた記事の一覧】
音楽管理 LISMO x-アプリ

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
最新コメント
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アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
126位
アクセスランキングを見る>>

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