Vine 2.1(2.2.17 FTP版)を使用しています。
cdrdaoで音楽CDを焼く時のTOCファイルについて質問があります。
MP3ファイルをcdrdaoを使って音楽CDに焼くために、ディレクトリ
内のMP3ファイルを元にtocファイルを作成するためのperlスクリ
プトを作成しました。
tocファイルを作成しディレクトリMP3ファイルを一つのファイルに
連結し、それをwavファイルに変換するのですが、CDに書き込む前に
cdrdao show-toc を実行すると下記のようなエラーが発生します。
[takehiro@server01 System F - Out Of The Blue]$ cdrdao show-toc cd.toc
Cdrdao version 1.1.4 - (C) Andreas Mueller <mue...@daneb.ping.de>
SCSI interface library - (C) Joerg Schilling
L-EC encoding library - (C) Heiko Eissfeldt
Paranoia DAE library - (C) Monty
Check http://cdrdao.sourceforge.net/drives.html#dt for actual driver tables.
ERROR: cd.toc:25: Illegal fraction field: 79
ERROR: cd.toc:41: Illegal fraction field: 85
ERROR: cd.toc:57: Illegal fraction field: 92
ERROR: cd.toc:73: Illegal fraction field: 82
ERROR: cd.toc:97: Illegal fraction field: 97
エラーが出るtocファイルの行は下記のようになっています。
25行目: FILE "data.wav" 14:09:79 03:54:39
^^
41行目: FILE "data.wav" 25:53:85 06:44:52
^^
57行目: FILE "data.wav" 36:55:92 06:36:25
^^
73行目: FILE "data.wav" 50:47:60 07:11:82
^^
97行目: FILE "data.wav" 68:57:56 04:20:97
^^
tocファイル内の1曲の再生時間等の小数点の表示形式が
原因になっているようで、75よりも小さい数字だとエラー
が出ないということが分かりました。
ちなみにエラーが出ない部分は下記のようになっています。
FILE "data.wav" 57:59:42 03:45:61
cdrdaoで音楽CDから作成したTOCファイルの曲の再生時間
の小数点部分をわざと75以上に変更すると同様のエラー
がでるため、間違いなく小数点の部分は75以下でないと
いけないようなのですが、どうして75以下でないといけ
ないのかが分かりません。何か特別な時間の表示形式が
あるのでしょうか。
cdda2wavで1曲ずつ音楽CDのリッピングをしたときにinf
という拡張子のついたWAVファイルの情報ファイルができ
ていました。
#created by cdda2wav 1.8.1_linux_2.2.17-0vl10_i586_i586 01/04/01 00:03:43
#
CDINDEX_DISCID= 'aj.lwU3RArTWh1Hd8Kud.wY4DEY-'
CDDB_DISCID= 0xce124611
MCN=
ISRC=
#
Albumtitle= ''
Tracktitle= ''
Tracknumber= 1
Trackstart= 0
# track length in sectors (1/75 seconds each), rest samples
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Tracklength= 6177, 0
Pre-emphasis= no
Channels= 2
Copy_permitted= no
Endianess= little
# index list
Index= 0
1/75 seconds eachというのがヒントになると思いますが、この1/75
seconds eachというのはどういうことなのでしょうか。
申し訳ありませんが、よろしくお願いします。
At 6:23 PM +0900 01.2.25, Takehiro Maeda wrote:
> cdrdaoで音楽CDから作成したTOCファイルの曲の再生時間
> の小数点部分をわざと75以上に変更すると同様のエラー
> がでるため、間違いなく小数点の部分は75以下でないと
> いけないようなのですが、どうして75以下でないといけ
> ないのかが分かりません。何か特別な時間の表示形式が
> あるのでしょうか。
小数以下の部分は、フレームと呼ばれる単位で表します。
規格上1秒75フレームとなっています。
Katsumi Ishida
k.i. office ( C/C++, Java, Lingo, Xtra dev )
address : 1-6-4 Nakameguro Meguro-ku Tokyo 153-0061 Japan
voice : +81-3-5721-6809
fax : +81-3-5721-6808
e-mail : k-is...@kk.iij4u.or.jp
Takehiro Maeda <take...@cyborg.ne.jp> wrote;
Subject: [linux-users:80631] toc ファイルの作成
> tocファイル内の1曲の再生時間等の小数点の表示形式が
> 原因になっているようで、75よりも小さい数字だとエラー
> が出ないということが分かりました。
> 1/75 seconds eachというのがヒントになると思いますが、この1/75
> seconds eachというのはどういうことなのでしょうか。
前田さんが気づかれたその通りで 、CD の 1 秒の単位の
その下は frame と呼ばれ 1/75 秒に相当します。
> FILE "data.wav" 57:59:42 03:45:61
これを例にすると、前半の 57:59:42 は CD の先頭からの
data.wav の始まる絶対時間だと思うのですが、57 min
59 sec 42 frame です。後半は data.wav の長さでしょう。
一番下の桁の計算を 75 進にすれば ok ですね。
--
akihiro takada
From: Takehiro Maeda <take...@cyborg.ne.jp>
Subject: [linux-users:80631] toc ファイルの作成
Date: Sun, 25 Feb 2001 18:23:10 +0900
Message-ID: <2001022518...@compaq.maeda.toyoake.or.jp>
> こんばんわ、前田です。
> ...
> MP3ファイルをcdrdaoを使って音楽CDに焼くために、ディレクトリ
> 内のMP3ファイルを元にtocファイルを作成するためのperlスクリ
> プトを作成しました。
>
> tocファイルを作成しディレクトリMP3ファイルを一つのファイルに
> 連結し、それをwavファイルに変換するのですが、CDに書き込む前に
> cdrdao show-toc を実行すると下記のようなエラーが発生します。
直接の答えではありません。
1曲に1つの wav ファイルを作れば、
時間指定の必要はなくなりますが、それでは不都合でしょうか。
cdrdao-1.1.4 なら toc ファイルに
TRACK AUDIO
FILE "01track.wav" 0
TRACK AUDIO
FILE "02track.wav" 0
....
のような感じで並べるだけで十分役に立ちました。
mp3 から wav への変換は mpg123 なんかでできますね。
-----
土村 展之 Nobuyuki Tsuchimura
tuti...@nn.iij4u.or.jp
http://www.nn.iij4u.or.jp/~tutimura/
早速のお返事ありがとうございます。
Sun, Feb 25, 2001 at 06:45:22PM +0900 において
a...@phoenixeng.co.jp さん曰く:
> こんにちわ。
>
> 前田さんが気づかれたその通りで 、CD の 1 秒の単位の
> その下は frame と呼ばれ 1/75 秒に相当します。
>
> > FILE "data.wav" 57:59:42 03:45:61
>
> これを例にすると、前半の 57:59:42 は CD の先頭からの
> data.wav の始まる絶対時間だと思うのですが、57 min
> 59 sec 42 frame です。後半は data.wav の長さでしょう。
>
> 一番下の桁の計算を 75 進にすれば ok ですね。
>
75進数というのを検索エンジンで調べましたが全く引っかかり
ませんでした。
これは小数点以下の部分に75/100をかければいいのでしょうか。
小数点の部分は10進数で表示されております。
よろしくお願いします。
早速のアドバイスありがとうございます。
Sun, Feb 25, 2001 at 06:53:34PM +0900 において
Nobuyuki Tsuchimura さん曰く:
>
> 直接の答えではありません。
> 1曲に1つの wav ファイルを作れば、
> 時間指定の必要はなくなりますが、それでは不都合でしょうか。
> cdrdao-1.1.4 なら toc ファイルに
>
> TRACK AUDIO
> FILE "01track.wav" 0
> TRACK AUDIO
> FILE "02track.wav" 0
1曲に1つのwavファイルで曲と曲の間に2秒間のギャップは出来ませんか?
まだ試していないのですが、とりあえず75進数の表示の仕方を調べてや
ってみようと思います。
どうもありがとうございました。
Takehiro Maeda <take...@cyborg.ne.jp> wrote;
Subject: [linux-users:80638] Re: toc ファイルの作成
> 75進数というのを検索エンジンで調べましたが全く引っかかり
> ませんでした。
んー、CD 回してる人ぐらいですかね?普通は使いませんよね。
> 小数点の部分は10進数で表示されております。
ここは、前田さんの思い込だと思います。最下位の二桁は 1/100
秒表示じゃなくて、1/75 秒表示です。00 ~ 74 の値を取ります。
# 説明が悪かったのかも・・・。
あとは筆算を思い出してみてください。
--
akihiro takada
From: Takehiro Maeda <take...@cyborg.ne.jp>
Subject: [linux-users:80639] Re: toc ファイルの作成
Date: Sun, 25 Feb 2001 21:07:03 +0900
> 1曲に1つのwavファイルで曲と曲の間に2秒間のギャップは出来ませんか?
> まだ試していないのですが、とりあえず75進数の表示の仕方を調べてや
> ってみようと思います。
wavファイルの再生時間よりも、サンプル数を求めて、それを588で割る
のはどうでしょうか。割り切れないときは、小数点以下切り上げします。
そうすると全フレーム数totalframeが求まります。
そのフレーム数を75で割ると秒になり、それを60で割ると分になります。
44100kHz/588 = 75Hz
frame = totalframe%75;
sec = (totalframe/75)%60;
min = (totalframe/75/60);
----
小山満 mk...@sannet.ne.jp
またまたのアドバイスありがとうございます。
> > 小数点の部分は10進数で表示されております。
>
> ここは、前田さんの思い込だと思います。最下位の二桁は 1/100
> 秒表示じゃなくて、1/75 秒表示です。00 ~ 74 の値を取ります。
>
> # 説明が悪かったのかも・・・。
>
> あとは筆算を思い出してみてください。
ここなのですが、MP3ファイルの再生時間を取得するときにMP3-Info-0.91
というモジュールを使用しております。
http://www.cpan.org/modules/by-module/MP3/
上記のモジュールでミリ秒単位を求めているため、10進数になってしまい
ます。そのため、Perlスクリプトでミリ秒から1/75秒表示にする必要があ
るようですが、思い付くのがミリ秒に3/4をかけることぐらいです。
このモジュールがミリ秒だけ1/75秒表示で再生時間を取得できれば言うこ
となしなのですが、何かいい方法ありましたら教えて下さい。
よろしくお願いします。
From: Takehiro Maeda <take...@cyborg.ne.jp>
Subject: [linux-users:80639] Re: toc ファイルの作成
Date: Sun, 25 Feb 2001 21:07:03 +0900
Message-ID: <2001022521...@compaq.maeda.toyoake.or.jp>
> こんばんわ、前田です。
> > 直接の答えではありません。
> > 1曲に1つの wav ファイルを作れば、
> > 時間指定の必要はなくなりますが、それでは不都合でしょうか。
> > cdrdao-1.1.4 なら toc ファイルに
> >
> > TRACK AUDIO
> > FILE "01track.wav" 0
> > TRACK AUDIO
> > FILE "02track.wav" 0
>
> 1曲に1つのwavファイルで曲と曲の間に2秒間のギャップは出来ませんか?
上記で作った CD を読み込んでみましたが、
できた toc を見る限りギャップはできてませんし、
音を聞いても特に途切れていません。
ギャップをつくるには、
PREGAP 00:02:00
などと書く必要がありそうです...
くわしくは man を見ていただくのがよいかと...
土村さん、ありがとうございました。
まだCDを焼いて実際に試してはいませんが、一つの曲ごとに
wavファイルを作成してみようとおもいます。
とりあえずディレクトリ内のmp3ファイルを自動的にwavファイルに
変換してtocファイルを作成するためのPerlを作成して、cdrdao
show-tocで確認しましたが、こちらはどのようなディレクトリでも
通りましたので、恐らく問題なく焼けると思います。
いまCDRがある環境がないので実際に確認が出来ませんが、焼けたら
報告しようと思います。
一つのファイルに連結して曲の再生時間を求めるやり方は、かなり
思考錯誤しましたが、1/75秒表示のしかたがうまくいかず、断念し
ようと思います。
どうもありがとうございました。