CUE2TOC(1) General Commands Manual CUE2TOC(1)

cue2toc - تبدیل فرمت CUE به TOC

cue2toc [-hnqv] [-o tocfile] [-w wavefile] [cuefile]

دستور Cue2toc پرونده cuefile را از قالب CUE به قالب TOC تبدیل کرده و نتیجه را در tocfile. می‌نویسد. اگر هر یک از پرونده‌های cuefile یا tocfile مشخص نشوند یا یک خط تیره منفرد "-" قرار داده شود، cue2toc به ترتیب از ورودی استاندارد می‌خواند و در خروجی استاندارد می‌نویسد.

فایل‌های CUE پرونده‌های متنی هستند که ساختار و چیدمان یک CD-Rom را توصیف می‌کنند و معمولاً پسوند ".cue" دارند.

نرم‌افزار Cdrdao یک برنامه رایت CD است که قالب TOC بومی خود را برای توصیف ساختار دیسک دارد. هرچند cdrdao از خواندن مستقیم فایل‌های CUE پشتیبانی می‌کند، اما در حال حاضر این قابلیت تنها به شیارهای داده محدود است. بنابراین کاربرد اصلی cue2toc در تبدیل فایل‌های CUE حاوی شیارهای صوتی است.

خروجی داده‌های CD-Text را می‌توان با گزینه -n غیرفعال کرد.

فایل‌های CUE اغلب همراه با فایل‌های MP3 ارائه می‌شوند، اما از آنجا که cdrdao از رمزگشایی همزمان و در لحظه آن‌ها پشتیبانی نمی‌کند، احتمالاً باید قبل از رایت CD با روش‌های دیگری (مثلاً با استفاده از lame) رمزگشایی شوند. به همین دلیل می‌توانید با استفاده از گزینه -w یک نام فایل مشخص کنید تا به‌جای نام فایل موجود در پرونده CUE، برای تمامی شیارهای صوتی استفاده شود. البته این ویژگی تنها زمانی واقعاً مفید است که تمام شیارها مبتنی بر همان فایل یکسان باشند؛ با این حال به نظر می‌رسد این مورد در اکثر مواقع صادق است.

دستور Cue2toc به‌طور معمول پیام‌های هشداری را برای دستورات و ساختارهای پشتیبانی‌نشده نمایش می‌دهد. گزینه -q این هشدارها را غیرفعال می‌کند.

نمایش یک پیام راهنمای کوتاه
بدون CD-Text؛ غیرفعال کردن خروجی اطلاعات CD-Text
نوشتن نتیجه در tocfile به‌جای خروجی استاندارد
حالت بی‌صدا؛ هشداری چاپ نشود
نمایش شماره نسخه
استفاده از wavefile برای تمامی شیارهای صوتی

آنچه در ادامه می‌آید توصیفی از قالب CUE مورد انتظار cue2toc است. برای اطلاعات بیشتر در مورد قالب TOC لطفاً به صفحه راهنمای cdrdao(1) مراجعه فرمایید.

فایل‌های CUE شامل دستورات و آرگومان‌های آن‌ها هستند که باید با هر تعداد نویسه فاصله خالی (whitespace) از یکدیگر جدا شوند. فاصله (Space)، تب افقی، خط جدید (newline) و بازگشت به ابتدای خط (carriage return) به عنوان نویسه‌های فاصله خالی شناخته می‌شوند مگر در داخل رشته‌های محصور در علامت نقل‌قول دوتایی، که در آنجا بخشی از خود رشته محسوب می‌شوند. دستورات به بزرگی و کوچکی حروف حساس نیستند. داده‌های CD-Text می‌توانند حداکثر ۸۰ نویسه برای هر مورد باشند.

مقادیر کُد زمانی به قالب‌های "X:X:X"، "X:X" و "X" پذیرفته می‌شوند که در آن‌ها هر "X" باید حداکثر از دو رقم تشکیل شده باشد و ممکن است با صفر از سمت چپ پر شود. این مقادیر به ترتیب به‌صورت "M:S:F"، "S:F" و "F" تفسیر می‌شوند که در آن "M" به معنای "دقیقه" است و باید در محدوده 0 <= M <= 99 باشد، "S" به معنای "ثانیه" است و باید در محدوده 0 <= S <= 59 باشد، و "F" به معنای "فریم" است و باید در محدوده 0 <= F <= 74 باشد.

