# WAV ⇄ FLAC Converter

概要: WAVファイルとFLACファイルを相互変換するツールです。メタデータ(タグ情報)とカバーアート画像の保持に対応しています。

## 主な機能

- WAV → FLAC 変換
- FLAC → WAV 変換
- メタデータの保持(タイトル、アーティスト、アルバム、日付、ジャンル、トラック番号、コメント、アルバムアーティスト、作曲者)
- カバーアート画像の保持
- サンプリング周波数は元ファイルから変更しません
- ビット深度の自動判定(16bit/24bit/32bit)
- ドラッグ&ドロップ操作に対応（ファイルとフォルダ両方）
- フォルダ内の全WAV/FLACファイルを一括処理（サブフォルダは除く）

## 配布ファイル

- `wav_flac_converter.exe`
- `wav_flac_converter_readme.html`
- `wav_flac_converter_readme_en.html`

## 必要環境

- OS: Windows 10 / 11 (64-bit)
- FFmpeg: 32bit FLACファイルの変換に必要（16bit/24bit FLACの変換には不要）
  - FFmpeg公式サイトからダウンロード
  - 環境変数PATHへの登録が必要です

注意: 16bit/24bitのFLACファイルの変換にはFFmpegは不要です。32bit FLACファイルを変換する場合のみFFmpegが必要になります。

## 使用方法

1. 変換したいWAV/FLACファイル、またはそれらが入ったフォルダを`wav_flac_converter.exe` (あるいはそのショートカット) にドラッグ&ドロップします
2. 変換が完了すると、元のファイルと同じフォルダに変換後のファイルが作成されます
3. 複数のファイルやフォルダを一度にドロップすることもできます
4. フォルダをドロップした場合、そのフォルダ直下のWAV/FLACファイルのみ処理されます（サブフォルダは除外）

## 変換の詳細

### WAV → FLAC 変換

- 圧縮レベル: 0.625 (FLAC標準の圧縮率)
- ビット深度: 元のWAVファイルのビット深度を維持(16bit/24bit/32bit)
- メタデータ: RIFF INFOチャンクおよびID3v2タグから読み取り、FLACタグに変換
- カバーアート: WAVファイル内のID3v2埋め込み画像、または同じフォルダ内の画像ファイルから取得

カバーアート検索順序:

1. WAVファイル内のID3v2埋め込み画像
2. `[ファイル名]_cover.jpg` / `[ファイル名]_cover.png`
3. `cover.jpg` / `cover.png`
4. `folder.jpg` / `folder.png`

### FLAC → WAV 変換

- ビット深度: 元のFLACファイルのビット深度を維持(16bit/24bit/32bit float)
- メタデータ: FLACタグから読み取り、ID3v2.3タグのみに書き込み（RIFF INFOチャンクは書き込みません）
- カバーアート: FLAC埋め込み画像をWAVファイルのID3v2タグに埋め込み
- 32bit FLAC: soundfileで対応できない場合、自動的にFFmpegで変換

## 対応メタデータ

重要: このツールはWAVファイルにID3v2.3タグのみを書き込みます。RIFF INFOチャンクは使用しません。

メタデータ項目 | FLACタグ | WAV (ID3v2.3)
--- | --- | ---
タイトル | title | TIT2
アーティスト | artist | TPE1
アルバム | album | TALB
日付 | date | TDRC
ジャンル | genre | TCON
トラック番号 | tracknumber | TRCK
コメント | comment | COMM
アルバムアーティスト | albumartist | TPE2
作曲者 | composer | TCOM

## 出力ファイル名

- 基本: `元のファイル名.新しい拡張子`
- 同名ファイルが存在する場合: `元のファイル名_converted.新しい拡張子`

例:

- `song.wav` → `song.flac`
- `music.flac` → `music.wav`
- `track.wav` (既に`track.flac`が存在) → `track_converted.flac`

## エラー処理

- ファイルが見つからない場合、該当ファイルのエラーメッセージが表示されます
- 対応していない形式のファイルの場合、スキップされます
- 変換中にエラーが発生した場合、エラーメッセージが表示され、次のファイルの処理を続行します

## 技術仕様

### 変換方法

- 完全ロスレス変換: PCMデータを直接転送するため、音質劣化は一切ありません
- ビット深度保持: 16bit/24bit/32bit floatを完全に維持
- サンプリングレート保持: リサンプリングなし（44.1kHz、48kHz、96kHz等をそのまま保持）
- 使用ライブラリ:
  - soundfile: 音声データの読み書き
  - mutagen: メタデータの読み書き
  - FFmpeg: 32bit FLAC変換のフォールバック

### WAVファイルのメタデータ構造

- ID3v2.3 タグ: このツールで使用する形式。カバーアート埋め込みに対応
- RIFF INFO チャンク: このツールでは使用しません（読み取りのみ対応）

### FLACファイルのメタデータ構造

- Vorbis Comments: FLAC標準のメタデータ形式
- Picture ブロック: カバーアート画像の埋め込み

## 制限事項

- 対応形式: WAVとFLACのみ
- フォルダをドロップした場合、サブフォルダ内のファイルは処理されません
- メタデータのエンコーディングはUTF-8です
- カバーアート画像の形式はJPEGとPNGに対応しています
- 32bit FLACの変換にはFFmpegが必要です（16bit/24bitは不要）

## ライセンス

このスクリプトは自由に使用・改変できます。