歌詞ファイルをQTテキストムービに変換するためのApple Script
歌詞ファイル(.lrcまたは.txt)をQuickTime Player 7.0へインポート可能なテキストトラック形式(.txt)に変換するアップルスクリプトです。
タグ付き歌詞ファイル(.lrc)の場合、タイムタグはそのまま引き継がれます。通常の歌詞ファイル(.txt)の場合、3秒ごとのタイムタグを設定します。
使い方
1.実行して歌詞ファイルを選択します。拡張子は、.lrcまたは.txtのみ対応してます。
2.変換後のテキストは、元のファイル名に_movを追加したファイルとなります。XXX.lrcまたはXXX.txtならXXX_mov.txtとなります。
3.変換したテキストをQuickTime Playerで開くかきいてきます。Yesを選択した場合、QTで開きます。
サンプル
動作環境
・MacOSX 10.4以降
・QuickTime Player 7.0以降(Proの必要があるかも)
ダウンロード
「MakeLycsMovieVer5.scpt」をダウンロード
開発メモ
まぁ、ここは怒濤の愚痴ラッシュになるのだが。Text Trackの開発優先度がひくいのか、とにかくQT Playerのバグがひどかった。歌詞ファイルから直接ムービに変換しようと考えていたが、お手上げになり、いったんテキスト(.txt)に書き出してからムービにすることとなった。
テキストトラック(Text Track)は、内部に複数のテキストフレーム(Text Frame)を保有している。テキストフレームは、開始時間(Start Time)と再生時間(Duration)とテキスト(sample data)を持っていて、フレーム間で時系列を保証して、さらに親トラックの持つ開始時間と再生時間とも同期する必要がある模様。
このためか、Apple Scriptでトラックの再生時間(duration of text frame of track)を更新するとQT Playerの内部処理がおかしくなる。また、テキストフレームを追加するため、make text frameを行うとQT Playerが落ちる。
テキストフレームの再生時間を変更すると、テキスト(sample data)の内容が破壊される。
他にも、テキストトラックの透明度を設定するポップアップに「透明(Transparent)」が何故か出てこない。テキストトラックをテキスト形式で書き出したとき、何故か透明度の設定が消滅する。テキストトラックが複数ある場合に、テキスト形式で書き出したとき、最初のトラックしか書き出してくれない。
テキストトラックの通常画面サイズ(natural dimensions)を初期設定できない。
などなど、苦難の道を経て結局この形に落ち着きました。
歌詞ファイルを読み込む場合、改行コードで区切っているが、この区切り文字(delimiter)にreturnを指定するとMac系の改行コード(CR)しか対応しないようだ。CR&LFで区切るようにしてます。
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- mdImporterを作ろう4(2005.09.02)
- ココログ障害中(2006.04.01)
- マイキャビをwebdavで接続地獄 その後(2006.04.01)
- .DS_Store ファイルの作成を抑制(2006.04.01)
- テキストトラックの効果を変更するApple Script(2006.03.31)



コメント
「MakeLycsMovieVer5.scpt」を使わせていただきました。
開発の仕事の苦労は、自分に非の無い、手に負えないソフト開発者への憤りとの戦いでもあります。
このまごころスクリプト、拝みながら感謝しつつ数万回使わせていただきます。柏手。押忍。
投稿: au使い | 2008.02.27 16:23
投稿: au使い | 2008.02.27 16:25