let’s encode with lame と iTunes 7 でエラー

iTunes 7 で、let's encode with lame を使ってCDをエンコードをするとターミナルに指示が渡ったところでエラーが出る。Can't make 1203.199951171875 to a integer.

(数字はCDによって異なる)
調べてみると、タイムアウト処理の数値が問題のようだ。
タイムアウト用の数値を整数に丸める処理を加えたらエラーは出なくなった。

190行目あたり(自分のは若干カスタマイズしてあるので行数が違うかも)の
if version_itunes
がならんでいるあたり。トラックのパラメータを変数に収めているところで、duration (継続時間) をタイムアウト秒数の基準にしている。
この数値が小数点を含んでいて、上記のエラーが発生するらしい。
tell i_track
:
(中略)
:
end tell
の直後に、
set timeout_sec to round timeout_sec
を入れることで数値が丸められ、正常動作するようになる(はず)。

Leave a Reply