10月 04

追記
# 下記環境整えるのは激しく手間なので「Xrecode II」がおすすめのようです
# flac alac のcue解釈するみたいだし相互変換ツールとして優秀のようです

 
可逆形式をflacからalacことiTunesのapple losslessに移行することにした。
次のDAPはiPod買うことになるだろうし。touch8GB欲しい。

 ・・・さて、実はこの記事の下書きでは現在のもの以上に超長く、移行の過程をいろいろ書いてたんだけどもうイライラするほど環境整備に手間がかかって感情8割入れて書いてたら長くなりすぎた。ので、もう短絡して作業メモだけ残して後人の糧として見やすくしておきます。今回の実現条件は次の通り。
 

  • alac再生プレイヤソフトはfrieve audio
  • 形式相互変換のフロントエンドにはfoobar2000
  • 可逆単一アルバムファイル+cue(flac+cue/alac+cue/ape+cueなど)
    をfoobar2000で読み、FrieveAudioやDAP(iPod)向けに
    選択的に楽曲を単曲alacエンコードできること

 
 まず事を始める前に、OSはXP以降がないと一連の上の条件をクリアできません。というのも、ここではfoobar2000をフロントエンドにし手軽に自動でflac<->alac変換できる環境整備を目的としてます。もちろん、全工程手動であればwindows2000などXP以前の環境で、一旦flacをwavに戻した後にiTunesに持ち込んでロスレスエンコードすれば同じことができます。
 また、flac->alac変換で検索するとdbpoweramp music converterを使えば?といった内容のページが日本語・英語サイトまとめてひっかかりますが、この変換アプリはcueを理解しないのでflac+cue管理している人には役に立ちません。もちろん同様に、一旦flacから目的の単曲をwavにしてdbpowerに持ち込めば単曲alac化はできると思います。
 ここでの説明は、そんな手間掛かることしたくない人向けの情報まとめです。foobar2000のリストから右クリックで形式変換できる利便性を追求しています。

 
 
■Frieve Audioでの再生環境整備
次のDirectShowフィルタを入れる。
これはalacの他、flacやtta、ape等も再生できるのでfrieve audio向けに最適。
http://www.dsp-worx.de/?n=15

■foobar2000v0.9.5.xでのalacデコード環境整備
形式の相互変換にはfoobar2000v0.9.5以降を用意。
公式からfoo_in_alac.dllを落としてcomponentへ入れる。
また、apeやtta等からalacに移行したい人は
当然それぞれのinputプラグインを導入してください。
これでデコード環境は完成。

■foobar2000v0.9.5.x+iTunes+QuickTimeでのalacエンコード環境
下のiTunesEncode.exeを落として
foobar2000の外部コマンドラインエンコーダに指定する。
エンコードには別途iTunes4.7以降(+QuickTime)が必要。
http://rarewares.org/aac-encoders.php#itunesencode

■外部コマンドライン設定
Extension: m4a
Parameters: -e “Lossless Encoder” -a “%artist%” -l “%album%” -t “%title%” -g “%genre%” -y %date% -n %tracknumber% -d -i %s -o %d
Format is: lossless
Highest BPS mode supported: 32
Encoder name: Apple Lossless

■エンコード時にError flushing file (Object not found)が出たら
CPUがマルチコアで複数曲同時にエンコードするとこれが出る場合がある。設定のAdvanced->tools->converterのThread Countを1に設定して回避。

単曲エンコードでも同じエラーが出るなら先にiTunesを立ち上げておく。alacの外部コマンドライン設定においてHighest BPS mode supportedを標準の16にし、その手前のconverter設定画面にてkeep lossless sources at original bit depthのチェックを外したりして試してみる。

このエラーは挙動不審で再現性がよくわからない。
おそらくfoobar2000でのalacエンコードの仕組みが
1) foobar2000でまず一時wavに書き出し
2) それをiTunesに持っていってエンコード
3) 一時ファイルを削除
という、2つのアプリを跨いで自動処理しているから
それぞれの受け渡し時にタイミング問題が出ているっぽい。
iTunesEncodeのreadmeにあるようにエンコードオプションに
-s オプションをつけて連携処理時の遅延をもっとつけてやれば
解決できるかもしれない。デフォルトは4000(4秒)
なのでこれを-s 10000(10秒)とか。

 
おしまい。

 
 
…といろいろ書いておきながら
やっぱりflac+cueをベースに個別書き出しをalacにした。
理由はこちら→FlacとAlacのデコード速度比較

Comments are closed.