ecasound(1) Multimedia software ecasound(1) نام (NAME) ecasound - ویرایشگر نمونه صوتی، ضبط‌کننده چندتراکه، پردازشگر افکت‌ها و موارد دیگر. خلاصه دستور (SYNOPSIS) ecasound [ general_options ] { [ chain_setup ] [ effect_setup ] [ input_setup ] [ output_setup ] } توضیحات (DESCRIPTION) اکاساند (Ecasound) یک بسته نرم‌افزاری است که برای پردازش چندتراکه‌ای صوت طراحی شده است. این برنامه می‌تواند برای کارهای ساده‌ای نظیر پخش صدا، ضبط و تبدیل قالب، و همچنین برای پردازش افکت‌های چندتراکه، میکس، ضبط و بازچرخانی سیگنال صوتی استفاده شود. اکاساند از طیف گسترده‌ای از ورودی‌ها، خروجی‌ها و الگوریتم‌های افکت صوتی پشتیبانی می‌کند. افکت‌ها و اشیاء صوتی را می‌توان به روش‌های گوناگون ترکیب کرد و پارامترهای آن‌ها را توسط اشیاء کنترل‌کننده مانند نوسان‌سازها و MIDI-CC کنترل نمود. یک رابط کاربری چندمنظوره در حالت خط فرمان نیز درون بسته گنجانده شده است. گزینه‌ها (OPTIONS) توجه! تمامی گزینه‌ها به جز موارد ذکرشده در گزینه‌های ecasound و گزینه‌های سراسری را می‌توان در پرونده‌های راه‌اندازی زنجیره ecasound (.ecs) استفاده کرد. ECASOUND OPTIONS این گزینه‌ها توسط باینری فرانت‌اند ecasound تجزیه و پردازش می‌شوند و به کتابخانه بک‌اند منتقل نمی‌گردند. این بدان معناست که این گزینه‌ها ممکن است در سایر برنامه‌هایی که از کتابخانه‌های ecasound برای عملکردهای خود استفاده می‌کنند، کار نکنند. -c راه‌اندازی ecasound در حالت تعاملی. در حالت تعاملی می‌توانید ecasound را با دستورهای ساده کنترل کنید ("start"، "stop"، "pause" و غیره). به ecasound-iam مراجعه کنید. -C غیرفعال کردن حالت تعاملی ecasound (به ’-c’ و ’-K’ مراجعه کنید). -D چاپ تمام اطلاعات اشکال‌زدایی در خروجی خطای استاندارد (stderr) (به‌صورت بافرنشده، خروجی ساده بدون ncurses). -s[:]chainsetup-file ایجاد یک پیکربندی زنجیره (chainsetup) جدید از پرونده ’chainsetup-file’ و افزودن آن به نشست جاری. پرونده‌های پیکربندی زنجیره معمولاً پسوند ’.ecs’ دارند. یک پیکربندی زنجیره می‌تواند شامل ورودی‌ها، خروجی‌ها، زنجیره‌ها، افکت‌ها و کنترل‌کننده‌ها باشد -- یعنی اشیای یک پیکربندی خاص از عناصر پردازش صوت. از سوی دیگر، یک نشست (session) مجموعه‌ای از یک یا چند پیکربندی زنجیره است. تنها یکی از پیکربندی‌های زنجیره می‌تواند متصل باشد (یعنی قابل اجرا/پردازش باشد). اما امکان انتخاب و پیکربندی زنجیره دیگر وجود دارد در حالی که زنجیره دیگر در حال اجراست. -E "cmd1 [[args] ; cmd2 args ; ... ; cmdN]" اجرای مجموعه‌ای از دستورهای حالت تعاملی اکاساند (EIAM) هنگام راه‌اندازی. این دستورها بلافاصله پس از شروع ecasound اجرا می‌شوند. چنانچه خط فرمان حاوی گزینه‌های کافی برای ایجاد یک پیکربندی زنجیره معتبر قابل اجرا باشد، دستورهای راه‌اندازی پس از تجزیه سایر گزینه‌های خط فرمان، اما پیش از آغاز موتور پردازش اجرا می‌گردند. توجه داشته باشید که این دستور قابلیتی مربوط به باینری فرانت‌اند ecasound است و توسط بک‌اند کتابخانه پشتیبانی نمی‌شود. این بدان معناست که سایر کلاینت‌ها ممکن است از گزینه ’-E’ پشتیبانی نکنند، و همچنین دستورهای راه‌اندازی به عنوان بخشی از وضعیت نشست یا پیکربندی زنجیره ذخیره نمی‌شوند. --server فعال‌سازی حالت موسوم به NetECI، که در آن ecasound را می‌توان از راه دور از طریق اتصال سوکت کنترل کرد. با فعال شدن این حالت، کلاینت‌ها می‌توانند به نشست در حال اجرای ecasound متصل شوند و از دستورهای حالت تعاملی برای کنترل و نظارت بر پردازش استفاده کنند. پروتکل NetECI در راهنمای برنامه‌نویس اکاساند (Ecasound Programmer Guide) تعریف شده است. یک کلاینت نمونه که از این قابلیت استفاده می‌کند ecamonitor(1) است. این ابزار در بسته توزیع اکاساند گنجانده شده است (نیازمند محیط پایتون فعال است). هشدار! چنانچه رایانه‌ای که ecasound را اجرا می‌کند به یک شبکه عمومی متصل است، حتماً درگاه (port) مربوط به ecasound را در فایروال خود مسدود کنید! از آنجا که هیچ کنترل دسترسی برای اتصالات ورودی تعبیه نشده است، هر کاربری در غیر این صورت می‌تواند متصل شده و نشست‌های شما را کنترل یا مشاهده کند. این گزینه جایگزین ’--daemon’ است (که از نسخه ۲.۶.۰ منسوخ شده است). --server-tcp-port=NNN تنظیم درگاه TCP مورد استفاده در حالت سرور (دیمن). به‌طور پیش‌فرض ecasound از درگاه 2868 استفاده می‌کند. این گزینه جایگزین ’--daemon-port’ است (که از نسخه ۲.۶.۰ منسوخ شد). --no-server غیرفعال کردن حالت سرور ecasound. این حالت پیش‌فرض است. این گزینه جایگزین ’--nodaemon’ است (از نسخه ۲.۶.۰ منسوخ شد). --osc-udp-port=NNN فعال‌سازی پشتیبانی از Open Sound Control (OSC). اکاساند برای پیام‌های ورودی OSC روی درگاه UDP با شماره NNN گوش خواهد داد. رابط OSC اکاساند در نشانی زیر مستند شده است: توجه داشته باشید که پشتیبانی از OSC هنوز آزمایشی است و ممکن است رابط آن در نسخه‌های بعدی اکاساند تغییر کند. این گزینه در نسخه ۲.۷.۰ به ecasound اضافه شد. --keep-running,-K عدم خروج پس از پایان/توقف پردازش. این گزینه تنها بر حالت عملکرد غیرتعاملی تأثیر می‌گذارد (به -c/-C مراجعه کنید). این گزینه در نسخه ۲.۴.۲ به ecasound اضافه شد. --help,-h نمایش این راهنما. --version چاپ اطلاعات نسخه. GLOBAL OPTIONS -d, -dd, -ddd افزایش میزان پیام‌های اشکال‌زدایی چاپ‌شده. -d مقداری جزئیات اضافه می‌کند، در حالی که -ddd منجر به خروجی بسیار دقیق می‌شود. -d:debug_level تنظیم ماسک سطح اشکال‌زدایی روی ’debug_level’. این مقدار ماسک بیتی است با رده‌های زیر: خطاها (1)، اطلاعات (2)، زیرسیستم‌ها (4)، نام‌های ماژول (8)، اشیای کاربری (16)، اشیای سیستمی (32)، توابع (64)، مداوم (128) و مقادیر بازگشتی eiam با مقدار (256). مقدار پیش‌فرض ۲۷۱ است (1+2+4+8+256). برای اطلاعات دقیق‌تر به مستندات کد منبع کلاس ECA_LOGGER مراجعه فرمایید. -R[:]path-to-file استفاده از پرونده منابع ecasound (صفحه راهنمای ecasoundrc را ببینید) ’path-to-file’ به عنوان تنها منبع تنظیم مقادیر منابع. تعیین این گزینه، رویه عادی بررسی هر دو پرونده منبع سراسری و کاربری (در صورت وجود) را غیرفعال می‌کند. -q حالت بی‌صدا، بدون خروجی. همانند -d:0. GENERAL CHAINSETUP OPTIONS -a:chainname1, chainname2, ... انتخاب زنجیره‌های سیگنال فعال. تمامی ورودی‌ها و خروجی‌های پس از این گزینه ’-a’ به زنجیره‌های انتخاب‌شده تخصیص می‌یابند (تا زمانی که گزینه جدید -a مشخص شود). هنگام افزودن افکت‌ها، کنترل‌کننده‌ها و سایر عملگرهای زنجیره، تنها یک زنجیره در هر زمان می‌تواند انتخاب شود. در صورتی که گزینه -a داده نشود، زنجیره ’default’ به صورت پیش‌فرض هنگام افزودن اشیا استفاده خواهد شد. نام زنجیره ’all’ نیز رزرو شده است و باعث انتخاب تمامی زنجیره‌های موجود می‌گردد. با دادن چندین گزینه -a، می‌توانید کنترل کنید که افکت‌ها، ورودی‌ها و خروجی‌ها به کدام زنجیره‌ها تخصیص داده شوند. برای اطلاعات بیشتر در خصوص کاربرد این گزینه به بخش مثال‌ها (EXAMPLES) نگاه کنید. -n:name تنظیم نام پیکربندی زنجیره روی ’name’. در صورت عدم تعیین، مقدار پیش‌فرض یا "command-line-setup" است یا نام پرونده‌ای که پیکربندی زنجیره از آن بارگذاری شده است. فاصله خالی مجاز نیست. -x کوتاه کردن خروجی‌ها. تمام اشیای خروجی در حالت بازنویسی باز می‌شوند. هرگونه پرونده موجود پاک یا کوتاه خواهد شد. -X باز کردن خروجی‌ها برای به‌روزرسانی. اکاساند تمامی خروجی‌ها را - در صورتی که قالب مقصد اجازه دهد - در حالت خواندن و نوشتن باز می‌کند. -z:feature فعال‌سازی ویژگی ’feature’. اکثر ویژگی‌ها را می‌توان با نماد -z:nofeature غیرفعال کرد. گزینه ’-z:db,dbsize’ بافر دوگانه (double-buffering) را برای اشیای صوتی پشتیبانی‌کننده فعال می‌کند (dbsize=0 برای پیش‌فرض، در غیر این صورت اندازه بافر بر حسب فریم‌های نمونه). گزینه ’-z:nodb’ بافر دوگانه را غیرفعال می‌سازد. گزینه‌های ’-z:intbuf’ و ’-z:nointbuf’ تعیین می‌کنند که آیا بافر داخلی اضافی برای دستگاه‌های بی‌درنگ (realtime) مجاز است یا خیر. غیرفعال کردن این ویژگی می‌تواند تاخیر (latency) را در برخی موقعیت‌ها کاهش دهد. با ’-z:xruns’، در صورت بروز سرریز یا کمبود داده در بافر (under/overrun)، پردازش متوقف می‌شود. گزینه‌های ’-z:multitrack’ و ’-z:nomultitrack’ می‌توانند برای فعال یا غیرفعال کردن اجباری حالت چندتراکه‌ای استفاده شوند. در موارد نادر ممکن است بخواهید میزان آفست ضبط را صراحتاً با ’-z:multitrack,offset-in-samples’ مشخص کنید. آفست تعداد نمونه‌هایی است که هنگام ضبط از ورودی‌های بی‌درنگ نادیده گرفته می‌شوند. گزینه ’-z:psr’ حالت نرخ نمونه دقیق (precise-sample-rates) را برای دستگاه‌های OSS فعال می‌کند. گزینه ’-z:mixmode,sum’ حالت میکسی را فعال می‌کند که در آن کانال‌ها با جمع زدن تمام کانال‌ها میکس می‌شوند. مقدار پیش‌فرض ’-z:mixmode,avg’ است که در آن کانال‌ها میانگین‌گیری می‌شوند. انتخاب mixmode برای نخستین بار در نسخه ۲.۴.۰ به ecasound اضافه شد. به صفحه راهنمای ecasoundrc مراجعه کنید. CHAINSETUP BUFFERING AND PERFORMANCE OPTIONS -B:buffering_mode انتخاب حالت بافر پیش‌فرض. حالت یکی از موارد زیر است: ’auto’ (پیش‌فرض)، ’nonrt’، ’rt’، ’rtlowlatency’. -b:buffer_size تنظیم اندازه بافر موتور پردازش بر حسب نمونه‌ها. اندازه باید توانی از ۲ باشد، و مستقل از تعداد کانال‌ها است (برای نمونه -b:1024 در ۴۸ کیلوهرتز منجر به طول بافر ۲۱.۳۳۳ میلی‌ثانیه می‌شود، چه ورودی مونو باشد، چه استریو یا ۵.۱). این یک گزینه مهم است زیرا طول یک تکرار موتور پردازش را تعیین کرده و از راه‌های گوناگون بر رفتار اکاساند تأثیر می‌گذارد. در صورت عدم تعیین صریح، اکاساند تلاش خواهد کرد مقداری بهینه بر اساس حالت بافر جاری انتخاب کند (گزینه -B را ببینید). برای پردازش بی‌درنگ (realtime)، می‌توانید این مقدار را تا حد امکان کم تنظیم کنید تا تأخیر پردازش کاهش یابد. برخی سیستم‌ها می‌توانند اندازه‌های بافر به پایینی ۶۴ و ۱۲۸ را اداره کنند. در برخی شرایط (مثلاً هنگام استفاده از پوش‌های نوسان‌ساز) اندازه‌های کوچک‌تر بافر باعث حرکت روان‌تر پوش‌ها می‌شوند. هنگام پردازش غیربی‌درنگ (تمام ورودی‌ها و خروجی‌ها پرونده‌های عادی باشند)، مقادیر بزرگ‌تر می‌توانند به جلوگیری از سرریز بافر، کاهش مصرف CPU و/یا بهبود کارایی کمک نمایند. توجه داشته باشید که هنگام استفاده از هر ورودی/خروجی JACK، تنظیم اندازه بافر نادیده گرفته شده و برابر با اندازه دوره/بافر گزارش‌شده توسط سرور JACK قرار می‌گیرد (مثلاً گزینه ’-p’ در jackd). امکان غیرفعال کردن این رفتار وجود ندارد. در صورت عدم تعیین صریح، اندازه بافر پیش‌فرض بر پایه حالت بافر جاری انتخاب می‌شود (به -B مراجعه کنید). -r:sched_priority استفاده از سیاست زمان‌بندی بی‌درنگ (SCHED_FIFO). در صورتی که اکاساند دسترسی مدیر سیستم (کاربر ارشد) نداشته باشد این کار امکان‌پذیر نیست. مراقب باشید! این گزینه کارایی بهتری ارائه می‌دهد، اما در صورت بروز مشکل ممکن است باعث قفل شدن کامل سیستم شود. پارامتر ’sched_priority’ را می‌توان حذف کرد (0=حذف‌شده). در صورت ارائه، این مقدار اولویت ایستا برای ریسه با بالاترین اولویت اکاساند خواهد بود. سایر ریسه‌های اکاساند با اولویت ’sched_priority-1...n’ اجرا می‌شوند. مقدار ’-1’ می‌تواند برای غیرفعال کردن حالت اولویت بالا استفاده شود. -z:feature ویژگی‌های مرتبط عبارتند از -z:db,xxx (-z:nodb) و -z:intbuf (-z:nointbuf). برای جزئیات به بخش گزینه‌های عمومی پیکربندی زنجیره مراجعه کنید. PROCESSING CONTROL -t:seconds تنظیم زمان پردازش بر حسب ثانیه (نیازی نیست یک عدد صحیح باشد). اگر زمان پردازش تنظیم نشود، با پایان یافتن تمام ورودی‌ها موتور متوقف می‌شود. این گزینه معادل دستور EIAM موسوم به ’cs-set-length’ است. مقدار خاص ’-1’ طول پیکربندی زنجیره را مطابق با طولانی‌ترین شیء ورودی تنظیم می‌کند. -tl فعال‌سازی پخش حلقه‌ای (looping). با اتمام پردازش، موتور مجدداً از ابتدا آغاز می‌کند. این گزینه معادل دستور EIAM موسوم به ’cs-loop’ است. INPUT/OUTPUT SETUP برای مستندات دقیق‌تر به راهنمای کاربر اکاساند مراجعه کنید. -G:mgrtype,optstring تنظیم گزینه‌ها برای نوع مدیر شیء صوتی ’mgrtype’. برای گزینه‌های در دسترس، به "یادداشت‌های اختصاصی هر نوع شیء" در زیر مراجعه کنید. -f:sample_format,channel,sample-rate,interleaving تنظیم پارامترهای جریان صوتی برای اشیای صوتی بعدی. برای تنظیم پارامترهای مختلف برای اشیای صوتی گوناگون، چندین گزینه ’-f’ باید تعیین شود (به ترتیب دقت فرمایید، گزینه‌های ’-f’ باید پیش از اشیای صوتی قرار گیرند تا اثربخش باشند). به مستندات گزینه‌های ’-i’ و ’-o’ مراجعه کنید. هنگامی که یک شیء صوتی باز می‌شود (مثلاً پرونده یا دستگاه صوتی باز می‌شود، یا اتصالی به یک سرور صوتی برقرار می‌گردد)، پارامترهای جریان صوتی به شیء ارسال می‌شوند. باید توجه داشت که تمام اشیای صوتی اجازه تنظیم برخی یا همه پارامترها را نمی‌دهند. به عنوان مثال هنگام باز کردن پرونده‌های صوتی موجود، قالب‌های پرونده فراوانی دارای یک سرآیند (header) هستند که پارامترهای صوتی پرونده را توصیف می‌کند. در این موارد سرآیند پرونده صوتی بر پارامترهای ارائه‌شده با گزینه ’-f’ اولویت دارد. به همین ترتیب هنگام ایجاد ورودی‌ها و خروجی‌های JACK، سرور JACK نرخ نمونه‌برداری و قالب نمونه را تحمیل می‌کند. چنانچه هیچ گزینه ’-f’ مشخص نشود، یا برخی از فیلدهای آرگومان خالی رها شوند (مثلاً ’-f:,2,44100’)، اکاساند از مقادیر پیش‌فرض استفاده خواهد کرد. این مقادیر پیش‌فرض در پرونده پیکربندی ecasoundrc تعریف شده‌اند. به صفحه راهنمای ecasoundrc(5) مراجعه کنید. توجه داشته باشید که اکاساند به‌طور پیش‌فرض پرونده‌های خروجی را در حالت به‌روزرسانی باز می‌کند. مگر اینکه گزینه ’-x’ (بازنویسی خروجی‌ها) مشخص شده باشد، پارامترهای صوتی یک پرونده صوتی موجود بر پارامترهای تنظیم‌شده با ’-f’ اولویت دارند. قالب نمونه به صورت یک رشته قالب‌بندی‌شده ارائه می‌شود. حرف نخست یکی از حروف "u"، "s" و "f" است (بدون علامت unsigned، علامت‌دار signed، ممیز شناور floating point). عدد بعدی اندازه نمونه بر حسب بیت را مشخص می‌کند. اگر نمونه اندیان کوچک باشد، "_le" به پایان اضافه می‌شود. به همین صورت اگر اندیان بزرگ باشد، "_be" اضافه می‌گردد. در صورت عدم تعیین اندیان، ترتیب بایت میزبان به کار می‌رود. قالب‌های پشتیبانی‌شده فعلی عبارتند از "u8" (همان "8")، "s16_le" (همان "16")، "s16_be"، "s24_le"، "s24_be"، "s32_le"، "s32_be"، "f32_le" و "f32_be". یک رشته تهی "" قالب نمونه پیش‌فرض سیستم را برمی‌گزیند. پارامتر چهارم چیدمان کانال را تعیین می‌کند. گزینه‌های در دسترس عبارتند از ’i’ (درهم‌تنیده یا interleaved) و ’n’ (غیردرهم‌تنیده یا noninterleaved). با تنظیم غیردرهم‌تنیده، اکاساند نمونه‌ها را در هر نوبت برای یک کانال پردازش می‌کند و اندازه بلوک با ’-b’ تنظیم می‌گردد. تنظیم پیش‌فرض ’i’ است. -y:seconds تنظیم موقعیت آغازین برای آخرین ورودی/خروجی مشخص‌شده. اگر به کنترل منعطف‌تری بر اشیای صوتی نیاز دارید، باید از قالب .ewf استفاده کنید. -i[:]input-file-or-device[,params] مشخص کردن یک منبع ورودی جدید که به تمامی زنجیره‌های انتخاب‌شده متصل است (زنجیره‌ها با ’-a:...’ انتخاب می‌شوند). اتصال چند ورودی به یک زنجیره امکان‌پذیر نیست، اما یک ورودی می‌تواند به چندین زنجیره متصل شود. ورودی می‌تواند یک پرونده، دستگاه یا هر شیء صوتی دیگر باشد (به زیر مراجعه کنید). اگر ورودی یک پرونده باشد، نوع آن از روی پسوند نام پرونده تشخیص داده می‌شود. در صورتی که نام شیء حاوی کاما (ویرگول) باشد، باید نام را در گیومه معکوس (backquotes) قرار داد تا تداخلی با تجزیه‌کننده ایجاد نشود. قالب‌های پشتیبانی‌شده فعلی عبارتند از پرونده‌های RIFF WAVE با پسوند (.wav)، شیارهای لوح فشرده صوتی (.cdr)، پرونده‌های EWF اکاساند (.ewf)، داده‌های خام صوتی RAW با پسوند (.raw) و پرونده‌های صوتی MPEG با پسوند (.mp2، .mp3). قالب‌های صوتی بیشتری از طریق کتابخانه‌های libaudiofile و libsndfile پشتیبانی می‌شوند (مستندات زیر را ببینید). فرمت MikMod نیز پشتیبانی می‌شود (.xm، .mod، .s3m، .it و غیره). پرونده‌های MIDI با پسوند (.mid) با استفاده از Timidity++ پشتیبانی می‌شوند. همچنین Ogg Vorbis با پسوند (.ogg) قابل خواندن است، و اگر ابزارهای ogg123 و vorbize نصب باشند قابل نوشتن است؛ پرونده‌های FLAC با پسوند (.flac) با ابزارهای خط فرمان flac یا با استفاده از libsndfile پشتیبانی می‌شوند؛ و پرونده‌های AAC با پسوند (.aac/.m4a/.mp4) با ابزارهای faad2/faac کار می‌کنند. دستگاه‌های بی‌درنگ پشتیبانی‌شده عبارتند از دستگاه‌های صوتی OSS با مسیر (/dev/dsp*)، دستگاه‌های صوتی و loopback مربوط به ALSA و زیرسیستم صوتی JACK. اگر هیچ ورودی مشخص نشود، نخستین آرگومان خط فرمان که گزینه نباشد (با ’-’ شروع نشود) به عنوان ورودی در نظر گرفته می‌شود. -o[:]output-file-or-device[,params] مشابه با گزینه -i عمل می‌کند. اگر خروجی مشخص نشود، دستگاه خروجی پیش‌فرض استفاده می‌شود (به ~/.ecasoundrc مراجعه کنید). اگر نام شیء حاوی ویرگول باشد، نام باید در گیومه معکوس قرار گیرد تا از سردرگمی تجزیه‌کننده جلوگیری شود. توجه داشته باشید بسیاری از انواع اشیا از خروجی پشتیبانی نمی‌کنند (مانند MikMod، MIDI و بسیاری دیگر). OBJECT TYPE SPECIFIC NOTES ALSA devices - ’alsa’ هنگام استفاده از درایورهای ALSA، به جای نام پرونده دستگاه، باید از نحو گزینه زیر استفاده کنید: -i[:]alsa,pcm_device_name. ALSA direct-hw and plugin access - ’alsahw’, ’alsaplugin’ همچنین امکان استفاده از ترکیب خاصی از کارت و دستگاه با استفاده از قالب زیر وجود دارد: -i[:]alsahw,card_number,device_number,subdevice_number. گزینه دیگر لایه افزونه ALSA PCM است. این لایه دقیقاً مانند دستگاه‌های معمول ALSA pcm کار می‌کند، اما همراه با تبدیل خودکار تعداد کانال‌ها و قالب نمونه. نحو گزینه به این صورت است: -i[:]alsaplugin,card_number,device_number,subdevice_number. aRts input/output - ’arts’ در صورت فعال بودن در زمان کامپایل، اکاساند از ورودی و خروجی صوتی با سرور صوتی aRts پشتیبانی می‌کند. نحو گزینه به شکل -i:arts و -o:arts است. Audio file sequencing - ’audioloop’, ’select’, ’playat’ اکاساند مجموعه‌ای از انواع اشیای صوتی ویژه فراهم می‌آورد که می‌توان از آن‌ها برای توالی زمانی پرونده‌های صوتی استفاده کرد - مانند تکرار حلقه‌ای، پخش تنها بخشی از یک پرونده، پخش پرونده در زمان مشخص و سایر عملیات مشابه. تکرار حلقه‌ای با گزینه -i:audioloop,file.ext,params امکان‌پذیر است. نام پرونده (یا هر نوع شیء قابل درک برای Ecasound) که به عنوان پارامتر دوم داده می‌شود، به‌طور مداوم پخش شده و با رسیدن به پایان پرونده مجدداً به آغاز بازمی‌گردد. هرگونه پارامتر اضافی ارائه‌شده بدون تغییر به شیء پرونده ارسال می‌گردد. پارامترهای ۳ تا N به همان صورت به شیء فرزند ارسال می‌شوند (یعنی "-i audioloop,foo.wav,bar1,bar2" پارامترهای "bar1,bar2" را به شیء "foo.wav" ارسال می‌کند). برای انتخاب و استفاده از تنها یک بخش مشخص از یک شیء صوتی، می‌توان از گزینه -i:select,start-time,duration,file.ext,params استفاده کرد. این گزینه مدت‌زمان "duration" از پرونده "file.ext" را با شروع از زمان "start-time" پخش می‌کند. مقادیر زمان باید بر حسب ثانیه (مثلاً "2.25") یا بر حسب نمونه (مثلاً "25000sa") داده شوند. پارامترهای ۴ تا N به همان صورت به شیء فرزند ارسال می‌شوند. برای پخش یک شیء صوتی در یک لحظه مشخص از زمان، می‌توان از گزینه -i:playat,play-at-time,file.ext,params استفاده نمود. این گزینه پس از رسیدن موقعیت پخش به زمان "play-at-time"، پرونده "file.ext" را پخش می‌کند. مقادیر زمان باید بر حسب ثانیه (مثلاً "2.25") یا نمونه (مثلاً "25000sa") داده شوند. پارامترهای ۲ تا N به همان صورت به شیء فرزند ارسال می‌شوند. Ecasound Wave Files (EWF) - ’*.ewf’ یک قالب پرونده ویژه که به کاربر اجازه می‌دهد پرونده‌های صوتی را به‌طور کامل (یا بخش‌هایی از آن‌ها) برش داده و تکرار حلقه‌ای کند. این قالب مختص Ecasound است. برای اطلاعات بیشتر به راهنمای کاربر اکاساند مراجعه نمایید. همچنین انواع اشیای صوتی ’audioloop’، ’select’ و ’playat’ را ببینید. JACK input/outputs - Overview جک (JACK) یک سرور صوتی با تاخیر کم است که می‌تواند برای اتصال چندین برنامه صوتی مستقل به یکدیگر به کار رود. این سیستم با سایر سرورهای صوتی تفاوت دارد زیرا از ابتدا برای کارهای حرفه‌ای صوتی با تاخیر پایین طراحی شده است. JACK input/outputs - ’jack’ اکاساند چندین روش برای ارتباط با سرورهای JACK فراهم می‌کند. برای ایجاد یک شیء ورودی یا خروجی JACK، باید از -i jack و -o jack استفاده شود. این گزینه‌ها درگاه‌های کلاینت JACK را به ترتیب با نام‌های "ecasound:in_N" و "ecasound:out_n" ایجاد می‌کنند (’N’ با شماره کانال جایگزین می‌شود). اکاساند به‌طور خودکار برای هر کانال یک درگاه JACK ایجاد می‌کند (تعداد کانال‌ها با گزینه -f:bits,channels,rate تنظیم می‌شود). بسیار مهم است توجه داشته باشید که به‌طور پیش‌فرض درگاه‌های JACK به جایی متصل نیستند (مثلاً به ورودی/خروجی کارت صدا یا به برنامه‌های دیگر). بنابراین کاربر باید با برنامه‌ای خارجی (مانند "QJackCtl" یا "jack_connect") این درگاه‌ها را متصل کند. JACK input/outputs - ’jack,clientname,portprefix’ "jack,clientname" برای سناریوهای استفاده ساده، اکاساند روشی برای اتصال خودکار درگاه‌های اکاساند فراهم می‌سازد. این کار با دادن نام کلاینت همتا به عنوان پارامتر دوم به شیء "jack" امکان‌پذیر است، مثلاً -o jack,clientname. به عنوان مثال، -o jack,system خروجی‌ای ایجاد می‌کند که به‌طور خودکار به خروجی‌های کارت صدای پیش‌فرض سیستم متصل می‌شود. پارامتر کلاینت می‌تواند حذف شود که در این صورت هیچ اتصال خودکاری برقرار نمی‌گردد. اگر نیاز به تغییر پیشوند درگاه باشد (مثلاً "in" در نام کلاینت "ecasound:in_N")، این پیشوند را می‌توان به عنوان پارامتر سوم شیء "jack" مشخص کرد، مثلاً -o jack,,fxout. پارامتر سوم نیز می‌تواند حذف شود که در این صورت از پیشوندهای پیش‌فرض "in" و "out" استفاده می‌شود. JACK input/outputs - ’jack_multi’ نوعی دیگر از شیء ’jack’ نوع ’jack_multi’ است. نحو کامل شیء jack_multi,destport1,...,destportN است. هنگامی که یک شیء ’jack_multi’ به یک سرور JACK متصل می‌شود، نخستین کانال شیء به درگاه JACK موسوم به ’destport1’، دومین کانال به ’destport2’ و به همین ترتیب متصل می‌گردد. به عنوان مثال "-f:32,2,44100 -o jack_multi,foo:in,bar:in" یک شیء خروجی استریو اکاساند می‌سازد که کانال‌های چپ و راست آن به دو کلاینت مختلف JACK هدایت می‌شوند. درگاه‌های مقصد باید هنگام شروع موتور اکاساند فعال باشند، در غیر این صورت اتصالات برقرار نمی‌شوند. اگر درگاه‌های مقصد برای تمام کانال‌ها مشخص نشده باشند، یا رشته‌های با طول صفر داده شوند، آن درگاه‌ها در هنگام راه‌اندازی توسط اکاساند متصل نخواهند شد. JACK input/outputs - ’jack_alsa’, ’jack_auto’, ’jack_generic’ (**منسوخ از نسخه ۲.۶.۰**) اکاساند ۲.۵ و قدیمی‌تر از انواع شیء "jack_alsa"، "jack_auto" و "jack_generic" پشتیبانی می‌کردند، اما این‌ها اکنون با رابط عمومی‌تر "jack" جایگزین شده‌اند و در نتیجه اکنون منسوخ هستند (هنوز کار می‌کنند اما دیگر مستند نمی‌شوند). JACK input/outputs - client options علاوه بر این، گزینه‌های سراسری JACK را می‌توان با استفاده از گزینه -G:jack,client_name,operation_mode تنظیم کرد. مقدار ’client_name’ نامی است که هنگام ثبت اکاساند در سامانه JACK استفاده می‌شود. اگر ’operation_mode’ برابر با "notransport" باشد، اکاساند هرگونه تغییر وضعیت انتقال (transport) در سیستم JACK را نادیده می‌گیرد؛ در حالت "send" تمام رویدادهای شروع، توقف و تغییر موقعیت را به سایر کلاینت‌های JACK ارسال می‌کند؛ در حالت "recv" اکاساند رویدادهای شروع، توقف و تغییر موقعیت JACK را دنبال می‌کند؛ و حالت "sendrecv" که ترکیبی از دو حالت پیشین است. در صورتی که صراحتاً تنظیم نشود، در حالت تعاملی (گزینه ’-c’)، حالت پیش‌فرض "sendrecv" است، در حالی که در حالت دسته‌ای (batchmode) پیش‌فرض "notransport" است. در هر دو حالت می‌توان این حالت را با گزینه -G همان‌گونه که در بالا توصیف شد تغییر داد. جزئیات بیشتر درباره پشتیبانی اکاساند از JACK را می‌توان در راهنمای کاربر Ecasound یافت. Libaudiofile - ’audiofile’ اگر پشتیبانی از libaudiofile در زمان کامپایل فعال شده باشد، این گزینه به شما امکان می‌دهد اکاساند را وادار به استفاده از libaudiofile برای خواندن/نوشتن یک پرونده صوتی خاص کنید. نحو گزینه -i:audiofile,foobar.ext است (همین مورد برای -o نیز برقرار است). Libsndfile - ’sndfile’ اگر پشتیبانی از libsndfile در زمان کامپایل فعال شده باشد، این گزینه به شما امکان می‌دهد اکاساند را وادار به استفاده از libsndfile برای خواندن/نوشتن یک پرونده صوتی خاص کنید. نحو گزینه -i:sndfile,foobar.ext[,.format-ext] است (همین مورد برای -o نیز برقرار است). پارامتر اختیاری سوم "format" می‌تواند برای لغو قالب صوتی استفاده شود (برای مثال می‌توانید یک پرونده AIFF با نام پرونده "foo.wav" بسازید). Loop device - ’loop’ دستگاه‌های حلقه (loop) امکان هدایت (بازگردانی) داده‌ها میان زنجیره‌ها را فراهم می‌کنند. نحو گزینه -[io][:]loop,tag است. اگر یک خروجی loop با برچسب ’1’ اضافه کنید، تمام داده‌های نوشته‌شده در این خروجی به هر ورودی loop با برچسب ’1’ هدایت می‌شوند. این برچسب می‌تواند عددی باشد (مثلاً ’-i:loop,1’) یا یک رشته باشد (مثلاً "-i:loop,vocals"). مانند سایر اشیای ورودی/خروجی، می‌توانید همان دستگاه loop را به چندین زنجیره متصل کنید و از این طریق سیگنال را تقسیم/میکس نمایید. توجه: این دستگاه ’loop’ با ’audioloop’ متفاوت است (مورد دوم در نسخه ۲.۵.۰ به ecasound اضافه شد). Mikmod - ’mikmod’ اگر پشتیبانی از mikmod در زمان کامپایل فعال شده باشد، این گزینه به شما امکان می‌دهد اکاساند را وادار به استفاده از Mikmod برای خواندن/نوشتن یک پرونده ماژول خاص نمایید. نحو گزینه -i:mikmod,foobar.ext است. Null inputs/outputs - ’null’ چنانچه "null" یا "/dev/null" را به عنوان ورودی یا خروجی مشخص کنید، یک دستگاه صوتی پوچ (null) ایجاد می‌شود. این گزینه زمانی سودمند است که صرفاً بخواهید داده‌های نمونه را بدون نوشتن آن‌ها در یک پرونده تحلیل کنید. همچنین یک نوع بی‌درنگ به نام "rtnull" وجود دارد که رفتاری دقیقاً مشابه اشیای "null" دارد، با این تفاوت که تمام ورودی/خروجی با سرعت بی‌درنگ انجام می‌شود. Resample - ’resample’ نوع شیء ’resample’ می‌تواند برای بازنمونه‌برداری داده‌های صوتی یک شیء به کار رود تا با نرخ نمونه‌برداری استفاده‌شده در پیکربندی زنجیره فعال مطابقت پیدا کند. به عنوان مثال: ecasound -f:16,2,44100 -i resample,22050,foo.wav -o /dev/dsp پرونده را از ۲۲.۰۵ کیلوهرتز به ۴۴.۱ کیلوهرتز بازنمونه‌برداری کرده و نتیجه را روی دستگاه کارت صدا می‌نویسد. نرخ نمونه‌برداری فرزند می‌تواند با کلمه کلیدی ’auto’ جایگزین شود. در این حالت اکاساند تلاش خواهد کرد نرخ نمونه‌برداری را از شیء فرزند استعلام کند. این قابلیت برای قالب‌هایی مانند wav که ابر‌داده‌های قالب صوتی را ذخیره می‌کنند کار می‌کند. برای استفاده از ’auto’ در مثال پیشین: ecasound -f:16,2,44100 -i resample,auto,foo.wav -o /dev/dsp. پارامترهای ۴ تا N به همان صورت به شیء فرزند ارسال می‌شوند (یعنی "-i resample,22050,foo.wav,bar1,bar2" پارامترهای "bar1,bar2" را به شیء "foo.wav" ارسال می‌کند). اگر اکاساند با پشتیبانی از libsamplerate کامپایل شده باشد، می‌توانید از ’resample-hq’ برای استفاده از بالاترین کیفیت الگوریتم بازنمونه‌برداری در دسترس استفاده کنید. برای وادار کردن اکاساند به استفاده از بازنمونه‌بردار داخلی، گزینه ’resampler-lq’ (کیفیت پایین) می‌تواند به کار رود. Reverse - ’reverse’ نوع شیء ’reverse’ می‌تواند برای معکوس کردن داده‌های صوتی آمده از یک شیء صوتی استفاده شود. به عنوان مثال، ecasound -i reverse,foo.wav -o /dev/dsp پرونده ’foo.wav’ را به صورت وارونه پخش می‌کند. معکوس کردن اشیای خروجی پشتیبانی نمی‌شود. توجه! تلاش برای معکوس کردن انواع اشیای صوتی با عملیات پرش (seek) بسیار کند (مانند mp3)، به شدت بد عمل می‌کند. ابتدا تبدیل به یک قالب فشرده‌نشده (wav یا raw) را امتحان کنید و سپس وارون‌سازی را انجام دهید. پارامترهای ۳ تا N به همان صورت به شیء فرزند ارسال می‌شوند (یعنی "-i reverse,foo.wav,bar1,bar2" پارامترهای "bar1,bar2" را به شیء "foo.wav" ارسال می‌کند). System standard streams and named pipes - ’stdin’, ’stdout’ می‌توانید با دادن stdin یا stdout به عنوان نام پرونده، از جریان‌های استاندارد ورودی و خروجی استفاده کنید. داده‌های صوتی در قالب خام بدون سرآیند (.raw) فرض می‌شوند. اگر قصد استفاده از لوله‌های نام‌گذاری‌شده (named pipes) را دارید، پیش از استفاده آن‌ها را با پسوند پرونده مناسب ایجاد نمایید. Tone generator - ’tone’ برای تولید یک تون آزمایشی، می‌توان از ورودی -i:tone,type,freq,duration-secs استفاده کرد. پارامتر ’type’ نوع تون را مشخص می‌کند: در حال حاضر تنها ’sine’ (سینوسی) پشتیبانی می‌شود. پارامتر ’freq’ فرکانس تون تولیدشده را تعیین می‌کند و ’duration-secs’ طول جریان تولیدی را مشخص می‌سازد. تعیین مقدار صفر یا منفی برای مدت‌زمان یک جریان نامحدود ایجاد می‌کند. این ویژگی نخستین بار در اکاساند ۲.۴.۷ اضافه شد. Typeselect - ’typeselect’ نوع شیء ویژه ’typeselect’ می‌تواند برای لغو نحوه نگاشت پسوندهای نام پرونده به انواع شیء در اکاساند استفاده شود. به عنوان نمونه: ecasound -i typeselect,.mp3,an_mp3_file.wav -o /dev/dsp پرونده ’an_mp3_file.wav’ را به عنوان یک پرونده mp3 پخش خواهد کرد و نه به عنوان یک پرونده wav که در حالت عادی بدون typeselect رخ می‌داد. پارامترهای ۴ تا N به همان صورت به شیء فرزند ارسال می‌شوند (یعنی "-i typeselect,.au,foo.wav,bar1,bar2" پارامترهای "bar1,bar2" را به شیء "foo.wav" ارسال می‌کند). MIDI SETUP MIDI I/O devices - general در صورت عدم تعیین دستگاه MIDI، دستگاه MIDI پیش‌فرض استفاده می‌شود (به ecasoundrc(5) مراجعه کنید). -Md:rawmidi,device_name افزودن یک دستگاه ورودی/خروجی rawmidi MIDI به پیکربندی. مقدار ’device_name’ می‌تواند هر چیزی باشد که با استفاده از عملیات معمول پرونده‌های یونیکس قابل دسترسی بوده و بایت‌های خام MIDI تولید کند. دستگاه‌های معتبر به عنوان مثال دستگاه‌های OSS rawmidi به نشانی (/dev/midi00)، دستگاه‌های ALSA rawmidi به نشانی (/dev/snd/midiC2D0)، لوله‌های نام‌گذاری‌شده (به صفحه راهنمای mkfifo رجوع کنید) و پرونده‌های عادی هستند. -Md:alsaseq,sequencer-port افزودن یک درگاه توالی‌ساز ALSA MIDI به پیکربندی. مقدار ’sequencer-port’ درگاهی را برای اتصال مشخص می‌کند. این مقدار می‌تواند عددی باشد (مثلاً 128:1) یا نام یک کلاینت باشد (مانند "KMidimon"). -Mms:device_id ارسال دستور شروع MMC موسوم به ("Deferred Play") و توقف ("Stop") با شناسه دستگاه ’device_id’. اگرچه اکاساند مستقیماً از همگام‌سازی وضعیت انتقال با پیام‌های ورودی MMC پشتیبانی نمی‌کند، اما این هدف را می‌توان با اتصال اکاساند به ورودی/خروجی‌های JACK و استفاده از ابزاری مانند JackMMC و JackCtlMMC (به مراجعه فرمایید) برای تبدیل پیام‌های MMC به رویدادهای تغییر انتقال JACK محقق ساخت. -Mss ارسال پیام‌های همگام‌سازی MIDI (یعنی پیام‌های بی‌درنگ سیستم "MIDI Start" و "MIDI Stop") به دستگاه MIDI انتخاب‌شده. توجه داشته باشید که اکاساند پیام MIDI-clock ارسال نمی‌کند، بلکه تنها پیام‌های start و stop را می‌فرستد. EFFECT SETUP PRESETS اکاساند دارای یک سامانه قدرتمند پیش‌تنظیم (preset) افکت است که به شما امکان می‌دهد با ترکیب افکت‌های پایه و کنترل‌کننده‌ها، افکت‌های جدیدی بسازید. برای اطلاعات بیشتر به راهنمای کاربر اکاساند مراجعه کنید. -pf:preset_file.eep استفاده از نخستین پیش‌تنظیم یافت‌شده از پرونده ’preset_file.eep’ به عنوان عملگر زنجیره. -pn:preset_name یافتن پیش‌تنظیم ’preset_name’ از پایگاه داده سراسری پیش‌تنظیم‌ها و استفاده از آن به عنوان عملگر زنجیره. برای اطلاعات در خصوص پایگاه داده پیش‌تنظیم‌ها به صفحه راهنمای ecasoundrc مراجعه فرمایید. SIGNAL ANALYSIS -ev تجزیه و تحلیل داده‌های نمونه برای تعیین میزان امکان تقویت سیگنال بدون وقوع اعوجاج برش (clipping). مقدار درصد حاصل را می‌توان به عنوان یک پارامتر برای گزینه ’-ea’ (تقویت) استفاده کرد. یک خلاصه آماری حاوی اطلاعات مربوط به تصویر استریو و توزیع مقادیر نمونه در پایان پردازش چاپ می‌شود. -evp دیده‌بان دامنه اوج (peak amplitude). اطلاعات اوج را برای هر کانال پردازش‌شده نگهداری می‌کند. اطلاعات اوج در هر بار خواندن بازنشانی می‌شود. -ezf یافتن مقدار بهینه برای تنظیم DC. می‌توانید از نتیجه به عنوان پارامتری برای جلوه -ezx استفاده کنید. GENERAL SIGNAL PROCESSING ALGORITHMS -eS:stamp-id مهر صوتی (Audio stamp). یک تصویر لحظه‌ای (snapshot) از داده‌های صوتی عبوری می‌گیرد و آن را با شناسه ’stamp-id’ (عدد صحیح) ذخیره می‌کند. این داده‌ها بعداً می‌توانند توسط کنترل‌کننده‌ها و دیگر عملگرها استفاده شوند. -ea:amplify% تنظیم دامنه سیگنال روی ’amplify%’ درصد (مقیاس خطی، یعنی نمونه‌های منفرد در ’amplify%/100’ ضرب می‌شوند). همچنین ’-eadb’ را ببینید. -eac:amplify%,channel تقویت سیگنال کانال ’channel’ به میزان درصد amplify-% (مقیاس خطی، یعنی نمونه‌های منفرد در ’amplify%/100’ ضرب می‌شوند). دامنه ’channel’ از 1 تا n است که n تعداد کل کانال‌ها می‌باشد. همچنین ’-eadb’ را ببینید. -eadb:gain-dB[,channel] تنظیم سطح سیگنال بر حسب ’gain-dB’، که در آن بهره 0dB تاثیری بر سیگنال ندارد، مقادیر منفی بهره سیگنال را تضعیف کرده و مقادیر مثبت آن را تقویت می‌کنند. پارامتر ’channel’ (از 1 تا n) اختیاری است. اگر پارامتر ’channel’ مشخص شود و مقدار آن غیرصفر باشد، بهره تنها روی کانال داده‌شده اعمال می‌شود. -eaw:amplify%,max-clipped-samples تقویت سیگنال به میزان درصد amplify-%. چنانچه تعداد نمونه‌های بریده‌شده متوالی (که مقدار نمونه حاصل از بازه نامی [-1,1] خارج شود) بیش از حد باشد، یک هشدار صادر خواهد شد. -eal:limit-% جلوه محدودکننده (Limiter). سطح صدا را به میزان ’limit-%’ (مقیاس خطی) محدود می‌کند، که در آن مقادیر مساوی یا بیشتر از 100% تغییری در سیگنال ایجاد نمی‌کنند. -ec:rate,threshold-% فشرده‌ساز یا کمپرسور (نسخه ساده). مقدار ’rate’ نرخ فشرده‌سازی بر حسب دسی‌بل است (’rate’ دسی‌بل تغییر در سیگنال ورودی موجب 1dB تغییر در خروجی می‌شود). مقدار ’threshold’ بین 0.0 (سکوت) و 1.0 (بیشینه دامنه) تغییر می‌کند. -eca:peak-level-%, release-time-sec, fast-crate, crate یک فشرده‌ساز پیشرفته‌تر (الگوریتم اصلی توسط John S. Dyson). اگر برای هر پارامتر مقدار 0 بدهید، مقدار پیش‌فرض استفاده می‌شود. پارامتر ’peak-level-%’ اساساً تعیین می‌کند که محدودکننده اوج تا چه اندازه تحت فشار قرار گیرد؛ مقدار پیش‌فرض 69% مناسب است. مقدار ’release_time’ بر حسب ثانیه داده می‌شود. این فشرده‌ساز بسیار پیشرفته است و زمان آزادسازی آن پیچیده می‌باشد؛ این یکی از کنترل‌های اصلی زمان آزادسازی است اما زمان واقعی به عوامل زیادی در مورد پویایی صدای ورودی وابسته است. پارامتر ’fastrate’ نسبت فشرده‌سازی برای کمپرسور سریع است؛ مقدار 1.0 بی‌نهایت به یک است، در حالی که پیش‌فرض 0.50 معادل 2:1 است؛ یک مقدار عالی دیگر 0.25 است که کمی کمتر از 2:1 است و صدایی بسیار روان ایجاد می‌کند. پارامتر ’rate’ نسبت فشرده‌سازی برای کل زنجیره کمپرسور است؛ پیش‌فرض 1.0 است و حجم صدا را بدون اثرات جانبی ناخوشایند بسیار ثابت نگه می‌دارد، با این حال پویایی موسیقی به شدت محدود می‌شود و مقدار 0.5 ممکن است ماهیت موسیقی را دست‌نخورده‌تر نگه دارد. -enm:threshold-level-%,pre-hold-time-msec,attack-time-msec,post-hold-time-msec,release-time-msec گیت نویز (Noise gate). از پردازش چندکاناله پشتیبانی می‌کند (هر کانال جداگانه پردازش می‌شود). هنگامی که دامنه سیگنال به زیر درصد ’threshold_level_%’ سقوط کند (100% به معنی بیشینه دامنه است)، گیت فعال می‌شود. اگر سیگنال برای مدت ’th_time’ میلی‌ثانیه زیر آستانه بماند، در فاز حمله (attack) به مدت ’attack’ میلی‌ثانیه محو (fade out) می‌شود. اگر سیگنال بالاتر از ’threshold_level’ برود و بیش از ’hold’ میلی‌ثانیه در آنجا بماند، گیت طی زمان ’release’ میلی‌ثانیه رها می‌گردد. -ei:pitch-shift-% تغییردهنده زیروبمی صدا (Pitch shifter). زیروبمی صدا را با تغییر دادن طول آن دگرگون می‌کند. -epp:right-% ترازکننده استریو (Stereo panner). تعادل نسبی میان دو کانال اول را تغییر می‌دهد. هنگامی که ’right-%’ برابر با 0 باشد، تنها سیگنال کانال چپ (اول) عبور داده می‌شود؛ به همین ترتیب اگر ’100’ باشد، تنها کانال راست (دوم) عبور داده می‌شود. -ezx:channel-count,delta-ch1,...,delta-chN تنظیم آفست DC سیگنال به میزان ’delta-chX’، که در آن X شماره کانال است. از گزینه -ezf برای یافتن مقادیر دلتای بهینه استفاده کنید. ENVELOPE MODULATION -eemb:bpm,on-time-% گیت پالس (فرکانس پالس بر حسب ضربه در دقیقه یا bpm). -eemp:freq-Hz,on-time-% گیت پالس. -eemt:bpm,depth-% جلوه ترملو (Tremolo) (سرعت ترملو بر حسب ضربه در دقیقه یا bpm مشخص می‌شود). FILTER EFFECTS -ef1:center_freq, width فیلتر میان‌گذر تشدیدکننده (Resonant bandpass filter). مقدار ’center_freq’ فرکانس مرکزی است. پهنای باند بر حسب هرتز تعیین می‌شود. -ef3:cutoff_freq, reso, gain فیلتر پایین‌گذر تشدیدکننده (Resonant lowpass filter). مقدار ’cutoffr_freq’ فرکانس قطع فیلتر است. مقدار ’reso’ نشان‌دهنده تشدید (رزونانس) است؛ معمولاً بهترین مقادیر برای رزونانس میان 1.0 و 2.0 هستند، اما می‌توانید از مقادیر بزرگ‌تر نیز استفاده کنید. مقدار ’gain’ ضریب بهره کلی است؛ این یک ضریب ساده است (1.0 سطح نرمال است)؛ با مقادیر رزونانس بالا اغلب مفید است که مقدار بهره را کاهش دهید. -ef4:cutoff, resonance فیلتر پایین‌گذر تشدیدکننده (مرتبه ۳، ۳۶ دسی‌بل، الگوریتم اصلی از Stefan M. Fendt). یک مدار آنالوگ فعال RC-lowpass را شبیه‌سازی می‌کند. فرکانس قطع مقداری در بازه [0,1] و رزونانس مقداری در بازه [0,infinity) است. -efa:delay-samples,feedback-% فیلتر تمام‌گذر (Allpass filter). تمامی فرکانس‌ها را بدون تغییر در دامنه عبور می‌دهد. با این حال، به‌طور همزمان یک شیفت فاز وابسته به فرکانس اعمال می‌کند. -efc:delay-samples,radius فیلتر شانه‌ای (Comb filter). اجازه عبور به شاخک‌های شانه را می‌دهد. مقدار ’radius’ باید در بازه [0, 1.0) باشد. -efb:center-freq,width فیلتر میان‌گذر (Bandpass filter). مقدار ’center_freq’ فرکانس مرکزی است. پهنا بر حسب هرتز تعیین می‌شود. -efh:cutoff-freq فیلتر بالاگذر (Highpass filter). تنها فرکانس‌های بالاتر از ’cutoff_freq’ عبور داده می‌شوند. -efi:delay-samples,radius فیلتر شانه‌ای معکوس (Inverse comb filter). شاخک‌های شانه را فیلتر می‌کند. تعداد شاخک‌ها برابر با ’delay_in_samples-2’ است. مقدار ’radius’ باید در بازه [0, 1.0) باشد؛ هر چه به مقدار بیشینه نزدیک‌تر باشد، فرورفتگی‌های شانه عمیق‌تر خواهند بود. -efl:cutoff-freq فیلتر پایین‌گذر (Lowpass filter). تنها فرکانس‌های پایین‌تر از ’cutoff_freq’ عبور داده می‌شوند. -efr:center-freq,width فیلتر میان‌ناگذر (Bandreject filter). مقدار ’center_freq’ فرکانس مرکزی است. پهنا بر حسب هرتز تعیین می‌شود. -efs:center-freq,width رزوناتور (Resonator). مقدار ’center_freq’ فرکانس مرکزی است. پهنا بر حسب هرتز تعیین می‌شود. در اصل یک فیلتر میان‌گذر تشدیدکننده دیگر است. CHANNEL MIXING / ROUTING -chcopy:from-channel, to-channel کپی کردن کانال ’from_channel’ به ’to_channel’. اگر کانال ’to_channel’ وجود نداشته باشد، ایجاد می‌شود. شماره‌گذاری کانال‌ها از 1 آغاز می‌گردد. این گزینه در نسخه ۲.۴.۵ به ecasound افزوده شد. -chmove:from-channel, to-channel کپی کردن کانال ’from_channel’ به ’to_channel’ و بی‌صدا (mute) کردن کانال مبدا ’from_channel’. شماره‌گذاری کانال‌ها از 1 آغاز می‌گردد. این گزینه در نسخه ۲.۴.۵ به ecasound افزوده شد. -chorder:ch1,...,chN تغییر ترتیب، حذف و/یا تکرار کانال‌های زنجیره. جریان صوتی حاصل در مجموع دارای ’N’ کانال خواهد بود. هر پارامتر کانال مبدا را برای کانال خروجی داده‌شده تعیین می‌کند. به عنوان مثال، ’-chorder:2,1’ کانال‌های یک جریان استریو را معکوس می‌کند (’out1,out2’ = ’in2,in1’). تعیین چندباره یک کانال مبدا مجاز است؛ مثلاً ’-chorder:2,2’ کانال دوم را به هر دو کانال خروجی هدایت می‌کند (’out1,out2’ = ’in2,in2’). اگر ’chX’ صفر باشد، کانال مربوطه ’X’ در جریان خروجی بی‌صدا خواهد شد. این گزینه در نسخه ۲.۷.۰ به ecasound افزوده شد. -chmix:to-channel میکس تمامی کانال‌های مبدا در کانال ’to_channel’. اگر ’to_channel’ وجود نداشته باشد، ایجاد می‌شود. شماره‌گذاری کانال‌ها از 1 آغاز می‌شود. این گزینه در نسخه ۲.۴.۵ به ecasound اضافه شد. -chmute:channel بی‌صدا کردن کانال ’channel’. شماره‌گذاری کانال‌ها از 1 آغاز می‌شود. این گزینه در نسخه ۲.۴.۵ به ecasound اضافه شد. -erc:from-channel,to-channel منسوخ شده، به -chcopy مراجعه کنید. -erm:to-channel منسوخ شده، به -chmix مراجعه کنید. TIME-BASED EFFECTS -etc:delay-time-msec,variance-time-samples,feedback-%,lfo-freq جلوه کروس (Chorus). -etd:delay-time-msec,surround-mode,number-of-delays,mix-%,feedback-% جلوه تاخیر (Delay). مقدار ’delay time’ زمان تاخیر بر حسب میلی‌ثانیه است. مقدار ’surround-mode’ یک عدد صحیح با معانی زیر است: 0 = نرمال، 1 = فراگیر (surround)، 2 = گسترش استریو (stereo- spread). مقدار ’number_of_delays’ تعداد تکرارها است؛ توجه داشته باشید که تعداد بالای تاخیرها و زمان‌های تاخیر طولانی نیاز به توان پردازشی بالای CPU دارد. مقدار ’mix-%’ تعادل میکس میان سیگنال اصلی و تاخیریافته را بیان می‌کند، به طوری که 0 به معنی عدم وجود سیگنال تاخیریافته، 100 به معنای حذف سیگنال اصلی، و 50 (پیش‌فرض) برای تعادل مساوی است. مقدار ’feedback-%’ نشان می‌دهد چه مقدار از سیگنال در هر تاخیر بازچرخانی می‌شود یا به بیانی دیگر، قطعه صوتی تکرارشده با چه سرعتی محو می‌گردد؛ توجه داشته باشید که مقادیر بازخورد به اندازه کافی پایین ممکن است منجر به تعداد تکرارهای شنیداری کمتری نسبت به مقدار تعیین‌شده در ’number_of_delays’ شود، به ویژه اگر مقدار پایینی برای ’mix-%’ تنظیم کرده باشید؛ مقدار پیش‌فرض این پارامتر 100% است (بدون افت سیگنال). -ete:room_size,feedback-%,wet-% یک جلوه طنین (ریورب / Reverb) پیشرفته‌تر (الگوریتم اصلی توسط Stefan M. Fendt). مقدار ’room_size’ بر حسب متر داده می‌شود، ’feedback-%’ سطح بازخورد بر حسب درصد است و ’wet-%’ میزان سیگنال طنین‌دارشده اضافه به سیگنال اصلی است. -etf:delay-time-msec جلوه استریوی ساختگی (Fake-stereo). سیگنال ورودی به مونو تبدیل می‌شود؛ سیگنال اصلی به کانال چپ می‌رود در حالی که یک نسخه تاخیریافته (با تاخیر ’delay time’ میلی‌ثانیه) به کانال راست فرستاده می‌شود؛ با زمان تاخیر ۱ تا ۴۰ میلی‌ثانیه، این جلوه حس استریو را به سیگنال‌های مونو می‌افزاید. -etl:delay-time-msec,variance-time-samples,feedback-%,lfo-freq جلوه فلنجر (Flanger). -etm:delay-time-msec,number-of-delays,mix-% تاخیر چندشاخه (Multitap delay). مقدار ’delay time’ زمان تاخیر بر حسب میلی‌ثانیه است؛ پارامتر ’number_of_delays’ تعداد تکرارها را مشخص می‌کند؛ و ’mix-%’ تعیین می‌کند چه میزان از سیگنال افکت‌خورده (wet) با سیگنال اصلی میکس شود. -etp:delay-time-msec,variance-time-samples,feedback-%,lfo-freq جلوه فیزر (Phaser). -etr:delay-time,surround-mode,feedback-% جلوه طنین (Reverb). مقدار ’delay time’ زمان تاخیر بر حسب میلی‌ثانیه است؛ اگر ’surround-mode’ برابر با ’surround’ باشد، سیگنال طنین‌دار درون تصویر استریو جابه‌جا می‌شود؛ مقدار ’feedback-%’ تعیین می‌کند چه مقدار از سیگنال افکت‌خورده به ریورب بازخورد داده شود. LADSPA-PLUGINS -el:plugin_unique_name,param-1,...,param-N اکاساند از افزونه‌های افکت LADSPA (واسط برنامه‌نویسی ساده افزونه‌های توسعه‌دهنده صوت لینوکس) پشتیبانی می‌کند. پارامترهای ۱ تا N به عنوان مقادیر درگاه‌های کنترلی افزونه تنظیم می‌شوند. اگر افزونه بیش از یک درگاه ورودی و/یا خروجی صوتی داشته باشد، تنها یک نمونه از افزونه ایجاد می‌شود و کانال‌های زنجیره به همان یک نمونه داده می‌شوند. اگر افزونه حداکثر دارای یک درگاه ورودی و حداکثر یک درگاه خروجی صوتی باشد، برای هر کانال زنجیره اکاساند یک نمونه افزونه جداگانه ایجاد می‌شود (مثلاً برای یک کانال صوتی استریو، دو افزونه LADSPA از همان نوع ساخته می‌شود که برای هر کانال یکی خواهد بود). افزونه‌ها در پرونده‌های کتابخانه اشتراکی (.so) قرار دارند. اکاساند افزونه‌ها را در @prefix@/lib/ladspa (مثلاً "/usr/local/lib/ladspa") و دایرکتوری‌های فهرست‌شده در متغیر محیطی LADSPA_PATH جستجو می‌کند. مسیر جستجوی افزونه را می‌توان از طریق ecasoundrc نیز پیکربندی کرد؛ به صفحه راهنمای ecasoundrc(5) مراجعه کنید. یک پرونده کتابخانه اشتراکی می‌تواند حاوی چندین شیء افزونه باشد، اما هر افزونه نام یکتای خود را دارد که برای انتخاب افزونه استفاده می‌شود. برای اطلاعات بیشتر در مورد LADSPA به وب‌سایت لیست پستی LAD مراجعه کنید. سایر سایت‌های مفید صفحه اصلی LADSPA و مستندات LADSPA هستند. -eli:plugin_unique_number,param-1,...,param-N مشابه با مورد بالا (-el)، با این تفاوت که از شماره شناسه یکتای افزونه استفاده می‌شود. تضمین شده است که این شماره‌های شناسه در میان تمام افزونه‌های LADSPA یکتا هستند. LV2 PLUGINS -elv2:plugin-id-uri,param-1,...,param-N اکاساند همچنین از افزونه‌های صوتی LV2 پشتیبانی می‌کند. افزونه‌های LV2 با یک شناسه حساس به حروف بزرگ و کوچک و یکتا در سطح جهانی شناخته می‌شوند. اگر افزونه بیش از یک درگاه ورودی و/یا خروجی صوتی داشته باشد، تنها یک نمونه ایجاد شده و کانال‌های زنجیره به آن ارسال می‌شوند. اگر افزونه حداکثر دارای یک درگاه ورودی و خروجی صوتی باشد، برای هر کانال زنجیره یک نمونه جداگانه ایجاد می‌شود (برای کانال استریو، دو افزونه LV2 از همان نوع ایجاد می‌شود). افزونه LV2 یک استاندارد برای افزونه‌های سامانه‌های صوتی است. GATE SETUP -gc:start-time,len گیت برش زمانی (Time crop gate). در ابتدا گیت بسته است. پس از گذشت ’start-time’ ثانیه، گیت باز شده و به مدت ’len’ ثانیه باز می‌ماند. در زمان بسته بودن، بافرهای صوتی عبوری به طول صفر کوتاه می‌شوند. -ge:open-threshold-%,close-thold-%,volume-mode,reopen-count گیت آستانه (Threshold gate). در ابتدا گیت بسته است. هنگامی که حجم صدا از درصد ’othreshold’ بالاتر رود باز می‌شود. پس از آن، اگر حجم صدا به زیر درصد ’cthold’ افت کند، گیت بسته شده و دوباره باز نخواهد شد، مگر اینکه ’reopen-count’ روی مقداری غیر از صفر تنظیم شده باشد. اگر ’value_mode’ برابر با ’rms’ باشد، میانگین حجم RMS استفاده می‌شود؛ در غیر این صورت میانگین اوج به کار می‌رود. در حالت بسته، بافرهای صوتی عبوری به طول صفر کوتاه می‌شوند. اگر ’reopen-count’ به یک عدد مثبت تنظیم شود، گیت عملکرد خود را همان تعداد بار مجدداً آغاز خواهد کرد؛ بنابراین برای مثال مقدار reopen count برابر با 1 موجب حداکثر ۲ بار باز شدن گیت می‌شود. یک مقدار منفی برای ’reopen-count’ منجر به بازگشایی نامحدود گیت می‌گردد. پارامتر ’reopen-count’ در ضبط صفحات گرامافون و نوارهای کاست بسیار ارزشمند است، جایی که می‌توانید همه‌چیز را تنظیم کنید و سپس ضبط هر زمان که سوزن روی صفحه قرار گیرد آغاز شده و با برداشتن سوزن متوقف گردد. هر تعداد طرف صفحه که بخواهید را می‌توان در یک نشست ضبط کرد. شما باید با طول‌های بافر و سطوح شروع/توقف آزمایش کنید تا تنظیمات مطمئنی برای تجهیزات خود به دست آورید. -gm:state گیت دستی (Manual gate). اگر ’state’ برابر با 1 باشد، گیت باز است و تمام نمونه‌ها عبور داده می‌شوند. اگر ’state’ صفر باشد، گیت بسته است و هیچ نمونه‌ای اجازه عبور ندارد. این عملگر زنجیره زمانی مفید است که نوشتن روی یک خروجی باید به صورت پویا (بدون متوقف کردن کل موتور) متوقف شود. CONTROL ENVELOPE SETUP Controllers can be used to dynamically change effect parameters during processing. All controllers are attached to the selected (=usually the last specified effect/controller) effect. The first three parameters are common for all controllers. ’fx_param’ specifies the parameter to be controlled. Value ’1’ means the first parameter, ’2’ the second and so on. ’start_value’ and ’end_value’ set the value range. For examples, look at the the EXAMPLES section. -kos:fx-param,start-value,end-value,freq,i-phase Sine oscillator with frequency of ’freq’ Hz and initial phase of ’i_phase’ times pi. -kog:fx-param,start-value,end-value,freq,mode,point-pairs,first-value,last-value,pos1,value1,... Generic oscillator. Frequency ’freq’ Hz, mode either ’0’ for static values or ’1’ for linear interpolation. ’point-pairs’ specifies the number of ’posN’ - ’valueN’ pairs to include. ’first-value’ and ’last-value’ are used as border values (values for position 0.0/first and position 1.0/last). All ’posN’ and ’valueN’ must be between 0.0 and 1.0. Also, for all ’posN’ values ’pos1 < pos2 < ... < posN’ must be true. -kf:fx-param,start-value,end-value,freq,mode,genosc-number Generic oscillator. ’genosc_number’ is the number of the oscillator preset to be loaded. Mode is either ’0’ for static values or ’1’ for linear interpolation. The location for the preset file is taken from ./ecasoundrc (see ecasoundrc man page). -kl:fx-param,start-value,end-value,time-seconds Linear envelope that starts from ’start_value’ and linearly changes to ’end_value’ during ’time_in_seconds’. Can be used for fadeins and fadeouts. -kl2:fx-param,start-value,end-value,1st-stage-length-sec,2nd-stage-length-sec Two-stage linear envelope, a more versatile tool for doing fade-ins and fade-outs. Stays at ’start_value’ for ’1st_stage_length’ seconds and then linearly changes towards ’end_value’ during ’2nd_stage_length’ seconds. -klg:fx-param,low-value,high-value,point_count,pos1,value1,...,posN,valueN Generic linear envelope. This controller source can be used to map custom envelopes to chain operator parameters. Number of envelope points is specified in ’point_count’. Each envelope point consists of a position and a matching value. Number of pairs must match ’point_count’ (i.e. ’N==point_count’). The ’posX’ parameters are given as seconds (from start of the stream). The envelope points are specified as float values in range ’[0,1]’. Before envelope values are mapped to operator parameters, they are mapped to the target range of ’[low-value,high-value]’. E.g. a value of ’0’ will set operator parameter to ’low-value’ and a value of ’1’ will set it to ’high-value’. For the initial segment ’[0,pos1]’, the envelope will output value of ’value1’ (e.g. ’low-value’). -km:fx-param,start-value,end-value,controller,channel MIDI continuous controller (control change messages). Messages on the MIDI-channel ’channel’ that are coming from controller number ’controller’ are used as the controller source. As recommended by the MIDI-specification, channel numbering goes from 1 to 16. Possible controller numbers are values from 0 to 127. The MIDI-device where bytes are read from can be specified using -Md option. Otherwise the default MIDI-device is used as specified in ~ecasound/ecasoundrc (see ecasoundrc man page). Defaults to /dev/midi. -ksv:fx-param,start-value,end-value,stamp-id,rms-toggle Volume analyze controller. Analyzes the audio stored in stamp ’stamp-id’ (see ’-eS:id’ docs), and creates control data based on the results. If ’rms-toggle’ is non-zero, RMS-volume is used to calculate the control value. Otherwise average peak-amplitude is used. -kx This is a special switch that can be used when you need to control controller parameters with another controller. When you specify -kx, the last specified controller will be set as the control target. Then you just add another controller as usual. INTERACTIVE MODE See ecasound-iam(1) man page. محیط (ENVIRONMENT) ECASOUND If defined, some utility programs and scripts will use the ECASOUND environment as the default path to ecasound executable. ECASOUND_LOGFILE Output all debugging messages to a separate log file. If defined, ECASOUND_LOGFILE defines the logfile path. This is a good tool for debugging ECI/EIAM scripts and applications. ECASOUND_LOGLEVEL Select which messages are written to the logfile defined by ECASOUND_LOGFILE. The syntax for -d:level is used. If not defined, all messages are written. Defaults to -d:319 (everything else but ’functions (64)’ and ’continuous (128)’ class messages). COLUMNS Ecasound honors the COLUMNS environment variable when formatting printed trace messages. If COLUMNS is not set, a default of 74 is used. TMPDIR Some functions of Ecasound (e.g. "cs-edit" interactive command) require creation of temporary files. By default, these files are created under "/tmp", but this can be overridden by setting the TMPDIR environment variable. RETURN VALUES In interactive mode, ecasound always returns zero. In non-interactive (batch) mode, a non-zero value is returned for the following errors: 1 Unable to create a valid chainsetup with the given parameters. Can be caused by invalid option syntax, etc. 2 Unable to start processing. This can be caused by insufficient file permissions, inability to access some system resources, etc. 3 Error during processing. Possible causes: output object has run out of free disk space, etc. 4 Error during process termination and/or cleanup. See section on ’SIGNALS’ for further details. SIGNALS When ecasound receives any of the POSIX signals SIGINT (ctrl-c), SIGHUP, SIGTERM or SIGQUIT, normal cleanup and exit procedure is initiated. Here normal exit means that e.g. file headers are updated before closing, helper processes are terminated in normal way, and so forth. If, while doing the cleanup described above, ecasound receives another signal (of the same set of POSIX signals), ecasound will skip the normal cleanup procedure, and terminate immediately. Any remaining cleanup tasks will be skipped. Depending on the runtime state and configuration, this brute force exit may have some side-effects. Ecasound will return exit code of ’4’ if normal cleanup was skipped. Special case handling is applied to the SIGINT (ctrl-c) signal. If a SIGINT signal is received during the cleanup procedure, ecasound will ignore the signal once, and emit a notice to ’stderr’ that cleanup is already in progress. Any subsequent SIGINT signals will no longer get special handling, and instead process will terminate immediately (and possibly without proper cleanup). فایل‌ها (FILES) ~/.ecasound The default directory for ecasound user resource files. See the ecasoundrc (5) man page man page. *.ecs Ecasound Chainsetup files. Syntax is more or less the same as with command-line arguments. *.ecp Ecasound Chain Preset files. Used for storing effect and chain operator presets. See ecasound user’s guide for more better documentation. *.ews Ecasound Wave Stats. These files are used to cache waveform data. مثال‌ها (EXAMPLES) Examples of how to perform common tasks with ecasound can be found at http://nosignal.fi/ecasound/Documentation/examples.html. همچنین ببینید (SEE ALSO) ecatools (1) man page, ecasound-iam (1) man page ecasoundrc (5) man page, "HTML docs in the Documentation subdirectory" اشکالات (BUGS) See file BUGS. If ecasound behaves weirdly, try to increase the debug level to see what’s going on. نویسنده (AUTHOR) Kai Vehmanen, > 05.05.2011 ecasound(1)