| rifftree(1) | libgig tools | rifftree(1) |
نام (NAME)
rifftree - چاپ ساختار درختی RIFF یک فایل دلخواه مبتنی بر RIFF.
خلاصه دستور (SYNOPSIS)
rifftree [OPTIONS] FILE
توضیحات (DESCRIPTION)
قالب مبادله فایل منابع (Resource Interchange File Format یا به اختصار RIFF) یک قالب فایل باینری ساده است که برای ساختارهای دادهای درختگونه طراحی شده است. بسیاری از قالبهای فایل اختصاصی بر پایه قالب RIFF ساخته شدهاند (مانند قالبهای فایل چندرسانهای نظیر WAV، AVI، DLS و GIG). دادهها در یک فایل RIFF در بخشهایی موسوم به «تکه» یا چانک (chunk) کپسولهسازی میشوند. تکههای فهرستی (کانتینرها یا نگهدارندهها) وجود دارند که میتوان آنها را گرههای درخت داده در نظر گرفت و بنابراین میتوانند دارای فرزند (تکههای فرعی یا subchunk) باشند، و تکههای داده معمولی وجود دارند که برگهای درخت داده محسوب میشوند و نمیتوانند فرزند داشته باشند. تکههای معمولی (برگهای درخت) حاوی دادههای واقعی ذخیرهشده هستند. تکههای فهرستی (گرهها/کانتینرها) به خودی خود حاوی هیچ دادهای نیستند.
هر تکه فهرستی و تکه معمولی دارای یک شناسه (ID) ۳۲ بیتی (غیرمنحصربهفرد) است که معمولاً یک متن اسکی (ASCII) ۴ کاراکتری خوانا برای انسان است و هدف لیست یا تکه مربوطه را نشان میدهد. این برنامه این شناسه را برای هر تکه پیدا شده چاپ میکند. مزیت شناسههای خوانای تکهها/فهرستها این است که فایلهای مبتنی بر این روش را میتوان به راحتی بهصورت دستی با یک ویرایشگر هگز (hex editor) تحلیل و بررسی کرد.
یک فایل معمولی RIFF همیشه با یک تکه فهرستی (با شناسه تکه "RIFF" یا "RIFX") شروع میشود که حاوی تمام تکههای دیگر است. در یک فایل معمولی RIFF هیچ تکه دیگری خارج از محدوده آن تکه نخست وجود ندارد. با این حال میتوانید با آرگومانهایی که در زیر شرح داده شده است (به آرگومان --flat مراجعه کنید) این انتظار را نادیده بگیرید تا بتوانید فایلهای مشابه RIFF را باز کنید.
گزینهها (OPTIONS)
- FILE
- نام فایل مبتنی بر RIFF.
- -v
- نمایش نسخه و خروج.
- -s
- چاپ اندازه هر تکه (chunk) RIFF.
- --flat
- نخستین تکه فایل یک تکه فهرستی (کانتینر) نیست. اگر فایل یک فایل RIFF «واقعی» نباشد، ممکن است بخواهید از این گزینه استفاده کنید. یک فایل RIFF «واقعی» همیشه دارای یک تکه فهرستی (کانتینر) RIFF به عنوان اولین تکه در فایل است و انتظار دارد تمام تکههای دیگر درون آن تکه نخست قرار گیرند. بنابراین در یک فایل RIFF «واقعی»، هیچ تکه دیگری خارج از محدوده (یعنی پس از پایان) تکه اول فایل وجود ندارد. با این حال، بسیاری از قالبهای فایل ابتدایی، دنبالهای مسطح از تکههای داده معمولی هستند (نه تکههای فهرستی/کانتینر). اگر از این گزینه استفاده میکنید، باید گزینه --first-chunk-id را نیز به کار ببرید.
- --first-chunk-id CKID
- در حال حاضر فقط در ترکیب با گزینه --flat استفاده میشود. CKID باید شناسه ۳۲ بیتی اولین تکه در فایل باشد. اگر اولین تکه در فایل دارای شناسه تکه دادهشده نباشد، این برنامه متوقف میشود. این کار تضمین میکند که فایل واقعاً همان قالبی است که انتظار داشتید. آرگومان مورد انتظار در اینجا باید یک متن اسکی (ASCII) چهارکاراکتری خوانا باشد، زیرا شناسههای تکه RIFF معمولاً رشتههای اسکی خوانا هستند.
- --big-endian
- فایل در قالب اندیان بزرگ (Big-Endian) است. در حال حاضر فقط در ترکیب با گزینه --flat استفاده میشود. بدون --flat نوع اندیان بهطور خودکار شناسایی میشود. اگر از --flat استفاده کنید و نه --big-endian و نه --little-endian را مشخص نکنید، نوع اندیان بومی دستگاه شما به عنوان پیشفرض استفاده خواهد شد.
- --little-endian
- فایل در قالب اندیان کوچک (Little-Endian) است. در حال حاضر فقط در ترکیب با گزینه --flat استفاده میشود. بدون --flat نوع اندیان بهطور خودکار شناسایی میشود. اگر از --flat استفاده کنید و نه --big-endian و نه --little-endian را مشخص نکنید، نوع اندیان بومی دستگاه شما به عنوان پیشفرض استفاده خواهد شد.
مثالها (EXAMPLES)
نمایش ساختار فایل یک فایل استاندارد RIFF (در مثال زیر یک فایل Gigasampler/GigaStudio) و نمایش اندازه دقیق هر تکه در فایل:
rifftree -s piano.gig
انجام همین کار برای یک فایل صوتی Korg Trinity/Triton/OASYS/Kronos (که یک فایل استاندارد RIFF نیست، بلکه فایلی شبیه به RIFF است):
rifftree -s --flat --first-chunk-id MSP1 --big-endian PIANO_000.KMP
همچنین ببینید (SEE ALSO)
اشکالات (BUGS)
بررسی و گزارش باگها در: http://bugs.linuxsampler.org
نویسنده (AUTHOR)
برنامه و صفحه راهنما توسط Christian Schoenebeck <cuse@users.sf.net> نوشته شده است.
| 7 May 2014 | libgig 4.6.0 |