Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

toc ファイルの作成

475 views
Skip to first unread message

Takehiro Maeda

unread,
Feb 25, 2001, 4:23:10 AM2/25/01
to linux...@linux.or.jp
こんばんわ、前田です。

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というのはどういうことなのでしょうか。

申し訳ありませんが、よろしくお願いします。

Katsumi Ishida

unread,
Feb 25, 2001, 4:36:52 AM2/25/01
to linux...@linux.or.jp
こんばんわ。
石田と申します。

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

a...@phoenixeng.co.jp

unread,
Feb 25, 2001, 4:45:22 AM2/25/01
to linux...@linux.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


Nobuyuki Tsuchimura

unread,
Feb 25, 2001, 4:53:34 AM2/25/01
to linux...@linux.or.jp
土村@京都と申します。

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/

Takehiro Maeda

unread,
Feb 25, 2001, 7:02:41 AM2/25/01
to linux...@linux.or.jp
こんばんわ、前田です。

早速のお返事ありがとうございます。

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進数で表示されております。

よろしくお願いします。

Takehiro Maeda

unread,
Feb 25, 2001, 7:07:03 AM2/25/01
to linux...@linux.or.jp
こんばんわ、前田です。

早速のアドバイスありがとうございます。

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進数の表示の仕方を調べてや
ってみようと思います。

どうもありがとうございました。

a...@phoenixeng.co.jp

unread,
Feb 25, 2001, 8:05:18 AM2/25/01
to linux...@linux.or.jp
こんばんわ。

Takehiro Maeda <take...@cyborg.ne.jp> wrote;
Subject: [linux-users:80638] Re: toc ファイルの作成

> 75進数というのを検索エンジンで調べましたが全く引っかかり
> ませんでした。

んー、CD 回してる人ぐらいですかね?普通は使いませんよね。

> 小数点の部分は10進数で表示されております。

ここは、前田さんの思い込だと思います。最下位の二桁は 1/100
秒表示じゃなくて、1/75 秒表示です。00 ~ 74 の値を取ります。

# 説明が悪かったのかも・・・。

あとは筆算を思い出してみてください。
--
akihiro takada


Koyama Mituru

unread,
Feb 25, 2001, 8:08:52 AM2/25/01
to linux...@linux.or.jp
小山です。

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

Takehiro Maeda

unread,
Feb 25, 2001, 9:31:16 AM2/25/01
to linux...@linux.or.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秒表示で再生時間を取得できれば言うこ
となしなのですが、何かいい方法ありましたら教えて下さい。

よろしくお願いします。

Nobuyuki Tsuchimura

unread,
Feb 25, 2001, 11:29:34 AM2/25/01
to
土村@京都です。

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 を見ていただくのがよいかと...

Takehiro Maeda

unread,
Feb 26, 2001, 10:04:31 AM2/26/01
to
こんばんわ、前田です。

土村さん、ありがとうございました。
まだCDを焼いて実際に試してはいませんが、一つの曲ごとに
wavファイルを作成してみようとおもいます。

とりあえずディレクトリ内のmp3ファイルを自動的にwavファイルに
変換してtocファイルを作成するためのPerlを作成して、cdrdao
show-tocで確認しましたが、こちらはどのようなディレクトリでも
通りましたので、恐らく問題なく焼けると思います。

いまCDRがある環境がないので実際に確認が出来ませんが、焼けたら
報告しようと思います。

一つのファイルに連結して曲の再生時間を求めるやり方は、かなり
思考錯誤しましたが、1/75秒表示のしかたがうまくいかず、断念し
ようと思います。

どうもありがとうございました。

0 new messages