فایل‌های CUE از نظر منطقی به یک بخش عمومی و یک تا ۹۹ بخش شیار تقسیم می‌شوند. در داخل این بخش‌ها دستورات زیر مجاز هستند:

REM anything_to_newline
CATALOG string
CDTEXTFILE string
TITLE string
PERFORMER string
SONGWRITER string
FILE string BINARY|MOTOROLA|AIFF|WAVE|MP3

اختیاری. معرفی یک یادداشت (کامنت). هر چیزی از آن نقطه تا نویسه خط جدید بعدی نادیده گرفته می‌شود. یادداشت‌ها می‌توانند در هر جای فایل قرار گیرند، اما نه بین یک دستور و آرگومان‌های آن.
اختیاری. شماره کاتالوگ رسانه (MCN) دیسک. باید دقیقاً ۱۳ نویسه باشد.
اختیاری. یک فایل خارجی حاوی داده‌های CD-Text را مشخص می‌کند. نادیده گرفته می‌شود.
اختیاری. عنوان CD-Text دیسک.
اختیاری. مجری یا خواننده CD-Text دیسک.
اختیاری. ترانه‌سرای CD-Text دیسک.
الزامی. نام و نوع فایلی که باید برای تمامی شیارهای بعدی استفاده شود. string شامل نام فایل است که پس از آن یکی از مقادیر BINARY، MOTOROLA، AIFF، WAVE یا MP3 می‌آید. از نظر cue2toc نوع فایل عملاً نادیده گرفته می‌شود. با این وجود مقادیر MOTOROLA، AIFF و MP3 باعث چاپ یک پیام هشدار می‌شوند زیرا این نوع فایل‌ها نمی‌توانند مستقیماً با cdrdao استفاده شوند.

اولین مشاهده دستور TRACK باعث خروج از بخش عمومی و ورود به بخش شیار می‌شود.

TRACK number mode
REM anything_to_newline
FLAGS [DCP] [4CH] [PRE] [SCMS]
ISRC string
TITLE string
PERFORMER string
SONGWRITER string
PREGAP timecode
INDEX number timecode
POSTGAP timecode
FILE string BINARY|MOTOROLA|AIFF|WAVE|MP3

الزامی. تعریف یک شیار جدید را آغاز می‌کند. مقدار number نادیده گرفته می‌شود. مقدار mode باید یکی از مقادیر AUDIO، MODE1/2048، MODE1/2352، MODE2/2336 یا MODE2/2352 باشد.
اختیاری. فلگ‌های این شیار را تعریف می‌کند. باید پس از آن یک یا چند مورد از گزینه‌های زیر بیاید: DCP (کپی دیجیتال مجاز است)، 4CH (صدای ۴ کاناله)، PRE (تاکید اولیه فعال است) و SCMS (سامانه مدیریت کپی سریال). SCMS نادیده گرفته می‌شود زیرا هیچ گزینه متناظری در قالب TOC برای آن وجود ندارد.
اختیاری. کد استاندارد بین‌المللی ضبط (ISRC) برای این شیار. باید دقیقاً ۱۲ نویسه باشد.
اختیاری. عنوان CD-Text این شیار.
اختیاری. اجراکننده CD-Text این شیار.
اختیاری. ترانه‌سرای CD-Text این شیار.
اختیاری. طول پیش‌فاصله (pregap) شیار که باید با داده‌های صفر پر شود. مانعة‌الجمع با INDEX 0 است.
اختیاری. طول پس‌فاصله (postgap) شیار که باید با داده‌های صفر پر شود.
اختیاری. مقدار number باید در محدوده 0 <= number <= 99 باشد. نمایه شماره ۱ شروع شیار را مشخص می‌کند. نمایه شماره ۰ شروع پیش‌فاصله شیار پرشده با داده‌های فایل است؛ یعنی تفاوت بین نمایه ۰ و نمایه ۱ طول پیش‌فاصله است. نمایه ۰ مانعة‌الجمع با PREGAP است. شماره‌های نمایه بزرگ‌تر از ۱ نمایه‌های فرعی این شیار را مشخص می‌کنند و باید متوالی باشند.
در بخش شیار اختیاری است. نحو آن همان است که در بالا توضیح داده شد و اگر درون مشخصات یک شیار قرار گیرد بر دستور TRACK بعدی اعمال می‌شود.

