2009 年 6 月 26 日 金曜日
以前に作成した VBScript に欠陥があることが分かりました。タグを入力する際にダイアクリティカルマーク (é などについているアクセント記号) が消えてしまうのです。元々、ダイアクリティカルマークが使われていない場合には問題ありません。
metaflac では タグを入力する際に自動で文字コードを UTF-8 に変換するのですが、この際にダイアクリティカルマークが消えてしまうようです。VBScript の実行環境の内部的な文字コードが UTF-8 ではないためにこの現象が起きるのではないでしょうか。文字コードを UTF-8 にできれば --no-utf8-convert で解決できるのですが、内部的な文字コードの変更方法は分かりませんし、この仮説があっているかどうかも分かりません。
そこで、やはり一度外部のファイルにタグを書き出して、それを flac に埋め込むという行程が良さそうです。ただ、以前試した際は VBScript で adodb.stream を使ってファイルを読み書きすると、Avira AntiVir にウイルス扱いされてしまいました。今回はこれを乗り切る必要があります。
が、案外簡単でした。VBScript を wsf 化することだけで簡単に解決できました。VBScript の wsf 化は、VBScript ファイルの拡張子を vbs から wsf に変更し、ちょっとした記述を追加するだけです。これだけでウイルス扱いされずにすみました。Avira AntiVir の検出精度もいい加減なもんです。
さて、具体的には下記のようなコードになりました。前回は 10 日かかりましたが今回は数時間でできました。だんだん VBScript の理解が進んできたようです。作業内容は下記の 3 つです。
- cue シートのアルバム全体の PERFORMER (Album Artist) の内容を BAND (ID3v2.3 の TPE2) にコピー。この際、「(1-4) 指揮: デュトワ - (5,6) 指揮: ギブソン」などのように曲ごとの指定がある場合には曲ごとに BAND の内容をコピーします。
- 曲名に : (半角コロン) が含まれる場合には、その前を CONTENTGROUP (TIT1) に、後を SUBTITLE (TIT3) にコピーします。
- UTF-8 の cue シートを埋め込みます
1 番目は Masstagger では多分できません。仮に Masstagger でやれたとしても foobar2000 でタグに触ることになってしまいます。foobar2000 には欠陥があり、cue を埋め込んだ flac (incue) のタグをいじると無駄なタグを付け加えてしまいます。これによりデータベースが肥大してしまいますので、foobar2000 ではタグの編集はしないほうがよいでしょう。下記のテキストエリア内では全選択ができますのでコピーしたい方は Ctrl + A を使ってください。bandcopyonly_contentgroup_cue_folder.wsf などと名前を付けて保存してください。
他のスクリプトもいっしょに置いておきます。
下のスクリプトは上のスクリプトの改変で一部の作業を省略したものです。曲ごとに異なる BAND を入力する必要がない場合に適合します。bandcopyonly_cue_folder.wsf などという名前で保存してください。
下のスクリプトは指定したフォルダ内に存在する全ての cue を同名の flac に埋め込む VBScript です。cue は必ず UTF-8 に。set-cue_utf8.wsf などという名前で保存してください。
下のスクリプトは指定したフォルダ内に存在する全ての flac のタグを完全に削除するバッチです。all_remove.bat などという名前で保存してください。
関連記事
- FLAC のタグ打ち
- CREATIVE の FLAC 対応プレイヤー
- 内部 cue シートに移行
- fb2kpro 4.40
- cue シートの songwriter
トラックバック
URL:
コメント
この記事のコメントフィード
コメント投稿