.\" $OpenBSD$ .\" .\" Copyright (c) 2006 Alexandre Ratchov .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd $Mdocdate$ .Dt AUCAT 1 .Os .Sh "نام (NAME)" .Nm aucat .Nd ابزار دستکاری فایل‌های صوتی .Sh "خلاصه دستور (SYNOPSIS)" .Nm aucat .Op Fl dn .Op Fl b Ar size .Op Fl c Ar channels .Op Fl e Ar enc .Op Fl f Ar device .Op Fl g Ar position .Op Fl h Ar fmt .Op Fl i Ar file .Op Fl m Ar min : Ns Ar max Ns / Ns Ar min : Ns Ar max .Op Fl o Ar file .Op Fl p Ar position .Op Fl q Ar port .Op Fl r Ar rate .Op Fl v Ar volume .Sh "توضیحات (DESCRIPTION)" ابزار .Nm می‌تواند فایل‌های صوتی را به‌صورت بلادرنگ پخش، ضبط، میکس و پردازش کند. در هنگام پخش، .Nm داده‌های صوتی را به‌طور هم‌زمان از تمام فایل‌های در حال پخش خوانده، آن‌ها را میکس می‌کند و خروجی را روی دستگاه پخش می‌نماید. به‌طور مشابه، داده‌های صوتی ضبط‌شده از دستگاه را در فایل‌های متناظر ذخیره می‌کند. یک حالت .Em برون‌خط (off-line) می‌تواند برای پردازش فایل‌های صوتی بدون درگیر کردن سخت‌افزار صوتی به کار رود. پردازش‌ها شامل موارد زیر است: .Pp .Bl -bullet -offset indent -compact .It تغییر کدگذاری (encoding) صدا. .It مسیریابی صدا از یک کانال به کانال دیگر. .It کنترل بلندی صدای پخش به ازای هر فایل. .El .Pp در نهایت، .Nm می‌تواند پیام‌های MIDI را بپذیرد که برای موارد زیر کاربرد دارند: .Pp .Bl -bullet -offset indent -compact .It کنترل بلندی صدا. .It شروع، توقف و تغییر موقعیت پخش و ضبط. .El .Pp گزینه‌ها به شرح زیر هستند: .Bl -tag -width Ds .It Fl b Ar size اندازه بافر دستگاه صوتی بر حسب فریم. پیش‌فرض 7680 است. .It Fl c Ar channels تعداد کانال‌های فایل صوتی. پیش‌فرض 2 است، یعنی استریو (stereo). .It Fl d افزایش سطح جزئیات گزارش‌ها (verbosity). .It Fl e Ar enc کدگذاری فایل صوتی. پیش‌فرض .Va s24 است. نام‌های کدگذاری از الگوی زیر پیروی می‌کنند: علامت‌دار بودن .Po .Va s یا .Va u .Pc به همراه دقت بر حسب بیت، ترتیب بایت‌ها .Po .Va le یا .Va be .Pc ، تعداد بایت‌ها در هر نمونه (sample)، و تراز‌بندی .Po .Va msb یا .Va lsb .Pc . تنها علامت‌دار بودن و دقت اجباری هستند. مثال‌ها: .Va u8 , s16le , s24le3 , s24le4lsb . .It Fl f Ar device استفاده از این دستگاه صوتی .Xr sndio 7 . حالت دستگاه و پارامترها از فایل‌های صوتی مشخص می‌شوند. پیش‌فرض .Pa default است. .It Fl g Ar position رفتن به موقعیت زمانی مشخص‌شده و شروع پخش یا ضبط از آنجا. این گزینه معادل دریافت پیام تغییر موقعیت (relocate) در MMC با همان موقعیت است. موقعیت بر حسب تعداد نمونه‌ها (در نرخ نمونه‌برداری دستگاه) بیان می‌شود. .It Fl h Ar fmt نوع فایل صوتی. انواع فایل‌های زیر پشتیبانی می‌شوند: .Pp .Bl -tag -width autoX -compact .It Cm raw فایل بدون سرایند (Headerless). .It Cm wav قالب فایلی WAV مایکروسافت. .It Cm aiff قالب فایل تبادل صوتی اپل (AIFF). .It Cm au قالب فایل صوتی Sun/NeXT. .It Cm auto تلاش برای حدس نوع فایل بر اساس نام آن. این مقدار پیش‌فرض است. .El .It Fl i Ar file پخش این فایل صوتی. اگر آرگومان گزینه .Sq - باشد، از ورودی استاندارد استفاده خواهد شد. .It Fl m Ar min : Ns Ar max Ns / Ns Ar min : Ns Ar max نگاشت محدوده مشخص‌شده از کانال‌های مبدا به محدوده مشخص‌شده از کانال‌های مقصد. .It Fl n حالت برون‌خط (Off-line). خواندن فایل‌های ورودی و ذخیره نتیجه در فایل‌های خروجی با پردازش بلادرنگ آن‌ها. این حالت برای میکس، تفکیک (demultiplex)، نمونه‌برداری مجدد (resample) یا تغییر کدگذاری فایل‌های صوتی به‌صورت برون‌خط کاربرد دارد. این حالت دست‌کم به یک ورودی .Pq Fl i و یک خروجی .Pq Fl o نیاز دارد. .It Fl o Ar file ضبط در این فایل صوتی. اگر آرگومان گزینه .Sq - باشد، از خروجی استاندارد استفاده خواهد شد. .It Fl p Ar position آفست زمانی که نقطه آغاز فایل به آن تعلق دارد. نخستین نمونه فایل زمانی پخش یا ضبط می‌شود که دستگاه به موقعیت داده‌شده برسد. موقعیت بر حسب تعداد نمونه‌ها (در نرخ نمونه‌برداری دستگاه) بیان می‌شود. .It Fl q Ar port کنترل مشخصه‌های دستگاه صوتی از طریق این درگاه MIDI. این مورد شامل حجم صدای هر جریان و توانایی شروع، توقف و تغییر موقعیت هم‌گام فایل‌های صوتی است. .It Fl r Ar rate نرخ نمونه‌برداری فایل صوتی بر حسب هرتز. پیش‌فرض .Cm 48000 است. .It Fl v Ar volume تضعیف نرم‌افزاری بلندی صدای فایل برای پخش. مقدار باید بین 1 و 127 باشد، که متناظر با تضعیف \-42dB تا \-0dB در گام‌های 1/3dB است. پیش‌فرض 127 است، یعنی بدون تضعیف. .El .Pp در خط فرمان، پارامترهای وابسته به هر فایل .Pq Fl cehmrv باید پیش از تعریف فایل .Pq Fl io قرار گیرند. .Pp اگر به .Nm سیگنال‌های .Dv SIGHUP ، .Dv SIGINT یا .Dv SIGTERM ارسال شود، عملیات ضبط در فایل‌ها خاتمه می‌یابد. .Sh "کنترل MIDI (MIDI CONTROL)" .Nm می‌تواند از طریق MIDI .Pq Fl q به شیوه زیر کنترل شود: یک کانال MIDI به هر جریان اختصاص می‌یابد، و میزان بلندی صدا با کنترلر استاندارد صدا (شماره 7) تغییر می‌کند. حجم صدای کلی (Master volume) با استفاده از پیام سیستم اختصاصی (SysEx) استانداردِ Master Volume قابل تغییر است. .Pp تمامی فایل‌های صوتی توسط پیام‌های MMC زیر کنترل می‌شوند: .Pp .Bl -tag -width relocateX -offset indent -compact .It relocate تمام فایل‌ها به موقعیت زمانی درخواست‌شده منتقل می‌شوند. اگر این موقعیت فراتر از انتهای یک فایل باشد، آن فایل به‌طور موقت غیرفعال می‌شود تا زمانی که موقعیت معتبری درخواست شود. .It start پخش و/یا ضبط آغاز می‌شود. .It stop پخش و/یا ضبط متوقف شده و تمام فایل‌ها به نقطه آغازین بازگردانده می‌شوند. .El .Pp کنترل MIDI برای کارکرد در کنار .Xr sndiod 8 طراحی شده است. برای نمونه، دستور زیر دو دستگاه ایجاد می‌کند: دستگاه پیش‌فرض .Va snd/default و یک دستگاه تحت کنترل MMC با نام .Va snd/default.mmc : .Bd -literal -offset indent $ sndiod -r 48000 -z 480 -s default -t slave -s mmc .Ed .Pp برنامه‌هایی که از .Va snd/default استفاده می‌کنند رفتار عادی خواهند داشت، در حالی که برنامه‌های استفاده‌کننده از .Va snd/mmc منتظر سیگنال شروع MMC مانده و به‌صورت هم‌گام آغاز به کار می‌کنند. سپس، دستور زیر فایلی را روی دستگاه صوتی .Va snd/mmc پخش می‌کند و کنترل کامل را در اختیار نرم‌افزار یا سخت‌افزار MIDI متصل به درگاه MIDI .Va midithru/0 قرار می‌دهد: .Bd -literal -offset indent $ aucat -f snd/mmc -q midithru/0 -i file.wav .Ed .Pp در این مرحله، .Nm با فرض پیکربندی برای ارسال MMC روی .Va midithru/0 و .Va snd/mmc ، به‌صورت خودکار با تمامی اقدامات کاربر در ترتیب‌سنج (sequencer) سازگار شده و عملیات شروع، توقف و جابه‌جایی را انجام می‌دهد. علاوه بر این، ترتیب‌سنج MIDI می‌تواند طوری تنظیم شود که از درگاه .Va snd/mmc به عنوان منبع کلاک MTC بهره ببرد، که هم‌گامی قطعی با پخش .Pa file.wav را تضمین می‌کند. .Sh "مثال‌ها (EXAMPLES)" میکس و پخش هم‌زمان دو فایل در حین ضبط یک فایل سوم: .Bd -literal -offset indent $ aucat -i file1.wav -i file2.wav -o file3.wav .Ed .Pp ضبط کانال‌های 2 و 3 در یک فایل استریو و کانال‌های 6 و 7 در یک فایل استریوی دیگر، با نرخ نمونه‌برداری 44.1kHz برای هر دو: .Bd -literal -offset indent $ aucat -r 44100 -m 2:3/0:1 -o file1.wav -m 6:7/0:1 -o file2.wav .Ed .Pp تقسیم یک فایل استریو به دو فایل مونو: .Bd -literal -offset indent $ aucat -n -i stereo.wav -c 1 -m 0:0/0:0 -o left.wav \e -m 1:1/0:0 -o right.wav .Ed .Sh "همچنین ببینید (SEE ALSO)" .Xr cdio 1 , .Xr audio 4 , .Xr sndio 7 , .Xr audioctl 8 , .Xr mixerctl 8 , .Xr sndiod 8 .Sh "گزارش باگ‌ها (BUGS)" فرایند نمونه‌برداری مجدد (Resampling) کیفیت پایینی دارد. .Pp محدودیت‌های ذاتی در قالب‌های فایلی .Ar wav ، .Ar aiff و .Ar au وجود دارد: همه انواع کدگذاری‌ها پشتیبانی نمی‌شوند، اندازه فایل‌ها به 2 گیگابایت محدود است، و فایل‌ها حتماً باید از فراخوانی .Xr lseek 2 پشتیبانی کنند (برای مثال pipeها از آن پشتیبانی نمی‌کنند).