دستور CDTEXTFILE و فلگ SCMS معادلی در قالب TOC ندارند و نادیده گرفته می‌شوند.

فایل‌های CUE حاوی شیارهای داده‌ای که زمان شروعی بزرگ‌تر از صفر را مشخص می‌کنند نمی‌توانند توسط cue2toc تبدیل شوند زیرا قالب TOC هیچ راهی برای تعیین زمان شروع برای شیارهای داده فراهم نمی‌کند. با این حال اگر فایل CUE حاوی هیچ شیار صوتی نباشد، می‌توانید از فایل CUE مستقیماً در cdrdao استفاده کنید.

فرض کنید فایل CUE زیر به نام "uwe.froehn.cue" را داریم که یک CD صوتی همراه با داده‌های CD-Text را توصیف می‌کند:

REM Example CUE file with audio tracks
CATALOG 1234567890123
TITLE "Der Berg ruft"
PERFORMER "Uwe Froehn"
FILE "uwe.froehn.mp3" MP3
TRACK 01 AUDIO
  TITLE "Meine Mama ist die Beste"
  PERFORMER "Uwe Froehn"
  SONGWRITER "Hansi Klabuster"
  REM two seconds pregap filled with audio data
  INDEX 00 00:00:00
  INDEX 01 00:02:00
  REM subindexes
  INDEX 02 00:35:17
  INDEX 03 01:12:44
TRACK 02 AUDIO
  TITLE "Hoch oben im Tal"
  SONGWRITER "Gabi Geil"
  REM no pregap
  INDEX 01 02:45:38
TRACK 03 AUDIO
  REM pregap with zero data
  PREGAP 00:4:47
  INDEX 01 07:58:74
  REM postgap with zero data
  POSTGAP 00:35:00

از آنجا که cdrdao نمی‌تواند فایل MP3 را در لحظه رمزگشایی کند، این مرحله باید به صورت دستی انجام شود، مثلاً با استفاده از lame:

lame --decode uwe.froehn.mp3 uwe.froehn.wav

اگرچه نام فایل تنها یک بار در فایل نمونه CUE ظاهر می‌شود، اما برای هر شیار در فایل TOC نوشته می‌شود، بنابراین لازم است دفعات تکرار نام فایل در پرونده TOC را به صورت دستی ویرایش کنید. به همین دلیل می‌توانید با گزینه -w یک رشته مشخص کنید تا توسط cue2toc به عنوان نام فایل برای تمامی شیارهای صوتی استفاده شود. دستور

cue2toc -w uwe.froehn.wav -o uwe.froehn.toc uwe.froehn.cue

باید فایلی به نام uwe.froehn.toc با محتوای زیر تولید کند:

CATALOG "1234567890123"
CD_DA
CD_TEXT {
    LANGUAGE_MAP {
        0 : EN
    }
    LANGUAGE 0 {
        TITLE "Der Berg ruft"
        PERFORMER "Uwe Froehn"
    }
}
TRACK AUDIO
    CD_TEXT {
        LANGUAGE 0 {
            TITLE "Meine Mama ist die Beste"
            PERFORMER "Uwe Froehn"
            SONGWRITER "Hansi Klabuster"
        }
    }
    AUDIOFILE "uwe.froehn.wav" 00:00:00 02:45:38
    START 00:02:00
    INDEX 00:35:17
    INDEX 01:12:44
TRACK AUDIO
    CD_TEXT {
        LANGUAGE 0 {
            TITLE "Hoch oben im Tal"
            SONGWRITER "Gabi Geil"
        }
    }
    AUDIOFILE "uwe.froehn.wav" 02:45:38 05:13:36
TRACK AUDIO
    PREGAP 00:04:47
    AUDIOFILE "uwe.froehn.wav" 07:58:74
    SILENCE 00:35:00

cdrdao(1), lame(1)

از آنجا که تعریف cue2toc از قالب CUE کاملاً بر اساس تعدادی فایل‌های CUE مختلف است که نویسنده با آن‌ها مواجه شده، احتمال بسیار زیادی وجود دارد که با سایر فایل‌های CUE که ممکن است با آن‌ها برخورد کنید به درستی کار نکند. اگر این مورد برای شما پیش آمد، لطفاً فایل CUE دارای مشکل را همراه با شماره نسخه cue2toc به نشانی <dermatsch@gmx.de> ارسال فرمایید.

Matthias Czapla <dermatsch@gmx.de>