TagReplc (music Tag Replacer) 取扱説明書
v.1.06 KinJ
【概要】
TagReplc は編集済みのID3v2タグなどのメタデータを再エンコードしたMP3などの圧縮音声ファイルに引き継がせるソフトウェアです。
【本ソフトウェア利用の対象】
音楽CD等から CDex, fre:ac などのリッピングソフト(CD ripper)でMP3などにエンコードして作成した圧縮音声ファイルはCDDB(Compact Disc DataBase)サービス等からインポートされたタグ情報(メタデータ)を利用していることが多く、そのようなタグ情報に満足できない場合は、Mp3tag などのタグ編集ソフト(Tag editor)でタグ情報を編集していることでしょう。
もしその後に、エンコーダやエンコード設定(ビットレート、プロファイルなど)を変更して再度エンコードする場合、タグを再び編集する作業はタグ編集ソフトのスクリプト機能を利用しても面倒な作業になるので、避けたくなると思われます。
TagReplc は編集済みのタグ情報を再エンコードした圧縮音声ファイルに引き継がせるソフトウェアです。
TagReplc 1.05 で扱うことができる圧縮音声ファイル形式(Compressed Audio File Format)とその構成は下表のとおりです。
表1. TagReplc で扱う圧縮音声ファイル形式
Audio file format Extension Audio coding format Metadata (Tag)
MP3 .mp3 MP3 ID3v2
MP4 .m4a,.mp4 AAC MP4
FLAC .flac FLAC VorbisComment
Matroska .mka Opus,Vorbis EBML
WebM .webm Opus,Vorbis EBML
それぞれの圧縮音声ファイル(コンテナファイル)には、音声コーデック(Audio coding format)で圧縮された音声データとメタデータ(タグ)とが格納されており、一般には複数種のコーデックやメタデータ形式に対応していることが多いですが、TagReplc で扱うことができる形式は表1に限られています。
例えば、TagReplc で扱える MP3(拡張子.mp3)のタグ形式は ID3v2 のみで ID3v1 は非対象です。
なお、TagReplc 1.01 では ID3v2.3タグのみでしたが、TagReplc 1.02 では ID3v2.2, ID3v2.4 タグも対象となりました。
ID3v2などのタグの中で引き継ぎの対象となるのは表3 に記載のフレームだけです。
本ソフトウェアの実行により、対象外のタグやタグ中の対象外のフレームは引き継がれませんので、少なくとも置換されたMP3/MP4/FLACファイルがユーザーの想定どおりになっていることを確認できるまでは、必ずバックアップを取るようにしてください。
TagReplc で扱う圧縮音声ファイルのファイル名は先頭文字列(通常は半角2文字)がアルバム内のトラック番号を示す十進数字になっている必要があります。
TagReplc には、リッピング、 タグ編集など の機能はありません。
v.1.01 からは、既に再エンコードされたMP3ファイルの利用だけではなくイメージファイルから外部エンコーダ(lame_enc.dll )を使って再エンコードする機能が加わりました。
v.1.02 からは、lame_enc.dll のほかに libFLAC.dll や qaac.exe も利用可能になりました。
v.1.04 からは、fdkaac.exe や opusenc.exe や ffmpeg.exe も利用可能になりました。
【基本機能】
既にタグ編集されフォルダAに格納されているMP3ファイル と、それとは異なるエンコーダもしくはエンコード条件で(リッピングソフトによって)再エンコードされフォルダBに格納されているMP3ファイル を用いて、フォルダAのMP3ファイルのタグ情報とフォルダBのMP3ファイルの音声データを組み合わせたMP3ファイルを生成します。(表2の#1)
フォルダAに格納された MP3/MP4/FLAC/MKA/WebM ファイル とそれらの圧縮元のCDイメージファイル について、そのCDイメージファイルを外部エンコーダ(lame_enc.dll /qaac.exe /fdkaac.exe /libFLAC.dll /opusenc.exe /ffmpeg.exe のいずれか)で再エンコードして MP3/MP4/MP4/FLAC/Ogg/MKA/WebM 等のオーディオファイルを生成 します。その生成されるオーディオファイルにフォルダAの MP3/MP4/FLAC/MKA/WebM ファイルのタグ情報を継承させます。(表2の#2~#7)
上記の「再エンコード」はフォルダAに格納された圧縮オーディオファイルからではなく元のCDイメージファイル(CD音源の非圧縮ファイル)からエンコードされます。 例えば、以前にCDイメージ(CD音源)から Windows Media Player の MP3 エンコーダで非可逆圧縮したオーディオファイルがフォルダAに格納されているとして、この非可逆圧縮オーディオファイルを Lame(MP3), qaac(Apple CoreAudio), fdk-aac, Opus などの Windows Media Player の MP3 エンコーダより高音質とされているエンコーダで再エンコードしたとしても元の MP3 よりも高音質になることは基本的にはありません。一方、CDイメージ(CD音源)から高音質のエンコーダで再エンコードした場合は、フォルダAに格納されていた非可逆圧縮オーディオファイルより高音質になることが(同一ビットレート以上であれば)確実に期待できます。
上記の2については「一括再エンコード処理(Batch Re-encoding) 」することができます。
CDイメージファイル を外部エンコーダ(lame_enc.dll /qaac.exe /fdkaac.exe /libFLAC.dll /opusenc.exe /ffmpeg.exe のいずれか)でエンコードして MP3/MP4/MP4/FLAC/Ogg/MKA/WebM 等ファイルを生成 します。フォルダAのオーディオファイルのタグ情報は参照も継承もされません。(表2の#8~#13)
上記の4については「フォルダ一括エンコード処理」することができます。
CDからイメージファイルを作成する機能 により作成されたCDイメージファイルを上記の4で用いることができます。
表2. 基本機能
# mode of B Source Encode B Output
A B file format coding format metadata (tag)
1 Folder-B mode .mp3 .mp3 No Encode .mp3 MP3 ID3v2(as is)
2 CD-Image mode .mp3/.m4a/.flac/ .mka/.webm CD-Image Lame .mp3 MP3 ID3v2(as is)
3 qaac .m4a AAC MP4
4 fdkaac .m4a AAC MP4
5 libFLAC .flac FLAC VorbisComment
6 opusenc .opus .ogg Opus VorbisComment
7 ffmpeg (various formats)
8 not referenced Lame .mp3 MP3 ID3v2
9 qaac .m4a AAC MP4
10 fdkaac .m4a AAC MP4
11 libFLAC .flac FLAC VorbisComment
12 opusenc .opus .ogg Opus VorbisComment
13 ffmpeg (various formats)
TagReplc は、上表の Source A のフォルダにあるオーディオファイルのタグ情報と Source B のフォルダにあるオーディオファイルもしくはCDイメージファイルのオーディオデータを組み合わせて、上表の Output の形式のオーディオファイルを生成するものです。
v.1.00 では上表の#1の機能だけでしたが、v.1.01 で #2 の機能が追加され、v.1.02 で #3,#4 の機能が追加されました。
#1 では、A/B ともに .mp3 であり、再エンコード無しにタグ継承を行うのに対し、#2~#7 では CDイメージファイルから再エンコードしてオーディオデータを生成します。
#2 では Lame エンコーダのタグ生成機能を使用しません。Source A が .mp3 の場合はタグ情報(ID3v2)がそのまま Output のファイルのタグに流用されます。そのため例えば A がID3v2.4の場合は B もID3v2.4になります。#2 でSource A が .mp3 以外の場合はエンコードの際にタグ(ID3v2.3)が生成されます。
v.1.02 では、Source A が .m4a や .flac の場合には .mp3 を Output することはできませんでしたが、v.1.03 ではとりあえず .mp3 を Output することができます。
#8~#13 は Source A を参照しないので TagReplc の特長である「タグ継承」は行われず、ジャケット画像の埋め込み(Attached picture)も行われません。
#6,#12 で opusenc.exe が出力するオーディオファイルのコンテナは Ogg (Ogg Opus) ですので拡張子は ".opus" もしくは ".ogg" になります。しかしながら現バージョンでの TagReplc.exe では Ogg の構文解析処理機能は備えていないので ".opus" および ".ogg" を Source A として読み込みはできません。
【対象とするタグフレーム】
TagReplc では下記のタグフレーム(コメントフィールド、メタデータアトム)が引き継がれます。他のタグフレームは無視されます。
表3. TagReplc で対象とするタグフレーム
Frame ID Description 説明 引用
ID3v2.3 ID3v2.2 FLAC (VorbisComment) MP4 ilst qaac Tagging EBML(Matroska,WebM)
TALB TAL ALBUM ©alb album 50:TITLE Album title アルバム A
TPE1 TP1 ARTIST ©ART artist 30:ARTIST Artist アーティスト A
TPE2 TP2 ALBUMARTIST aART band 50:ARTIST Album artist アルバムアーティスト A
TIT2 TT2 TITLE ©nam title 30:TITLE Title タイトル A
TRCK TRK TRACKNUMBER trkn track 30:PART_NUMBER Track トラック番号 A
TPOS TPA DISCNUMBER disk disk 50:PART_NUMBER Part of a set ディスク番号 A
TYER TYE DATE ©day date 30:DATE_RECORDED Year リリース年 A
TCON TCO GENRE ©gen genre 30:GENRE Genre ジャンル A
COMM COM COMMENT ©cmt comment 30:COMMENT Comment コメント A
TCOM TCM COMPOSER ©wrt composer 30:COMPOSER Composer 作曲者 A
TENC TEN ENCODER ©too 30:ENCODER Encoded by エンコードした者 B
TSSE TSS Encoder settings エンコーダ設定 B
TLEN TLE Length 演奏時間(ミリ秒単位) B
APIC PIC (Type-6:Picture) covr artwork <AttachedFile> Attached picture ジャケット画像 A
MCDI MCI CDTOC 50:MCDI CD identifier 音楽CD識別子 B
"TENC"、"TSSE"、"TLEN"、"MCDI" はエンコーディングの方法や対象データの情報なのでフォルダBのファイルのフレーム情報が継承され、それら以外はフォルダAのファイルのフレーム情報が継承されます。
MP3→MP3(表2 の #1 と #2)の場合、それぞれのフレームの継承は、フレームまるごと(すなわちバイナリレベルで変更なく)継承されます。
よって、フレーム内の文字列の文字コードもそのまま継承されます。
【基本操作】(表2 の#1)
実行ファイル(TagReplc.exe)もしくはそのショートカットをクリックして起動します。
必要に応じて、 Bkup Folder
backup_folder_path_name
の右側のアイコン
BKU をクリックして、バックアップ(Backup)フォルダ を変更します。
必要に応じて、 Temp Folder
temporary_folder_path_name
の右側のアイコン
TMP をクリックして、一時(Temporary)フォルダ を変更します。
Folder A
folder_A_path_name
の右側のアイコン
A をクリックして「以前にエンコードしてタグを編集したMP3ファイルが格納されているアルバムフォルダ」を選択します。(こちらのMP3ファイルのタグが活用されます。)
さらにその右側にある「フォルダを開く」アイコン
をクリックすれば、エクスプローラー(Windows Explorer)でフォルダを閲覧できます。
Folder B
folder_B_path_name
の右側のアイコン
B をクリックして、新たにエンコードし直されたMP3ファイルが格納されているアルバムフォルダを選択します。(こちらのMP3ファイルのオーディオデータが活用されます。)
既に再エンコードされたMP3ファイルではなくイメージファイルから再エンコードする場合には、後述する【イメージファイルの再エンコード】 を参照してください。
次に、
Compare A/B
ボタンをクリックすると、下の一覧表にフォルダAとフォルダBのなかのMP3ファイルのタグ情報などが交互に表示されます。
拡張子が .mp3 .m4a .mp4 .flac .wav のいずれかのオーディオファイルが表示されます。フォルダ内に複数の拡張子のオーディオファイルが混在する場合は、拡張子の検索優先順位に従いひとつの拡張子のオーディオファイルのみが表示されます。拡張子の検索優先順位はメニューの〔Setting ⇒ Audio File Extension Search Priority〕で変更できます。
4~18列めには、表3 の【対象とするフレーム】 の情報が表示されます。
右6列("codec","bits/sample","bitrate(kbps)","fs(Hz)","duration","dataSize")はフレーム情報ではなくエンコード情報です。
奇数行には Folder A のMP3ファイルの楽曲情報が、偶数行には Folder B のMP3ファイルの楽曲情報が表示されます。
奇数行と偶数行のそれぞれの順番はファイル名(通常、先頭がトラック番号の数字)でソートされています。(タグの TRCK フレームの文字列でソートされてはいません。)
奇数行と偶数行がペアになっているはずです。
奇数行の各セルの文字列がひとつ下の偶数行の文字列と一致している場合、偶数行のセルが
Pale turquoise色
に、一致していない場合には
Bisque色
に表示されます。
奇数行と偶数行の各ペアの楽曲情報が想定しているとおりになっていることを確認して下さい。
全ペア確認後に、
Replace Tags
ボタンをクリックすると、「フォルダAの各ファイルのID3v2タグ(metadata)などから再構成されたID3v2タグ」と「フォルダBの各ファイルのオーディオデータ(MP3 frames)部分」が組み合わされたMP3ファイルが一時フォルダに生成されます。
上記の「フォルダAの各ファイルのID3v2タグ(metadata)などから再構成されたID3v2タグ」は、表3 の【対象とするフレーム】 のフレームのみ抽出されて構成されます。そのため、【対象とするフレーム】 以外のフレームは生成されたMP3ファイルには引き継がれません。
一時フォルダに生成されるファイル名はフォルダAの各ファイルと同じファイル名です。既に一時フォルダに同一ファイル名が存在する場合は上書きされます。
さらに、
Move Files
ボタンをクリックすると、
バックアップ(BKUP)フォルダの下にフォルダAと同名のフォルダが作成され、フォルダAのMP3ファイル(*.mp3)は作成されたフォルダの下に移動されます。
※ *.mp3 以外の *.jpg, *.lrc, *.m3u 等は移動されません。
※ バックアップフォルダの下に既に同名のフォルダが存在する場合には、末尾に連番が付けられたフォルダ名で作成されます。
次に、一時フォルダに生成されたMP3ファイルが(空になった)フォルダAに移動されます。
以上により、フォルダAのMP3ファイルは、新たにエンコードし直されたオーディオデータ(MP3 frames)にタグが引き継がれたMP3ファイルに置換されます。
※ [Replace Tags] を実行後に [Move Files] を行わないと、生成されたMP3ファイルが一時フォルダに残ったままになります。
なお、 Bkup Folder をクリックすると、 Output Folder に変わり、「Outputフォルダモード」になります。この状態で Replace Tags ボタンをクリックすると、生成ファイルは一時フォルダではなく、Outputフォルダに生成され、 Move Files ボタンは無効になります。Folder A のファイルをそのままに残して、生成ファイルを別フォルダに生成したい場合には「Outputフォルダモード」にして下さい。
【イメージファイルの再エンコード】(表2 の#2,#3,#4,#5,#6,#7)
表6 に記された外部エンコーダの DLL(Dynamic Link Library)もしくは EXE(Executable) が TagReplc で使用できる状態にあるときは、フォルダBの代わりに CDイメージファイルを指定することができます。
表6のMP3エンコーダのうち、TagReplc 実行時にこの機能を使用できるのは LAME の DLL版の lame_enc.dll だけで、libmp3lame.dll には対応していません。
使用できる「CDイメージファイル」
音楽CD(CD-DA:LinearPCM,44.1kHz,2channel,16bit,Little endian,2352bytes/sector)のデータ形式をもつCDイメージで、1つのCUEシート(.cue)と1つのバイナリファイル(.bin, .img, .wav)から構成されます。(.iso や .udf などには対応していません。)
CD1枚まるごとがひとつのバイナリファイルになっている構成(単一ファイル形式)で、曲ごとに分割されている複数のバイナリファイル構成(複数ファイル形式)には対応していません。
BIN+CUE形式、IMG+CUE形式、WAV+CUE形式のいずれかです。(表8 参照)
CUEシートはテキストファイルで、TagReplc は「FILE」行、「TRACK xx AUDIO」行、「INDEX 01」行のみ認識します。「INDEX 00」「TITLE」「PERFORMER」行などは無視されます。
CUEシートのFILE行の第2引数(BINARY/WAVE)に拘わらず、第1引数のバイナリファイルの拡張子(.bin, .img, .wav)でフォーマットを判別しています。
.wav は RIFF waveform Audio Format (WAV) 規格のうち TagReplc で読み込めるのはヘッダ44バイトをもつファイルで、このヘッダ44バイトは読み飛ばされます。
.bin と .img は .wav からヘッダ44バイトを削除したもので、.bin と .img とも同様に読み込まれます。
CUEシートファイルはデフォルトで文字コードを ANSI(ロケールが ja-JP の場合は CP932≒Shift_JIS)として読み込まれます。UTF-8 の場合には上部のメニューの〔Setting ⇒ Cue Sheet Charset〕で変更して下さい。(FILE行の第1引数(パス名)が半角英数など US-ASCII コードだけの場合は ANSI/UTF-8 のどちらでも同じです。)
TagReplc.exe は起動時に lame_enc.dll や libFLAC.dll を下記の「検索順序」に従って探し、もしあった場合には動的ロード(Dynamic Loading)します。
[lame_enc.dll , libFLAC.dll の検索順序]
TagReplc.exe が存在するフォルダ(ディレクトリ)
32bit版Windowsの場合は C:\Windows\System32、64bit版Windowsの場合は C:\Windows\SysWOW64
C:\Windows フォルダ
カレントフォルダ(TagReplc.exe をショートカットから起動する場合はそのショートカットの「作業フォルダー」に指定したフォルダ)
環境変数(Path)に登録されているフォルダ
(環境変数は、Windows の 設定⇒詳細情報⇒システムの詳細設定⇒環境変数 で閲覧できます。)
(TagReplc.exe 起動時に設定ファイル "TagReplc.ini" の EnvVarPATH パラメータに記述されているパスが環境変数(Path)に追記されます。)
lame_enc.dll が使用できる状態にあるときは、下段のステータスバーに LAMEx.xxx という表示が現れます。
libFLAC.dll が使用できる状態にあるときは、下段のステータスバーに FLAC x.y.z という表示が現れます。
qaac.exe もしくは qaac64.exe が使用できる状態にあるときは、下段のステータスバーに qaac x.xx という表示が現れます。
また、上部の Folder B のテキスト表示が
Folder B
ボタンになり、そのボタン をクリックすると
CD image
に切り替わり、右側のアイコンも
B
から
に切り替わります。
Folder A には【基本操作】と同様に「以前にエンコードしてタグを編集したMP3/MP4/FLACファイルが格納されているアルバムフォルダ」を選択します。
Folder B
ボタンをクリックして、
CD image
に切り替えたのちに、右側のアイコン
をクリックして、新たにMP3/MP4/FLACにエンコードし直すCDイメージのCUEシートファイル(.cue)を選択します。
上部のメニューの〔Setting ⇒ Select Encoder〕で使用するエンコーダを選択します。下段のステータスバーの選択されたエンコーダ文字列の先頭に'*'マークが付きます。
LAME の場合、上部のメニューの〔Setting ⇒ Encoder option〕を選び、ダイアログボックスで LAME エンコーダの設定を行います。
表4. LAME での Preset option
Preset 相当コマンド Bitrate方式 kbps
(No preset) VBR/ABR/CBR
--preset medium -V 4 VBR 165
--preset fast medium -V 4 --vbr-new
--r3mix -V 3 175
--preset standard -V 2 190
--preset fast standard -V 2 --vbr-new
--preset extreme -V 0 245
--preset fast extreme -V 0 --vbr-new
--preset insane -b 320 CBR 320
ABR --abr num ABR num
CBR -b num CBR num
Low Quality(q9) -q 9 VBR/ABR/CBR
Normal Quality(q3) -q 3
High Quality(q2) -q 2
Very High Quality(q0) -q 0
上記の表は The LAME Project のページ からリンクされている Guide to command line options および Detailed command line switches などの説明をもとに本取扱説明書の著者(KinJ)が類推したものですので、不正確な点があるかもしれません。
「相当コマンド」列は lame.exe のコマンドラインでのオプションの相当値を示します。
「kbps」列は VBR では「結果としてのビットレート平均値の目安」、ABR では「平均ビットレートの目標値」、CBR では「ビットレート固定値」を示します。
LAME 3.98 以降では、--vbr-new がVBRのデフォルトになったようなので、例えば --preset standard と --preset fast standard は同じ機能のようです。
例えば lame_enc.dll を用いている CDex では --preset fast standard が初期設定になっているようです。
CDex などでは Normal Quality は -q 5 とされていますが、LAME 3.100 では -q 3 になっているようです。
Preset に「(No preset)」や「.... Quality(qn )」を選択した場合は、さらに VBR/ABR/CBR のいずれかを選択し、ビットレート(kbps)を指定する必要があります。
VBR および ABR では可変ビットレートの許容範囲を Bitrate Min. と Bitrate Max. で設定できますが、エンコード結果に与える影響は僅かなようなので、デフォルト(Min.=32kbps, Max.=320kbps)のままが無難かと思われます。
FLAC では下記のオプション項目を TagReplc の設定ファイル "TagReplc.ini" で設定できます。
qaac でオプションを追加する場合は、上部のメニューの〔Setting ⇒ Encoder option〕を選び、追加するオプション文字列をキーボード入力します。
オプション文字列は Command Line Options を参照。
空欄の場合はデフォルトで infiles, -o, -R, --start, --end, Tagging options 等がコマンドラインに引き渡される。
例えば入力欄が "-A" の場合は AAC ではなく ALAC にエンコードされる。
qaac のデフォルトでのエンコード品質は "TVBR q91, Quality 96"
【基本操作】と同様に Compare A/B
ボタンをクリックします。
Encoding B
ボタンをクリックするとエンコードが開始されます。
下段のステータスバーの%表示で進行を確認して、「Encoding....」が「Encoding completed」に替わるのを待ちます。
このとき、TagReplc のステータスバーのカウンタが途中で停止し上部のタイトルバーに「(応答なし)」の表示が現れフリーズのような状態になることがありますが、エンコードはバックグラウンドで進行しており、少し待つと「Encoding completed」が表示されます。
【基本操作】と同様に Backup モードの場合は、 Move Files
ボタンをクリックすると、フォルダAの圧縮音声ファイルが新たにエンコードし直された圧縮音声ファイルに置換されます。
【一括再エンコード処理】
上部のメニューの〔File ⇒ Batch Re-encode(一括再変換)〕で【イメージファイルの再エンコード】 を一括してバッチ処理を行うことができます。
※本節での説明での [Input A] の "MP3" は圧縮オーディオファイルの代表的な呼び名として用いています。よって [Input A] には .mp3 以外の .m4a, .flac, .mka, .webm も適用できます。
※STEP-1 のマッチングは [Input A] のオーディオファイルの MCDI 情報に依存していることが多いので、MCDI メタデータが無いオーディオファイルでのマッチングは失敗することが多いです。なお、STEP-1 によらずに "MP3-Cue Match List File" を作成すれば STEP-1 を Skip して STEP-2 以降を実行することは可能です。
STEP-1 :MP3格納フォルダとイメージファイルのマッチング
[Input A] 以下のアルバムフォルダに格納されているMP3ファイルにエンコードされた元の CD-DA と同等のイメージファイルを [Input B] の中から探し出します。
[Input A] MP3 Folder (including subfolders): MP3ファイルが格納されているアルバムフォルダの上位フォルダ(ライブラリ)を指定します。このフォルダ以下のサブフォルダが対象になります。
[Input B] Cue Folders (excluding subfolders): イメージファイル(.cue, .img, .bin, .wav など)が格納されているフォルダを指定します。複数のフォルダを指定できます。サブフォルダは対象とされません。
[Option] MP3s encoded by these are excluded: ここに記載した文字列を含むエンコーダでエンコードされた[Input A]の圧縮音声ファイルは一括再エンコード処理の対象から除かれます。複数指定の場合はセミコロン(;)で区切ります。
(例)LAME3.99;LAME3.100
[Option] Allowances in Matching: マッチングの際の許容値
CUEシートに記された値やエンコードの際のサンプル数などは、必ずしも CD-DA のリードインに記録されている TOC(Table Of Contents) の値に従っているとは限りません。例えば、リッピングソフトで「正しいTOCとギャップ情報の取得」などを指定してリッピングを行った場合にはデータ領域のサブコード(サブチャンネル)を解析して得られたトラックの位置情報が用いられるため、各トラックの開始位置やCUEシートの INDEX01 の値は CD-DA の TOC に記録されている値とは数セクタ(フレーム)ずれていることがあります。これらの差をマッチングの際に許容する値です。 Opus などでエンコードされたファイルはサンプリングレートが48kHzなどに変更されている場合がありますが、その場合は 44.1kHz 相当のサンプル数に換算して評価します。
[Output] MP3-Cue Match List File: マッチングした結果を記述するテキストファイルを指定します。このテキストファイルの記述によって一括再エンコード処理が実施されます。
[Output] MP3-Cue Log File (option): デバッグ用ですので通常は無視(空白)
以上を設定して OK ボタンをクリックします。(マッチング探索には少々時間がかかります。) なお、ここでマッチング探索を行わずに、STEP-2 で既存の MP3-Cue Match List File を用いる場合は、[Output] MP3-Cue Match List File 欄にそのファイルを指定して Skip をクリックします。
STEP-2 :
MP3-Cue Match List File の内容について
'A' で指定されたアルバムフォルダは実際に存在しているか?
'M' で指定されたCUEシートファイルは実際に存在しているか?
複数のCUEシートファイルが指定されていないか?
CUEシートファイルのFILE行に記されたイメージファイルは実際に存在しているか?
'T' で指定したトラックの対応は整合しているか?
などを事前チェックした結果が表示されます。
事前チェックでエラー等が無かった場合は、ダイアログボックスのタイトルバーに "STEP-2 : Pre-check Ok" と表示されますので、最下段の Next ボタンをクリックして STEP-3 に進みます。
事前チェックでエラーが検出された場合は、ダイアログボックスにエラーの内容が表示され、それと同時にテキストエディタが起動され MP3-Cue Match List File が開かれテキスト編集可能な状態になります。 このとき使用されるテキストエディタは"TagReplc.ini" の "TextEditor" エントリで指定されたアプリケーションです。"TextEditor" エントリに指定されていない場合は、OS の「既定のアプリ」に登録されているテキストエディタ(「メモ帳」notepad.exe など)が起動されます。
「メモ帳」では行番号表示ができません。ダイアログボックスに表示されたエラー発生行(実際にはエラーが発生したブロックの区切りの空白行)の位置が分かるように行番号表示ができるテキストエディタの使用をお勧めします。
テキストエディタで MP3-Cue Match List File のエラー行の修正を行ったのちに上書き保存して、ダイアログボックスの最下段の Retry ボタンをクリックします。
再度、事前チェックが行われますので、エラーが無くなるまで STEP-2 を繰り返します。
STEP-3 :エンコード設定
Audio Format / Encoder:使用するエンコーダを選択します
Backup | Output Folder:Backup モードか Output モードかを選択し、そのフォルダを指定します。
The number of the levels of higher folder created: アルバムフォルダを基準(Level-0)として遡って生成するフォルダレベルを指定します。
例えば Genre\Artist\Album_title\01_track.mp3 の場合 "2" と指定する。
When the specified folder already exists:指定されたフォルダが既に存在する場合、
・Save to THE folder:既存の指定したフォルダにセーブする
・Create NEW folder:追番を付加した新規フォルダを作成してそのフォルダにセーブする
以上を設定して OK ボタンをクリックすると一括再エンコード処理が開始されます。
一括再エンコード処理中は Auto CDDB は無効になります。
一括再エンコード処理を途中で中止する場合は [Abort Batch] ボタンを何度かクリックします。受け付けられると [Abort Batch] ボタンはグレイアウトされ、現在処理中のアルバムフォルダの処理完了後に一括処理を中止します。
マッチングについて
マッチングは [Input A] のMP3などのファイルのタグ情報やファイル名等と [Input B] のCUEシートに記載されたTOC情報やファイル名等から紐づけを行います。
おもには、[Input A] のMCDIフレームに記載されたTOC情報に依存しているため、TOCが無いことが多いMP4や、CDTOCが用意されているがあまり用いられていないFLAC、MCDIタグが用意されているがあまり用いられていない Matroska, WebM などではマッチング確度が低い。
ID3v2タグのMCDIの書式仕様はリッピングソフトに依存している
※1 MusicBrainz の記事 の "Basic format in pseudo-C code" を参照
※2 iTunes では COMM フレームの content descriptor が 'iTunes_CDDB_1' であるとき actual comment にTOC情報が「Text(ASCII), Hexadecimal LBAs concatenated by '+'」形式で記述されている場合がある。content descriptor が 'iTunes_CDDB_IDs' であるときはアルバムのトラック数だけでTOC情報は無いが、UFID フレームはあるようである。
※3 TagReplc でCDイメージから変換されたオーディオファイルには、上表8の「Text(ASCII), Decimal LBAs concatenated by '+'」形式で 表3 に示されたMCDIタグフレームに記録する。(MP4 ではMCDIタグフレームが用意されていないので、long tag ('----' box : iTunes custom metadata) の 'name'='CDTOC' の 'data' に記録する。)
TagReplc は UFID(Gracenote MusicID など)の利用はできない
MCDI が無い圧縮音声ファイルについては、フォルダ名、ファイル名、TALB, TPE1, TPE2 などのタグフレームのデータから抽出されたキーワードと CUEシートファイル名から関連性を推定するが、マッチング確度は低い。マッチングリストには '*' or 's' or 'W' or '?' の行を出力する。
マッチングリストの書式
マッチングリスト(MP3-Cue Match List File)はプレーンテキストファイル(UTF-8)で下記の書式規則です。
ひとつのマッチングは複数行のブロックに記述され、その区切りは空白行
行の最初の1文字は
'A':MP3ファイルが格納されたアルバムフォルダ('A' の次の数字はフォルダに格納されているトラック数)
'M' or '*' or 's' or 'W' or '?':アルバムフォルダに対応するCDイメージのCUEシートファイル(CUEシートファイル名の前の数字はオーディオトラック数)
'M':MP3ファイルのID3v2タグの MCDI により対応していると判断された
'*':単一のCUEシートが対応
's':CUEシートの一部のトラックが対応
'W':複数のCUEシートから構成される
'?':CUEシートとのトラック対応が不明
'T':アルバムフォルダのMP3ファイル名の接頭数字(m )とCUEシートのTRACK番号(n )の対応を "m :n " で示す。
ひとつのMP3ファイルが連結された複数のTRACKに対応している場合は "m :n1 -n2 " と表記される。
TRACK ではなく LBA(frame or sector) で示す場合は "m :n1 -n2 f" と表記できる。(75frames/second, 588samples/frame)
sample で示す場合は "m :n1 -n2 s" と表記できる。(44100samples/second)
例1:CDの全トラックがひとつのMP3ファイルに対応
A 1 "C:\user\music\classical\Bach\Goldberg_Variations"
M 32 "C:\user\cd_img\Bach_Goldberg_Variations_Glenn_Gould_SMK-52619.cue"
T 1:1-32
例2:CDの TRACK 09 と TRACK 10 がひとつのMP3ファイルに対応
A 9 "C:\user\music\rock\Jackson_Browne\Running_on_Empty"
M 10 "C:\user\cd_img\Asylum_6E-113-2.cue"
T 1:1 2:2 3:3 4:4 5:5 6:6 7:7 8:8 9:9-10
例3:2枚組の Disc2 の TRACK 14 に2分間の無音部分を挟み収録されている2曲をMP3では分離
A 15 "C:\user\music\rock\Oasis\Time_Flies"
M 14 "C:\user\cd_img\Oasis_Time_Flies_1994-2009_disc2_SICP-2765.cue"
T 14:1 15:2 16:3 17:4 18:5 19:6 20:7 21:8 22:9 23:10 24:11 25:12 26:13 27:297513-319173f 28:328173-351765f
行末の '#' 以降はコメントであり、'##' はエラー、'###' は重大エラーを示す。
行中に '$' がある場合は、この行全体がコメントアウト(無視)される。
ブロック内に複数の 'M' がある場合、2行め以降には " ##Select ONE" のエラーコメントが付く。テキストエディタでの修正は、不要な行を削除するか、不要な行の行末に '$' を付けてこの行をコメントアウトさせる。
【CDイメージモードでのオプション】
CDからイメージファイルを作成する機能
メインメニューの〔File ⇒ CD image Options ⇒ Create image file from CD〕で開かれるウィンドウで CD から音声データを取り込んでイメージファイルを作成することができます。
(但し TagReplc のCDイメージファイル作成機能には最低限の機能しかありません。一般にCDイメージファイルの作成には 表8 のソフトウェアなどが用いられていると思われます。)
[操作手順]
取り込む対象のCDがセットされたCDドライブや、マウントされた仮想ドライブ(ImgDrive など)をドロップダウンリストから選択します
CDドライブが読込準備できていないときは、読込準備されるのを待ってから [ReScan] ボタンをクリックしてリストを更新させてCDドライブを選択してください
[Destination (Image file)] に生成されるイメージファイルを指定します
生成されるイメージファイルの形式は ".cue+.wav", ".cue+.bin", ".cue+.img" のいずれかです
・.wav は LPCMバイナリデータの先頭にヘッダ(44bytes)が挿入されたファイルです
・.bin と .img はどちらもヘッダ無しLPCMバイナリデータファイルで拡張子が異なるだけです
[Cue sheet]欄に .cue ファイルを指定します
LPCMバイナリデータファイルの拡張子を選択します
マルチセッションCDの場合は最初のセッションの音楽トラックのみ取り込みます
[Start creating image file] ボタンをクリックするとCDからの取り込みが開始されます
読み込みエラーが発生した場合は中止されます
※注:一般に CDドライブでは音楽CD(CD-DA)を読み込む場合、誤りを検出して誤り訂正で訂正できない場合でもデータを補間して読み込みを継続しエラーの報告はしません。よって「正常に完了した場合」でも必ずしも正確にCDの音声データが取り込まれていることは保証されていません。なお、PureRead 機能がある Pioneer 製ドライブでは Perfect Mode に設定されていれば誤り訂正できなかったときには読み込みを中止してエラーを報告します。
[Auto Eject] にチェックされている場合、CDからの取り込みが正常に完了した後にCDドライブのディスクトレイもしくはカバーを開けます(仮想ドライブの場合はアンマウントされます)
CDからの取り込みが正常に完了した場合は [Apply Cue sheet to Main window] ボタンが有効になり、このボタンをクリックすると作成したCUEシートファイル名をメインウィンドウの [CD image]欄に貼り付けて [Compare A/B] を実行します
このあとにメインメニューで〔File ⇒ CD image Options ⇒ Encode the CD image with [B] tags〕を実行すれば取り込んだ CDイメージからエンコードファイル(MP3やAACなどの圧縮音声ファイル)を生成することができます
※注:[Compare A/B] を実行するためには Folder-A にも1個以上のオーディオファイルが格納されている必要があります
CDDB から楽曲情報を入手
CDイメージモードにおいてCUEシートで読み込んだデータについて freedb系のCDDB(Compact Disc DataBase) からインターネット経由で楽曲情報を取得できます。
メニューの〔File ⇒ CD image Options ⇒ Acquire CD data from CDDB〕で個別に楽曲情報を取得。
メニューの〔File ⇒ CD image Options ⇒ Auto CDDB〕にチェックを入れておくと、CDイメージモードで Compare A/B を実行した際に自動で CDDB から楽曲情報を取得するようにできます。
CDDB に関するこれらの機能を利用するためには設定ファイル TagReplc.ini に下記パラメタの値(文字列)を設定する必要があります。
Cddb_Server1 :Primary CDDB(freedb) server
Cddb_Server2 :Secondary CDDB(freedb) server
Cddb_Hello :Username+Hostname+Clientname+Version
Cddb_Proto :Protocol level
[設定例]
Cddb_Server1=http://freedbtest.dyndns.org:80/~cddb/cddb.cgi
Cddb_Server2=http://gnudb.gnudb.org:80/~cddb/cddb.cgi
Cddb_Hello=joe+my.host.com+xmcd_via_email+v1.0
Cddb_Proto=1
※メニューの〔File ⇒ CD image Options ⇒ Select CDDB Server〕で Primary CDDB server と Secondary CDDB server を入れ替えることができます。
※"cddb query" コマンドに対して複数の一致データの応答がある場合にはその一番目のデータだけを "cddb read" コマンドで取得します。
※CDDB(freedb)の利用方法やライセンス等については https://gnudb.org/ を参照してください。
CDイメージから Folder-A の楽曲情報ではなく自身の楽曲情報に基づいてエンコードファイルを生成 (表2 の#8,#9,#10,#11,#12,#13)
メニューの〔File ⇒ CD image Options ⇒ Encode the CD image with [B] tags〕。
実行時には「Outputフォルダモード」に変更され、エンコードファイルは Outputフォルダに出力されます。
"Auto CDDB" にチェックが入れられている場合は、CDDBから取得された楽曲情報が反映されます。その際に、プレイリストファイルなどからの参照を考慮(※1) して、日本語文字が含まれるアルバム名や楽曲名に対応するフォルダ名やファイル名はローマ字に自動変換(※2) されます。
※1 .m3u ファイルではテキストのエンコード方式が規定されていません。.m3u8 では UTF-8 と規定されていますが音楽プレイヤーソフトやDAP(digital audio player)によっては無視されて .m3u と同様に ISO 8859-1(Latin-1) or CP1252 などとして扱われていることがあります。そのため、プレイリストファイルやURLで参照される可能性があるファイル名の拡張子を除く本体部分は RFC 3986 で規定されたURIの非予約文字のうちピリオド(.)とチルダ(~)を除く文字(半角英数、アンダースコア、ハイフンマイナス)で構成されていることが望ましいとされています。
※2 ファイル名を単なる識別名とみなしているので、日本語→ローマ字の変換の精度(正確性)は高くありません。
フォルダの全ての CDイメージに対して前項のエンコードファイルを一括生成
フォルダ内の全ての .cue ファイルに対して前項のエンコードファイルを生成されます。(.cue ファイルの FILE行のイメージファイルが存在しない場合はスキップ)
[操作手順]
CDイメージモード に変更
Outputフォルダモード に変更して出力先フォルダを確認
(手動で変更しなくてもエンコード時に自動的にOutputフォルダモードに変更されます)
メニュー〔Setting ⇒ Select Encoder〕でエンコーダを選択
(必要に応じて〔Setting ⇒ Encoder option〕でエンコーダオプション設定を変更)
メニュー〔File ⇒ CD image Options ⇒ Auto CDDB〕にチェックされていることを確認
('Bkup Folder n-Level' ≧ 2 では CDDB から取得した Genre 名のフォルダに分けられてしまうので 'Bkup Folder n-Level'=1 程度のほうが良い)
メニュー〔File ⇒ CD image Options ⇒ Encode Multiple CD images with [B] tags〕
CDイメージファイルとCUEシートファイルが格納されているフォルダを選択
一括処理が開始されます
途中で中止する場合は [Abort Batch] ボタンを何度かクリックします。受け付けられると [Abort Batch] ボタンはグレイアウトされ、現在処理中のCDイメージファイルの処理完了後に一括処理を中止します。
【その他の操作】
音声ファイル簡易再生
Compare A/B
ボタンをクリックして一覧表が表示されている状態で、任意の一行をクリックして選択したうえで、
Audio play
ボタンをクリックすると、選択された MP3/MP4/FLAC/WAV ファイルが音楽再生されます。
pause
ボタンで一時停止、
resume
ボタンで一時停止解除、
stop
で停止(再生終了)します。
Album repeat ボタンが表示されている状態では、例えば奇数行の1曲目(A1)が再生されたあとは奇数行の2曲目(A2)が再生されます。
一方、
Track repeat ボタンが表示されている状態では、同じ楽曲(Track)が繰り返し再生されます。
メニューの〔Setting ⇒ Audio Play API〕で "MF (Media Foundation )" にチェックされている場合、AAC や FLAC も再生できます。但し、MP4(.m4a) であっても ALAC は再生できないようです。
"MCI (Media Control Interface )" にチェックされている場合、AAC や FLAC の再生はできません。Codec Pack がインストールされている環境では AAC の再生は可能なようですが、Micosoft の Support ページには Codec Pack のインストールは勧められていません。
音声ファイルのプロパティ表示
Compare A/B
ボタンをクリックして一覧表が表示されている状態で、任意の一行をクリックして選択したうえで、
Prop
ボタンをクリックすると、選択されたMP3/MP4/FLACファイルのプロパティが表示されます。
【ユーティリティ】
副次ファイルコピーユーティリティ (Misc File Copy Utility)
このユーティリティは、コピー元フォルダとそのサブフォルダに保存されている音声ファイルを除くファイルをコピー先フォルダとそのサブフォルダにコピーします。
具体的にはコピーの対象は、プレイリストファイル(.m3u)、同期テキストファイル(.lrc)、埋め込まれていないアルバムアートワークファイル(.jpg など)などです。
コピー対象外の「音声ファイル」とは、拡張子が .mp3, .m4a, .mp4, .flac, ,mka, .webm, .wav のファイルです。
コピー先のフォルダが存在しない場合には、ファイルはコピーされません。
Output モードで圧縮音声ファイルを生成したフォルダに参照元のフォルダAにある圧縮音声ファイル以外をコピーすることが想定されています。
プレイリスト拡張子置換ユーティリティ (Playlist Extension Replacement Utility)
ベースフォルダとそのサブフォルダに格納されているプレイリストファイル(.m3u)に記述されたテキスト中のメディアファイルの拡張子を置換します。
元々の拡張子をもつ音声ファイルが存在する場合は、拡張子は置換されません。
【インストール】
インストールアーカイブ TagReplc_10??.zip をダブルクリックします。
展開して現れる TagReplc フォルダを「適当なフォルダ」にフォルダごとコピーします。
格納先である「適当なフォルダ」はユーザーがその権限で管理できるフォルダであればどこでも構いませんが、セキュリティソフトが動作している環境では、除外フォルダ等にプログラムを格納する必要があります。
"C:\Program Files (x86)" や "C:\Program Files" への格納は管理者権限が必要になることがあるので本プログラムでは避けたほうが良いと思われますが、もしどうしてもこれらのフォルダに格納する場合は、TagReplc.exe は32bitアプリケーションですので、64bit Windows の場合は "C:\Program Files (x86)" の下に格納することになります。
コピー先の TagReplc フォルダの中に下記のファイルがあることを確認します。
TagReplc.exe :実行ファイル
TagReplc_help.htm :このソフトウェア取扱説明書
TR_OSS_build.htm :TagReplc で利用可能なオープンソースソフトウェア(fdkaac,FFmpeg)のビルドについて
readme.txt :はじめにお読みください
LICENSE_oss.txt :利用オープンソースソフトウェアのライセンス条項
LICENSE_unbundled.txt :インストールアーカイブには同梱されていないバイナリコードや利用データベースサービス等のライセンス条項
必要に応じて、実行ファイル(TagReplc.exe)のショートカットを作成します。
【エンコーダのインストール】
【イメージファイルの再エンコード】 の機能を使って .mp3, .flac, .m4a を生成するためには、それぞれに対応したエンコーダのバイナリコード(.dll or .exe)がインストールされている必要があります。
上表のエンコーダのバイナリコード(.dll や .exe)はインストールアーカイブ TagReplc_10??.zip には同梱(バンドル)されていません。これらのエンコーダおよびエンコーダが用いるDLL等の使用に関するライセンス等については利用者が確認し、利用者の責任において使用されるものとします。
上表のエンコーダのバイナリコードが既に前記の[検索順序] のフォルダに存在する場合は TagReplc.exe 起動時にロードされ、ステータスバーに "LAMEx.xxx" "FLAC x.x.x" "qaac x.xx" などの表示が現れます。もし、使用予定のエンコーダについてこれらの表示が現れない場合は、
- 既にインストールされている場合は、設定ファイル "TagReplc.ini" の EnvVarPATH パラメータに格納されているパスを追記
- インストールされていない場合は、上表のDownload欄などからそれぞれのバイナリコードを入手して前記の[検索順序] のフォルダに格納 して TagReplc.exe を再起動して下さい。
TagReplc.exe は32bitアプリケーションですので、上記のバイナリコードがDLLの場合には、PCが64bit版Windowsであっても32bit版(x86)のDLLが必要です。
DLLの場合、 ファイル名("lame_enc.dll" や "libFLAC.dll" )だけではそれが 32bit版(x86)か64bit版(x64)か判別できません。
上記のバイナリコードがEXEの場合、32bit OS では32bit版のEXEしか選択できませんが、64bit OS では EXE は32bit版でも64bit版でも構いません。但し qaac は Apple Application Support (AAS) を必要としますが、その組み合わせは32bit版/64bit版を一致させる必要があります。即ち、qaac.exe には AAS(32bit)、qaac64.exe には AAS(64bit) を組合せます。
LAME
lame_enc.dll の入手方法
RareWares のページ から32bit版(win32)の LAME Bundle をダウンロードして展開し、lame_enc.dll を前記の [検索順序] のいずれかのフォルダにコピーします。
lame_enc.dll を用いている他のソフトウェアがインストールされている場合は、既に lame_enc.dll もインストールされている可能性があります。もしコピー先フォルダに既に lame_enc.dll が存在している場合にはそのフォルダへの上書きを避けて、[検索順序] の「1.TagReplc.exe が存在するフォルダ」にコピーするようにして下さい。(既に存在している lame_enc.dll は64bit版かもしれず、またバージョンが異なるかもしれないので、上書きすると既に使用している他のソフトウェアに影響する可能性があります。)
上記の「RareWares のページ」は、The LAME Project のホームページ から Links ⇒ LAME Binaries: ⇒ Windows: でリンクされています。
LAME は The LAME Project が開発したアプリケーションソフトウェアで、このホームページの冒頭に次行が記されています。
"LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL."
lame_enc.dll の使用(use)に関するライセンスは The LAME Project のページ に説明があります。
FLAC
libFLAC.dll の入手方法
開発元である Xiph.Org Foundation の FLAC の Downloads ページ の「・Windows : FLAC for Windows 」から入手できます。このリストの "flac-X.Y.Z-win.zip" の最新版をダウンロードして解凍し、Win32 サブフォルダの中の libFLAC.dll を前記の [検索順序] のいずれかのフォルダにコピーします。
libFLAC.dll を用いている他のソフトウェアがインストールされている場合は、既に libFLAC.dll もインストールされている可能性があります。もしコピー先フォルダに既に libFLAC.dll が存在している場合にはそのフォルダへの上書きを避けて、[検索順序] の「1.TagReplc.exe が存在するフォルダ」にコピーするようにして下さい。(既に存在している libFLAC.dll は64bit版かもしれず、またバージョンが異なるかもしれないので、上書きすると既に使用している他のソフトウェアに影響する可能性があります。)
libFLAC.dll の使用に関するライセンスは Xiph.Org Foundation のページ に説明があります。
qaac
既に qaac.exe もしくは qaac64.exe を使用している環境であれば、後述の「インストール後の TagReplc での設定 」を行えば TagReplc で使用できるはずです。
qaac.exe, qaac64.exe の入手方法
nu774 の Releases ページ の「最新(Latest)」の Assets から qaac_x.xx.zip をダウンロードし解凍して、そのなかの qaac.exe もしくは qaac64.exe をコピーします。
32bit OS では32bit版の qaac.exe を選択することになりますが、64bit OS では qaac.exe でも aac64.exe でも構いません。但し qaac は Apple Application Support (AAS) を必要としますが、その組み合わせは32bit版/64bit版を一致させる必要があります。即ち、qaac.exe には AAS(32bit)、qaac64.exe には AAS(64bit) を組合せます。
インストール方法 (日本語訳が 日本語版qaacマニュアル にあります。)
qaac は Apple Application Support (AAS) を必要とします。
・iTunes for Windows が Microsoft Store からインストールされている環境では "C:\Program Files\WindowsApps\AppleInc.iTunes_?????.?.?????.0_x64__nzyj5cx40ttqa"('?' はバージョンの数字)に必要なDLLがあるはずです。このフォルダへのアクセスには管理者権限が必要です。
・iTunes をインストールせずに必要な DLL を入手する方法については「qaacの導入」「QTfiles64」などのキーワードで検索されるページを参照してみてください。
qaac のライセンスに関しては nu774/qaac のページ の下方の License タブに記述があります。
qaac が用いる Apple Application Support 等のDLLの使用に関するライセンスやAACにエンコード(音声圧縮)する際のライセンス等については利用者が確認願います。
qaac インストール後の TagReplc での設定
qaac.exe もしくは qaac64.exe インストール後に、TagReplc.exe のプログラムフォルダにある設定ファイル"TagReplc.ini" の "Qaac_Exe" という名前(キー)のパラメタ(エントリ)の値として、qaac.exe もしくは qaac64.exe のパス(フルパス)を記載します。
(例)Qaac_Exe=C:\user\app\qaac\qaac64.exe
また、"TagReplc.ini" の "EnvVarPATH" エントリに AAS(CoreAudioToolbox.dll など) のパスを追記します。(それぞれのパスはセミコロン(;)で区切ります。)
(例)EnvVarPATH=C:\user\app\flac32;C:\user\app\qaac\aas64_dll
qaac が用いる DLL を見つけられない場合は qaac を利用することはできずステータスバーに "qaac x.xx" は表示されません。その場合は対象となる DLL の格納フォルダや EnvVarPATH 等を確認してください。それらが適切であるのに qaac が認識されない場合はお使いのシステムに「Microsoft C および C++ (MSVC) ランタイム ライブラリ」がインストールされていない可能性がありますので「Visual C++再頒布可能パッケージ 」のインストールを検討してみてください。
fdkaac
fdkaac は Fraunhofer FDK AAC の共有ライブラリ libfdk-aac のためのフロントエンドですが、libfdk-aac はバイナリ配布が許可されていないため、libfdk-aac のソースファイル とともに fdkaac のソースファイル からユーザーがビルドする必要があります。
同梱されているガイド "TR_OSS_build.htm" にユーザーによるビルドの例を示しています。
fdkaac のライセンスに関しては nu774/fdkaac のページ の下方の License タブに記述があります。
fdkaac.exe が用いている libfdk-aac のライセンス("Fraunhofer FDK AAC license" )については利用者が確認願います。
fdkaac インストール後の TagReplc での設定
ビルドによって生成された fdkaac.exe を適当なフォルダにコピーして、TagReplc.exe のプログラムフォルダにある設定ファイル"TagReplc.ini" の "Fdkaac_Exe" という名前(キー)のパラメタ(エントリ)の値として、fdkaac.exe のパス(フルパス)を記載します。
(例)Fdkaac_Exe=C:\user\app\fdkaac\fdkaac.exe
エンコーダーオプションはREADME に記載されている -b や -m オプション等を設定ファイル"TagReplc.ini" の "Fdkaac_Options" という名前(キー)のパラメタ(エントリ)の値として記載します。
(例)Fdkaac_Options=-m5 (VBR 最高品質)
TagReplc.exe 起動後は Setting ⇒ Encoder option ⇒ fdkaac でオプション文字列を変更できます。
opusenc
opusenc.exe の入手方法
Opus downloads のページの "Development binary builds" の項の中の "opus-tools 0.2 (Opus 1.3)" の Windows をクリックすると "opus-tools-0.2-opus-1.3.zip" がダウンロードされますので、これを解凍してそのなかの "opusenc.exe" を適当なフォルダにコピーします。 "opus-tools-0.2-opus-1.3.zip" は32bit版ですが、64bit版が必要な場合は、下のほうに "Win64 binaries: opus-tools-0.2-win64.zip " という箇所がありますので、ここからダウンロードします。32bit/64bit版のどちらもファイル名は "opusenc.exe" です。
ダウンロードして解凍したフォルダに LICENSE ファイルがありますので確認してください。opusenc.exe には "two clause BSD-style license" が適用されているはずです。
現時点で上記ページからダウンロードできる opusenc.exe は libopus 1.3 (Oct 18, 2018) もしくは libopus 1.3-rc2 (Sep 18, 2018) を利用しているとのことです。一方、現時点での libopus の stable release は libopus 1.5.2 (Apr 12, 2024) です。なお、後述の FFmpeg を "TR_OSS_build.htm" に従ってビルドした場合、Package: mingw-w64-ucrt-x86_64-opus を使いますので、libopus 1.5.2 がインストールされるはずです。
RareWares のページ から libopus 1.5.2 を用いた opusenc.exe をダウンロードできます。但し、実行時に msvcrt.dll が必要になります。エラーが発生する場合は「Visual C++再頒布可能パッケージ 」のインストールを検討してみてください。
opusenc インストール後の TagReplc での設定
ビルドによって生成された opusenc.exe を適当なフォルダにコピーして、TagReplc.exe のプログラムフォルダにある設定ファイル"TagReplc.ini" の "OpusEnc_Exe" という名前(キー)のパラメタ(エントリ)の値として、opusenc.exe のパス(フルパス)を記載します。
(例)OpusEnc_Exe=C:\user\app\opusenc\opusenc.exe
エンコーダーオプションは Encoding options に記載されている --bitrate オプション等を設定ファイル"TagReplc.ini" の "OpusEnc_Options" という名前(キー)のパラメタ(エントリ)の値として記載します。
(例)OpusEnc_Options=--bitrate 192
TagReplc.exe 起動後は Setting ⇒ Encoder option ⇒ OpusEnc でオプション文字列を変更できます。
opusenc.exe が出力するオーディオファイルのコンテナは Ogg (Ogg Opus) ですので拡張子は ".opus" もしくは ".ogg" になります。拡張子の指定は設定ファイル"TagReplc.ini" の "OpusEnc_Ext" という名前(キー)のパラメタ(エントリ)の値として記載します。
現バージョンでの TagReplc.exe では Ogg の構文解析処理機能は備えていないので ".opus" および ".ogg" のプロパティ表示や読み込みはできません。
Android では(オーディオプレーヤーアプリに依りますが).opus や .ogg には対応しているようですが、.mka ではメタデータ(タグ)やアートワークが正しく認識されなかったり、.webm は動画に分類されてしまい認識されないことがあるようです。Walkman では .mka .webm .ogg .opus のいずれにも対応していません。
FFmpeg
FFmpeg のビルド済のバイナリコード("ffmpeg.exe ")は、gyan.dev や BtbN や Winget(id=Gyan.FFmpeg) などから入手できますが、いずれもライセンスが GPL v3 ですので、TagReplc から利用することは(GPLであっても動的リンクライブラリ(.dll)ではなく実行ファイル(.exe)の利用であれば利用するソフト(著作物)はソースコード公開の対象にはならないという見解もありますが、) できれば避けたいところです。また、libfdk-aac を含ませるとバイナリ配布禁止になるのでこれらのビルド済バイナリコードには libfdk-aac は含まれていません。
動画処理用のライブラリには GPL v3 のものが含まれていますが、TagReplc で利用するのは音声処理用ライブラリだけですので、GPL の外部ライブラリを外せば LGPL として "ffmpeg.exe " をユーザーがビルドすることができます。なお、libfdk-aac は LGPL ではありませんが、FFmpeg の License についてのコメント の最終行によれば "To the best of our knowledge, they are compatible with the LGPL." とのことです。
同梱されているガイド "TR_OSS_build.htm" にユーザーによるビルドの例を示しています。
FFmpeg インストール後の TagReplc での設定
ビルドによって生成された ffmpeg.exe を適当なフォルダにコピーして、TagReplc.exe のプログラムフォルダにある設定ファイル"TagReplc.ini" の "FFmpeg_Exe" という名前(キー)のパラメタ(エントリ)の値として、ffmpeg.exe のパス(フルパス)を記載します。
(例)FFmpeg_Exe=C:\user\app\ffmpeg\ffmpeg.exe
エンコーダーオプションはMain options に記載されている "-codec:a " もしくは "-c:a " のあとのオプション文字列を設定ファイル"TagReplc.ini" の "FFmpeg_Options" という名前(キー)のパラメタ(エントリ)の値として記載します。
(例)FFmpeg_Options=libopus -b:a 192k
(例)FFmpeg_Options=libvorbis -q:a 6.0
(例)FFmpeg_Options=libmp3lame -q:a 2
(例)FFmpeg_Options=libfdk_aac -vbr 5
TagReplc.exe 起動後は Setting ⇒ Encoder option ⇒ FFmpeg でオプション文字列を変更できます。
エンコーダーとコンテナの対応 を設定ファイル"TagReplc.ini" の "FFmpeg_Containers" という名前(キー)のパラメタ(エントリ)の値として記載します。
記法は エンコーダーライブラリ名に含まれる部分文字列を "eeee" として、そのエンコーダで生成されるデータを格納するコンテナの拡張子を ".ccc" とした場合 "eeee.ccc" というように記します。例えば、libopus でエンコードしたデータを Matroska Audio コンテナ(.mka)に格納する場合は "opus.mka" とします。WebM に格納する場合は "opus.webm" とします。これらの組み合わせを半角スペースで区切って列挙します。
(例)FFmpeg_Containers=aac.m4a mp3.mp3 flac.flac opus.webm vorbis.webm alac.m4a wma.wma wavpack.wv
メタデータの取り扱い(.mka/.webm)
FFmpeg によるメタデータの EBML(Extensible Binary Meta Language)の <Tags> 要素の中の <TargetTypeValue> 要素が不足しているためか、EBML を用いている .mka や .webm については FFmpeg の出力ファイルの <Tags> 要素部分を TagReplc で書き換えています。
Attached picture の取り扱い(.mka/.webm/.ogg)
.mp3 .m4a .flac 等に対しては FFmpeg のコマンドライン
ffmpeg -i input.wav -i picture.jpg -map 0:a -map 1:v -c:a libfdk_aac -vbr 5 -c:v copy -disposition:1 attached_pic output.m4a
で画像(Image)として追加されますので、TagReplc ではこの書式を用いています。
しかし、.mka では画像(Image)ではなく映像(Video)ストリームとして追加されてしまい、.webm と .ogg では エラーになってしまいます。このエラーに対しては二段階にしたコマンドライン
ffmpeg -i input.wav -c:a libvorbis -b:a 192k temporary.ogg
ffmpeg -i temporary.ogg -i picture.jpg -map_metadata 0 -map 0 -map 1 -c:a copy output.ogg
で(対応する動画エンコーダ(libvpx,libtheora)があれば) エラーを回避できますが .mka と同様に Video Stream で追加されてしまいます。
.mka に対してはコマンドライン
ffmpeg -i input.wav -c:a libopus -b:a 192k -attach picture.jpg -metadata:s:t mimetype=image/jpeg output.mka
で画像(Image)として追加されますので、TagReplc ではこの書式を用いています。
しかし、.webm では -attach オプションは無視されてしまうため、TagReplc で <Attachments> 要素に追加しています。
.ogg ではこの方法でもエラーになってしまうため、設定ファイル"TagReplc.ini" の "FFmpeg_Omit_Pict" で指定して Attached picture は追加しないとしています。
【その他】
設定ファイル :TagReplc.exe 終了時にはそのときの設定がプログラムフォルダにある設定ファイル "TagReplc.ini" に書き込まれ、次回の起動時に初期設定されます。
"TagReplc.ini" をテキストエディタで編集できますが、TagReplc.exe 実行中の編集は避けてください。TagReplc.exe 終了時にその時点での設定で上書きされてしまいます。
また、テキストエディタ編集でフォルダ名などに US-ASCII 以外の文字(全角文字など)を使用した場合には UTF-8 で保存して下さい。(半角英数字だけの場合は Shift_JIS でも UTF-8 でも同じです。)
一般的な「INIファイル」の仕様ではセミコロン(;)以降は「注釈(コメント)」とされていますが、"TagReplc.ini" ではそれは適用されません。よって「qaac インストール後の TagReplc での設定 」において EnvVarPATH で複数のパスの指定は可能です。
バックアップ(Backup)フォルダ :処理で参照されたフォルダAの圧縮音声ファイルを処理後に移動する先のフォルダです。
一時(Temporary)フォルダ :処理のときに作成されるファイルを格納するフォルダです。
インストール直後など、プログラムフォルダに設定ファイル("TagReplc.ini")が無い状態で TagReplc.exe を起動すると、プログラムフォルダにバックアップフォルダ(bkup)と一時フォルダ(temp)が作成されます。これらのフォルダを使わずに、他のフォルダを使う場合には、TagReplc.exe 起動後にそれぞれのアイコンで開かれるダイアログボックスでフォルダを指定します。ダイアログボックスで「新しいフォルダーの作成」も可能です。
アウトプット(Output)フォルダ :アウトプットモードにおいて、処理で生成された圧縮音声ファイルを(一時フォルダにではなく)保存するフォルダです。(参照ファイルのフォルダA⇒バックアップフォルダの移動、生成ファイルの一時フォルダ⇒フォルダA の移動の処理は行われません。)
「ID3 block size」と「Min. padding」
生成するMP3ファイルのID3v2領域の最後に付加するゼロパディングを定義します。
「ID3 block size」は ID3v2領域のバイト数が「ID3 block size」の整数倍になるようにゼロパディングを付加します。
「ID3 block size」がゼロの場合はこの調整は考慮されません。
「Min. padding」は付加するゼロパディングの最小バイト数を定義します。
「パディング」はタグ編集ソフトなどで再編集した際に ID3v2領域に後続するMP3オーディオデータ領域の再書込みを最小に抑えるなどのために設けますのでファイルシステムのクラスタサイズなどを考慮して決めます。NTFS のクラスタサイズは4096byte程度ですが、exFAT などでは32k~256kByteで使われることが多いので、実際には「ID3 block size」の効果的な設定は困難と思われます。
TagReplc は ID3v1 タグを無視します。再エンコードされたMP3ファイルに、MP3オーディオ領域のあとにおかれる ID3v1 タグがあった場合、ID3v1 タグ(128bytes)は継承されません。
【Linux / Wine での使用】
Wine ("WIN dows E mulator" もしくは "W ine I s N ot an E mulator")は Linux 上で Windows用のアプリケーション(.exe)をネイティブのように動作させるための互換レイヤー(ソフトウェア)です。(Wikipedia での解説 )
TagReplc.exe も一部制約はありますが Wine で動作させることが可能です。
なお、下記の動作確認等は Ubuntu 26.04 LTS / Wine 11.0 で行っております。
(とくに パッケージマネージャー(パッケージ管理システム)に関するコマンドは Linux distribution によって異なります。)
Wine のインストール
Ubuntu の標準リポジトリから "sudo apt install wine" でもインストールできますが、Wine 9.0 以降は更新されていないようなので、WineHQ公式リポジトリから最新版(現時点で Wine 11.0)をインストールしてください。
WineHQ版のインストールは
金子邦彦研究室のウェブサイト を参照してください。
Wine インストール後に Wine で動かすアプリでのメニューなどに日本語を表示するための基本フォントの設定を実施してください
sudo apt install winetricks
winetricks cjkfonts corefonts
winetricks cjkfonts は日本語フォントのフォントマッピングを行ってるらしいです。
winetricks corefonts は Windows で用いられる主な欧文フォント(Arial, Times New Roman, Courier New, Tahoma など)の Wine へのインストールを行っているらしいです。
TagReplc.exe から利用するLinuxフレームワークのプラグイン等のインストール
Wine で TagReplc.exe を起動
インストールアーカイブ TagReplc_10??.zip を解凍して TagReplc フォルダを「適当なフォルダ」にフォルダごとコピーします。
端末(ターミナル)を開き、TagReplc.exe のある上記フォルダに移動し、
wine TagReplc.exe
で起動できますが、下記のシェルスクリプト(.sh)で起動したほうが便利です。
#!/bin/bash
export WINEDEBUG=-all
export NO_AT_BRIDGE=1
wine ./TagReplc.exe 2>/dev/null
デスクトップにシェルスクリプトのショートカットを作成すれば、デスクトップから起動できます。
Wine で TagReplc.exe を使うときの留意事項
Wine 環境での C:\ は Linux での "~/.wine/drive_c/" 即ち "/home/<username>/.wine/drive_c/" フォルダにマッピングされます。ここで ".wine" は先頭文字がドット(.)の「隠しフォルダ」です。 一方、Z:\ は Linux のルートディレクトリ(/)にマッピングされています。
増設ドライブや外付けドライブにアクセスする場合は、Linux側でドライブをマウントしてから、Z:\ 経由で指定するか、ターミナルで winecfg を起動して任意(C: Z: 以外)のドライブレターを割り当てるなどを行います。
「CDからイメージファイルを作成する機能」(簡易リッピング)は現時点での Wine 環境では ERROR_NOT_SUPPORTED(エラー50)が発生し動作しないようです。(将来的には Wine が対応できるかもしれないのでこのメニューは有効にしています。)
なお、CD Manipulator (CdManipulator.exe) であれば Linux/Wine 環境でも動作するようですので、CD Manipulator をご利用ください。
Wine には Microsoft IME に相当する日本語辞書データと変換エンジンは搭載されていないので、日本語の曲名を自動変換してASCII文字列のファイル名にする機能は利用できません。
comctl32.dll に関して Wine 内のシステムライブラリの不整合があると「ファイルを開く」のダイアログボックスでクラッシュすることがあります。Wine 標準の内蔵ライブラリに戻すと解決することがあります。
【Windows 11 のセキュリティ機能により起動しない場合の対処方法】
TagReplc.exe はデジタル署名(コード署名)を導入しておりません。
Windows 11 バージョン 22H2 以降には「スマート アプリ コントロール (Smart App Control:SAC)」が搭載されており、とくに バージョン 26H2 以降において、このセキュリティ機能によりデジタル署名の無い TagReplc.exe の起動がブロックされることがあります。
その場合は、お使いのPC環境に合わせて以下のいずれかをお試しください。
対処方法A
プログラムフォルダの TagReplc.exe ファイルを右クリックして「プロパティ」を開き、全般タブの一番下に「許可する」や「ブロックの解除」というチェックボックスがあれば、そこにチェックを入れて「OK」をクリック
対処方法B(方法Aでのチェックボックスが無い場合や方法Aでも起動できない場合)
Windows の「設定」>「プライバシーとセキュリティ」>「Windows セキュリティ」>「アプリとブラウザーの制御」>「スマート アプリ コントロールの設定」>「オフ」または「評価」に変更
※対処方法Bは他の .exe や .dll などにも適用されるため、セキュリティ機能を低下させる可能性があるため十分に注意してお試しください。
(参考:Microsoft のページ )
なお、上記の SAC による起動ブロックは、TagReplc.exe が呼び出す外部エンコーダの .exe や .dll にも同様に適用されます。とくに、MSYS2等でユーザー自身がビルドしたバイナリは、ローカル環境ごとに固有のハッシュ値を持つため、SAC による起動ブロックを受け易い可能性があります。よって個別の外部エンコーダごとに上記の対処方法Aを実施するか、対処方法Bでまとめてブロック解除する必要がある場合があります。
TagReplc.exe は TagReplc.ini (設定ファイル)などで指定されたフォルダに外部エンコーダの .exe や .dll がある場合は、TagReplc.ini 読み込み後にそれぞれの外部エンコーダを起動してバージョンの確認を行いますので、(TagReplc.exe 自体がブロックされずに起動されたとしても)この時点で外部エンコーダはブロックされることがあります。
【本プログラムのアップデート(更新)】
アーカイブファイル(TagReplc_10??.zip)を展開してTagReplcフォルダを現在のTagReplcフォルダに上書きコピー
TagReplc.ini(設定ファイル)はアーカイブファイルには無いので上書きされません。
【本プログラムのアンインストール】
アンインストールは、TagReplc フォルダをまるごと削除します。
但し、TagReplc フォルダの下に作成したバックアップ(bkup)フォルダを使っていた場合には、予め退避させて下さい。
TagReplc はレジストリを使っていません。
C:\Users\(user_name )\AppData\Roaming フォルダなども使っていません。
不要であれば TagReplc 用に作成した一時フォルダやバックアップフォルダも削除します。
【本プログラムについて】
本プログラムは Win32 API を用いた 32bitアプリケーションです。
Microsoft Visual Studio Community 2022 に添付されている
rc.exe (Microsoft ® Windows ® Resource Compiler)
cl.exe (Microsoft ® C/C++ Optimizing Compiler & Incremental Linker)
mt.exe (Microsoft ® Manifest Tool)
Windows SDK のヘッダファイル(.h)とインポートライブラリ(.lib)
を使ってビルドしております。
Win32 API を使っているだけなので Windows デスクトップ環境で動作するはずです。
(当然ですが、64bit Windows でも WOW64 で問題なく動作します。)
実際の動作確認は Windows 11 (64bit) と Linux の Ubuntu 26.04 - Wine 11.0 だけで、それ以外の環境では行っておりません。
上記での「Windows デスクトップアプリケーション」とは UWP (Universal Windows Platform) に対比させた呼称で「Windows PC 向けの従来型アプリケーション」のことを指します。Notebook PC に対する Desktop PC用という意味ではありません。もちろん Notebook PC でも動作します。
本プログラムでは文字列の扱いを基本的には UNICODE で行っています。
本プログラムの動作確認の際に使用したデータ(イメージファイル、MP3ファイルなど)の生成には下記のソフトウェアを用いております。
表8. 動作確認用データの生成に使用したソフトウェア
イメージファイル形式 MP3 encoding FLAC encoding AAC encoding
CDex .wav + .cue lame_enc.dll libFLAC_dynamic.dll libfaac.dll
fre:ac .wav + .cue (LAME.dll) (FLAC.dll) (FAAC.dll,FDK-AAC.dll)
Exact Audio Copy .wav + .cue lame.exe flac.exe
ImgBurn .bin + .cue N.A.
CD Manipulator .img + .cue N.A.
【本ソフトウェアで利用しているオープンソースソフトウェア】
TagReplc.exe のビルドでは、下記のオープンソースソフトウェアの一部をソースコードに埋め込む、もしくはスタティックライブラリを(静的)リンクしています。
表9. 本ソフトウェアで利用しているオープンソースソフトウェア
名称 ライセンス形式 開発者 TagReplc での用途 利用形態
libguess (Gauche) BSD-3-Clause permissive Shiro Kawai SJIS/UTF-8判定 ソースコード部分埋込み
crc64.c ISC license permissive ISC FileUID(Matroska) ソースコード部分埋込み
※個々のライセンス条項は LICENSE_oss.txt を参照してください。(public domain を除く)
※TagReplc.exe 実行時に動的ロードして利用される可能性があるバイナリコードであっても、インストールアーカイブ TagReplc_10??.zip に同梱(バンドル)されていない外部ソフトウェアは上記リストには含めておりません。
【著作権および免責事項】
本ソフトウェアおよび本取扱説明書に関する著作権はすべて作者(KinJ)が保有します。
本ソフトウェアを使用した上で生じた如何なる損害(一次的、二次的に関わらず)について作者(KinJ)は一切の責任を負いません。
本ソフトウェアを使用する際に発生する、本ソフトウェアのインストールアーカイブに同梱(バンドル)されていないバイナリコード(.dll や .exe)の使用に関するライセンス等については利用者が確認し、利用者の責任において使用されるものとします。
本ソフトウェアの保守を行う義務を作者(KinJ)は負いません。
利用者からのバグ報告、要望、質問等について、受信、確認、検討、回答する義務を作者(KinJ)は負いません。
本ソフトウェアはフリーウェアです。個人・法人に限らず利用者は無料で使用することができます。
本ソフトウェアの配布や導入による対価で利益を得る行為(商用利用)は禁じます。
製品名などは(商標マーク・登録商標マークの有無にかかわらず)各社の商標・登録商標です。
この文書の内容およびソフトウェアの意匠、仕様は、予告なしに変更されることがあります。
【更新履歴】
1.06 (2026/10/08)
・Linux の Wine 環境でも安定に動作できるように一部のコードの改変およびリファクタリングを行った
1.05 (2026/01/29)
・CDからイメージファイルを取り込む機能を追加
1.04 (2025/10/01)
・イメージファイルのエンコードに使用できるコマンドラインツールに fdkaac.exe, opusenc.exe, ffmpeg.exe を追加
・対象とする圧縮音声ファイルに Matroska(.mka) と WebM(.webm) を追加
1.03 (2025/05/17)
・MP4 のジャンルの表示を修正
・CDイメージのCUEシートで読み込んだデータについて CDDB から楽曲情報入手
・CDイメージから Folder-A の楽曲情報ではなく自身の楽曲情報に基づいてエンコードファイルを生成するオプションを追加
・フォルダの全ての CDイメージに対し一括して前項の機能を適用するオプションを追加
1.02 (2024/07/23)
・対象とする圧縮音声ファイルに FLAC(.flac) と MP4(.m4a) を追加
・イメージファイルのエンコードに使用できるバイナリコードに libFLAC.dll と qaac.exe を追加
・一括再エンコード機能の追加
・Backup モードに加え Output モードを追加
・Misc File Copy Utility と Playlist Extension Replacement Utility を追加
・音声ファイル簡易再生するための API として MCI(Media Control Interface) のほかに MF(Media Foundation) の利用を追加した
・ツールヒント(Tooltip)表示
1.01 (2021/04/21)
・イメージファイルのエンコード機能追加
・表示、更新の対象とするフレームに TENC を追加
・プロパティ表示
・フォルダ名表示幅をメインウィンドウのリサイズに連動
1.00 (2021/02/17)
・初版公開
【メールアドレス】 knmsc.kinj@gmail.com
Copyright © 2021-2026 Kinjo-no-Jijii (KinJ).