.TH DSP 1 dsp\-2.0 .SH "نام (NAME)" dsp \- برنامه پردازش صدا همراه با حالت تعاملی .SH "خلاصه دستور (SYNOPSIS)" .B dsp [\fIoptions\fR] \fIpath\fR ... [\fIeffect\fR [\fIargs\fR]] ... .SH "توضیحات (DESCRIPTION)" دستور .B dsp یک برنامه پردازش سیگنال صوتی همراه با یک حالت تعاملی است\&. .SH "گزینه‌ها (OPTIONS)" .SS "گزینه‌های عمومی (Global options)" .TP \fB\-h\fR نمایش متن راهنما\&. .TP \fB\-b\fR \fIframes\fR اندازه بلوک (باید پیش از نخستین ورودی مشخص شود)\&. .TP \fB\-i\fR اجبار به استفاده از حالت تعاملی\&. .TP \fB\-I\fR غیرفعال کردن حالت تعاملی\&. .TP \fB\-q\fR غیرفعال کردن نمایش میزان پیشرفت\&. .TP \fB\-s\fR حالت بی‌صدا\&. .TP \fB\-v\fR حالت پرجزئیات (Verbose)\&. .TP \fB\-d\fR اجبار به اعمال دیترینگ (Dithering)\&. .TP \fB\-D\fR غیرفعال کردن دیترینگ\&. .TP \fB\-E\fR عدم تخلیه زنجیره جلوه‌ها پیش از بازسازی مجدد\&. .TP \fB\-p\fR رسم پاسخ دامنه زنجیره جلوه‌ها به جای پردازش صدا\&. .TP \fB\-P\fR مشابه \fB\-p\fR، اما علاوه بر دامنه، پاسخ فاز را نیز رسم می‌کند\&. .TP \fB\-V\fR نمایش پیشرفت با جزئیات کامل\&. .TP \fB\-S\fR استفاده از حالت ترکیب ورودی به صورت ترتیبی (sequence)\&. .SS "گزینه‌های ورودی/خروجی (Input/output options)" .TP \fB\-o\fR خروجی\&. .TP \fB\-t\fR \fItype\fR نوع\&. .TP \fB\-e\fR \fIencoding\fR کدگذاری (Encoding)\&. .TP \fB\-B\fR/\fBL\fR/\fBN\fR ترتیب بایت‌ها به صورت big/little/native endian\&. .TP \fB\-r\fR \fIfrequency\fR[\fBk\fR] نرخ نمونه‌برداری\&. .TP \fB\-c\fR \fIchannels\fR تعداد کانال‌ها\&. .TP \fB\-R\fR \fIratio\fR نسبت بافر\&. .TP \fB\-n\fR معادل با: .EX -t null null. .EE.SH "ورودی‌ها و خروجی‌ها (INPUTS AND OUTPUTS)" برای مشاهده فهرست کامل انواع ورودی/خروجی‌های پشتیبانی‌شده، این دستور را اجرا کنید: .EX $ dsp -h .EE .SS "حالت‌های ترکیب ورودی (Input combining modes)" در حالت الحاق (concatenate) که حالت پیش‌فرض است، ورودی‌ها به همان ترتیبی که مشخص شده‌اند به یکدیگر متصل شده و به خروجی فرستاده می‌شوند\&. تمام ورودی‌ها باید دارای نرخ نمونه‌برداری و تعداد کانال‌های یکسان باشند\&. .PP در حالت ترتیبی (sequence)، ورودی‌ها مانند حالت الحاق به صورت متوالی به خروجی ارسال می‌شوند، اما نیازی نیست که ورودی‌ها دارای نرخ نمونه‌برداری یا تعداد کانال یکسان باشند\&. در صورت نیاز، زنجیره جلوه‌ها و/یا خروجی بازسازی و مجدداً باز خواهند شد\&. توجه داشته باشید که اگر خروجی یک فایل باشد، در صورت بازگشایی مجدد، فایل کوتاه‌سازی (truncate) خواهد شد\&. این حالت بیشتر زمانی مفید است که خروجی یک دستگاه صوتی باشد، اما در صورت استفاده به همراه جلوه‌های \fBresample\fR و/یا \fBremix\fR، می‌تواند برای ادغام ورودی‌هایی با نرخ‌های نمونه‌برداری و/یا تعداد کانال‌های متفاوت در یک فایل خروجی واحد نیز به کار رود\&. .SS "مولد سیگنال (Signal generator)" نوع ورودی \fBsgen\fR یک مولد سیگنال پایه است (حداقل در حال حاضر) که می‌تواند ضربه‌ها و جاروب‌های سینوسی نمایی را تولید کند\&. نحو (سینتکس) برای آرگومان \fIpath\fR به شرح زیر است: .PP .RS [\fItype\fR[@\fIchannel_selector\fR][:\fIarg\fR[=\fIvalue\fR]...]][/\fItype\fR...][+\fIlen\fR[\fBs\fR|\fBm\fR|\fBS\fR]] .RE .PP مقدار \fItype\fR می‌تواند برای جاروب‌ها یا تُن‌های سینوسی برابر با \(aqsine\(aq یا برای تابع دلتا (ضربه) برابر با \(aqdelta\(aq باشد\&. شناسه \(aqsine\(aq آرگومان‌های زیر را می‌پذیرد: .TP \fBfreq\fR=\fIf0\fR[\fBk\fR][\-\fIf1\fR[\fBk\fR]] بسامد (فرکانس)\&. اگر \fIlen\fR تعیین شده و \fIf1\fR داده شود، یک جاروب سینوسی نمایی تولید می‌شود\&. .PP آرگومان‌های مربوط به \(aqdelta\(aq عبارتند از: .TP \fBoffset\fR=\fItime\fR[\fBs\fR|\fBm\fR|\fBS\fR] انحراف (offset) بر حسب ثانیه، میلی‌ثانیه یا نمونه‌ها\&. .PP مثال: .EX $ dsp -t sgen -c 2 sine@0:freq=500-1k/sine@1:freq=300-800+2 gain -10 .EE .SH "جلوه‌ها (EFFECTS)" .SS "فهرست کامل جلوه‌ها (Complete effects list)" .TP \fBlowpass_1\fR \fIf0\fR[\fBk\fR] فیلتر پایین‌گذر مرتبه اول\&. .TP \fBhighpass_1\fR \fIf0\fR[\fBk\fR] فیلتر بالاگذر مرتبه اول\&. .TP \fBallpass_1\fR \fIf0\fR[\fBk\fR] فیلتر تمام‌گذر مرتبه اول\&. .TP \fBlowshelf_1\fR \fIf0\fR[\fBk\fR] \fIgain\fR فیلتر قفسه‌ای فرکانس‌پایین (lowshelf) مرتبه اول\&. .TP \fBhighshelf_1\fR \fIf0\fR[\fBk\fR] \fIgain\fR فیلتر قفسه‌ای فرکانس‌بالا (highshelf) مرتبه اول\&. .TP \fBlowpass_1p\fR \fIf0\fR[\fBk\fR] فیلتر پایین‌گذر تک‌قطبی (EWMA)\&. .TP \fBlowpass\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBo\fR|\fBh\fR|\fBk\fR] فیلتر پایین‌گذر مرتبه دوم\&. .TP \fBhighpass\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBo\fR|\fBh\fR|\fBk\fR] فیلتر بالاگذر مرتبه دوم\&. .TP \fBbandpass_skirt\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBo\fR|\fBh\fR|\fBk\fR] فیلتر میان‌گذر مرتبه دوم با بهره دامنه‌ای ثابت (constant skirt gain)\&. .TP \fBbandpass_peak\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBo\fR|\fBh\fR|\fBk\fR] فیلتر میان‌گذر مرتبه دوم با بهره قله‌ای ثابت (constant peak gain)\&. .TP \fBnotch\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBo\fR|\fBh\fR|\fBk\fR] فیلتر میان‌ناگذر یا شکافی (notch) مرتبه دوم\&. .TP \fBallpass\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBo\fR|\fBh\fR|\fBk\fR] فیلتر تمام‌گذر مرتبه دوم\&. .TP \fBeq\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBo\fR|\fBh\fR|\fBk\fR] \fIgain\fR فیلتر قله‌ای (peaking) مرتبه دوم (اکولایزر)\&. .TP \fBlowshelf\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBs\fR|\fBd\fR|\fBo\fR|\fBh\fR|\fBk\fR] \fIgain\fR فیلتر قفسه‌ای فرکانس‌پایین مرتبه دوم\&. .TP \fBhighshelf\fR \fIf0\fR[\fBk\fR] \fIwidth\fR[\fBq\fR|\fBs\fR|\fBd\fR|\fBo\fR|\fBh\fR|\fBk\fR] \fIgain\fR فیلتر قفسه‌ای فرکانس‌بالا مرتبه دوم\&. .TP \fBlowpass_transform\fR \fIfz\fR[\fBk\fR] \fIwidth_z\fR[\fBq\fR] \fIfp\fR[\fBk\fR] \fIwidth_p\fR[\fBq\fR] فیلتر تبدیل پایین‌گذر مرتبه دوم\&. قطب‌های تعریف‌شده توسط \fIfz\fR و \fIwidth_z\fR را حذف کرده و آن‌ها را با قطب‌های جدید تعریف‌شده با \fIfp\fR و \fIwidth_p\fR جایگزین می‌کند\&. بهره در DC برابر یک است\&. .TP \fBhighpass_transform\fR \fIfz\fR[\fBk\fR] \fIwidth_z\fR[\fBq\fR] \fIfp\fR[\fBk\fR] \fIwidth_p\fR[\fBq\fR] فیلتر تبدیل بالاگذر مرتبه دوم که با نام تبدیل لینک‌ویتز (Linkwitz transform) نیز شناخته می‌شود (ببینید: )\&. مشابه با \fBlowpass_transform\fR است، به جز اینکه بهره در Fs/2 برابر یک است\&. .TP \fBlinkwitz_transform\fR \fIfz\fR[\fBk\fR] \fIwidth_z\fR[\fBq\fR] \fIfp\fR[\fBk\fR] \fIwidth_p\fR[\fBq\fR] نام مستعار برای \fBhighpass_transform\fR\&. .TP \fBdeemph\fR فیلتر برطرف‌کننده تأکید (de-emphasis) برای دیسک فشرده صوتی (CD)\&. .TP \fBbiquad\fR \fIb0\fR \fIb1\fR \fIb2\fR \fIa0\fR \fIa1\fR \fIa2\fR فیلتر بای‌کواد (Biquad)\&. .TP \fBgain\fR \fIgain_dB\fR تنظیم بهره بر حسب دسی‌بل\&. .TP \fBmult\fR \fImultiplier\fR ضرب هر نمونه در مقدار \fImultiplier\fR\&. .TP \fBadd\fR \fIvalue\fR اعمال شیفت DC\&. .TP \fBcrossfeed\fR \fIf0\fR[\fBk\fR] \fIseparation\fR کراس‌فید ساده برای هدفون، بسیار شبیه به کراس‌فید Linkwitz/Meier/CMoy/bs2b\&. .TP \fBmatrix4\fR [\fIoptions\fR] [\fIsurround_level\fR] آپ‌میکسر فعال ۲ به ۴ کانال (۲ جلو و ۲ فراگیر/سوراند) طراحی‌شده برای محتوای استریوی عادی (کدگذاری‌نشده)\&. .sp 0.5 پیکربندی بلندگوی مورد نظر عبارت است از بلندگوهای جلو در ۳۰°± و فراگیر بین ۶۰°± تا ۱۲۰°±\&. برای بهترین نتایج، بلندگوهای فراگیر باید از نظر سطح صدا و پاسخ فرکانسی به درستی کالیبره شوند\&. صدای فراگیر باید حدود ۱۰ تا ۲۵ میلی‌ثانیه (از نظر آکوستیک) نسبت به جلو تأخیر داشته باشد\&. هیچ کانتورینگ فرکانسی به صورت داخلی انجام نمی‌شود، بنابراین اعمال فیلترهای پایین‌گذر و/یا قفسه‌ای به خروجی‌های فراگیر توصیه می‌شود: .EX matrix4 surround_delay=15m -6 :2,3 lowpass_1 10k : .EE تنظیمات نشان‌داده‌شده در بالا (سطح فراگیر \-۶ دسی‌بل، تأخیر ۱۵ میلی‌ثانیه و افت فرکانسی ۱۰ کیلوهرتز) یک نقطه شروع مناسب است، اما می‌تواند بر اساس سلیقه شخصی تنظیم شود\&. مقدار پیش‌فرض \fIsurround_level\fR برابر با \-۶ دسی‌بل است\&. اعمال جلوه \fBdecorrelate\fR به خروجی‌های فراگیر (به صورت اختیاری با پرچم \fB\-m\fR) به نظر می‌رسد احساس فضایی بودن صدا را بیشتر بهبود می‌بخشد (توجه: برای جبران تأخیر گروهیِ جلوه \fBdecorrelate\fR، مقدار \(aqsurround_delay\(aq را تنظیم کنید)\&. .sp 0.5 خروجی‌های جلو جایگزین کانال‌های ورودی اصلی می‌شوند و خروجی‌های فراگیر به انتهای فهرست کانال‌ها اضافه می‌گردند\&. .sp 0.5 گزینه‌ها به عنوان فهرستی جداشده با کاما مشخص می‌شوند\&. گزینه‌های شناخته‌شده عبارتند از: .RS .TP \fBno_dir_boost\fR غیرفعال کردن تقویت جهت‌دار کانال‌های جلو\&. .TP \fBshow_status\fR نمایش خط وضعیت (در حال حاضر دارای اشکالات جزئی است، اما همچنان برای اشکال‌زدایی مفید است)\&. .TP \fBsignal\fR تغییر وضعیت جلوه هنگام فراخوانی \(aqeffect.signal()\(aq\&. .TP \fBlinear_phase\fR (تنها در \fBmatrix4_mb\fR) اعمال فیلتر FIR برای اصلاح اعوجاج فاز ناشی از بانک فیلتر IIR\&. در \fBmatrix4\fR هیچ تأثیری ندارد و نیازمند جلوه \fBfir\fR است\&. .TP \fBsurround_delay\fR=\fIdelay\fR[\fBs\fR|\fBm\fR|\fBS\fR] تأخیر خروجی فراگیر\&. پیش‌فرض صفر است\&. .TP \fBfilter_type\fR=\fIfilter\fR[:\fIstop_dB\fR[:\fIstop_dB\fR]] (تنها در \fBmatrix4_mb\fR) نوع فیلتر مورد استفاده برای بخش‌های پایین‌گذر بانک فیلتر\&. مقدار \fIfilter\fR می‌تواند \fIbutterworth\fR، \fIchebyshev1\fR، \fIchebyshev2\fR یا \fIelliptic\fR (پیش‌فرض) باشد\&. .sp 0.5 پارامتر(های) اختیاری \fIstop_dB\fR تضعیف باند متوقف را بر حسب دسی‌بل برای فیلترهای چبیشف و بیضوی تعیین می‌کند\&. برای \fIchebyshev1\fR و \fIchebyshev2\fR تنها پارامتر نخست استفاده می‌شود\&. برای \fIelliptic\fR، پارامتر نخست برای فیلتر پایین‌گذر و دومی برای بالاگذر اعمال می‌شود\&. اگر تنها یک پارامتر داده شود، برای هر دو باند متوقف اعمال می‌گردد\&. مقادیر پیش‌فرض برای \fIchebyshev1\fR و \fIchebyshev2\fR برابر ۲۵ و برای \fIelliptic\fR برابر ۳۵:۵۰ است\&. .RE .TP \fBmatrix4_mb\fR [\fIoptions\fR] [\fIsurround_level\fR] مشابه جلوه \fBmatrix4\fR است، اما ورودی را به یازده باند هدایت‌شده به صورت جداگانه تقسیم می‌کند تا تفکیک منابع صوتی همزمان را بهبود بخشد\&. برای اطلاعات بیشتر به توضیحات جلوه \fBmatrix4\fR مراجعه کنید\&. .TP \fBremix\fR \fIselector\fR|. ... انتخاب و ترکیب کانال‌های ورودی در کانال‌های خروجی\&. هر شناسه انتخابگر (selector)، کانال‌های ورودی را که باید برای تولید یک کانال خروجی با هم ترکیب شوند، مشخص می‌کند\&. علامت \(aq.\(aq هیچ کانال ورودی را انتخاب نمی‌کند\&. برای مثال: .EX remix 0,1 2,3 .EE کانال‌های ورودی ۰ و ۱ را در کانال خروجی ۰، و کانال‌های ورودی ۲ و ۳ را در کانال خروجی ۱ ترکیب می‌کند\&. .EX remix - .EE تمام کانال‌های ورودی را در یک کانال خروجی واحد ترکیب می‌کند\&. انتخابگر کانال فعال به عنوان یک ماسک کانال ورودی برای شناسه‌های انتخابگر استفاده می‌شود\&. .TP \fBst2ms\fR تبدیل استریو به میانه/کنار (mid/side)\&. .TP \fBms2st\fR تبدیل میانه/کنار به استریو\&. .TP \fBdelay\fR [\fB\-f\fR [\fIorder\fR]] \fIdelay\fR[\fBs\fR|\fBm\fR|\fBS\fR] خط تأخیر\&. یکای آرگومان \fIdelay\fR بستگی به پسوند استفاده‌شده دارد: \(aq\fBs\fR\(aq ثانیه (پیش‌فرض)، \(aq\fBm\fR\(aq میلی‌ثانیه و \(aq\fBS\fR\(aq نمونه‌ها\&. اگر مقدار \fIdelay\fR منفی باشد، یک تأخیر مثبت به تمام کانال‌هایی که انتخاب \fBنشده‌اند\fR اعمال می‌شود (به جز هنگام رسم\(emدر آن حالت یک تأخیر منفی واقعی امکان‌پذیر است)\&. .sp 0.5 به‌طور پیش‌فرض، تأخیر به نمونه‌های کامل گرد می‌شود\&. گزینه \fB\-f\fR تأخیر کسری را با استفاده از درونیابی تمام‌گذر تیران (Thiran allpass interpolation) فعال می‌کند\&. آرگومان \fIorder\fR مرتبه فیلتر تمام‌گذر را تعیین می‌کند و می‌تواند هر عدد صحیحی از ۱ تا ۵۰ باشد\&. مقدار پیش‌فرض ۵ است\&. .TP \fBresample\fR [\fIbandwidth\fR] \fIfs\fR[\fBk\fR] بازنمونه‌بردار Sinc\&. انتخابگر کانال را نادیده می‌گیرد\&. .TP \fBfir\fR [\fIinput_options\fR] [file:][~/]\fIfilter_path\fR|coefs:\fIlist\fR[/\fIlist\fR...] کانولوشن مستقیم یا FFT ۶۴ بیتی بدون بخش‌بندی (Non-partitioned)\&. تأخیر برای فیلترهای تا ۱۶ تپ (tap) صفر است\&. برای فیلترهای طولانی‌تر، تأخیر برابر با \fIfft_len\fR گزارش‌شده در حالت پرجزئیات (verbose) است\&. هر \fIlist\fR یک فهرست جداشده با کاما از ضرایب برای یک کانال فیلتر است\&. مقادیر از قلم افتاده با صفر پر می‌شوند\&. .sp 0.5 گزینه‌های \fIinput_options\fR بیشتر هنگام بارگذاری فایل‌های ورودی خام (بدون سرایند) مفید هستند و عبارتند از: .RS .TP \fB\-t\fR \fItype\fR نوع\&. .TP \fB\-e\fR \fIencoding\fR کدگذاری\&. .TP \fB\-B\fR/\fBL\fR/\fBN\fR ترتیب بایت‌ها به صورت big/little/native endian\&..TP \fB\-r\fR \fIfrequency\fR[\fBk\fR] نرخ نمونه‌برداری\&. .TP \fB\-c\fR \fIchannels\fR تعداد کانال‌ها\&. .RE .TP \ به‌طور پیش‌فرض، نرخ نمونه‌برداری فیلتر باید با نرخ جلوه مطابقت داشته باشد\&. عدم تطابق را می‌توان با تنظیم نرخ نمونه‌برداری روی ``any'' نادیده گرفت\&. .TP \fBfir_p\fR [\fIinput_options\fR] [\fImax_part_len\fR] [file:][~/]\fIfilter_path\fR|coefs:\fIlist\fR[/\fIlist\fR...] کانولوشن ۶۴ بیتی مستقیم/FFT بخش‌بندی‌شده ناهمگن با تأخیر صفر\&. معمولاً کمی کندتر از جلوه \fBzita_convolver\fR است، به‌جز برای فیلترهای بسیار طولانی در برخی سخت‌افزارها\&. مقدار \fImax_part_len\fR باید توانی از ۲ باشد و مقدار پیش‌فرض آن ۱۶۳۸۴ است\&. هر \fIlist\fR یک فهرست جداشده با کاما از ضرایب برای یک کانال فیلتر است\&. مقادیر ناموجود با صفر پر می‌شوند\&. .sp 0.5 برای توضیح \fIinput_options\fR به شرح جلوه \fBfir\fR مراجعه کنید\&. .TP \fBzita_convolver\fR [\fIinput_options\fR] [\fImin_part_len\fR [\fImax_part_len\fR]] [file:][~/]\fIfilter_path\fR|coefs:\fIlist\fR[/\fIlist\fR...] کانولوشن ۳۲ بیتی FFT بخش‌بندی‌شده با استفاده از کتابخانه zita-convolver\&. تأخیر برابر با \fImin_part_len\fR است (به‌طور پیش‌فرض ۶۴ نمونه)\&. مقادیر \fI{min,max}_part_len\fR باید توان‌هایی از ۲ بین ۶۴ و ۸۱۹۲ باشند\&. هر \fIlist\fR یک فهرست جداشده با کاما از ضرایب برای یک کانال فیلتر است\&. مقادیر ناموجود با صفر پر می‌شوند\&. .sp 0.5 برای توضیح \fIinput_options\fR به شرح جلوه \fBfir\fR مراجعه کنید\&. .TP \fBhilbert\fR [\fB\-pz\fR] [\fB\-a\fR \fIangle\fR] \fItaps\fR تقریب ساده FIR از تبدیل هیلبرت (Hilbert transform)\&. تعداد تپ‌ها باید فرد باشد\&. پهنای باند توسط تعداد تپ‌ها کنترل می‌شود\&. اگر گزینه \fB\-p\fR داده شود، موتور کانولوشن \fBfir_p\fR به‌جای موتور پیش‌فرض \fBfir\fR استفاده می‌شود\&. به‌طور مشابه، اگر \fB\-z\fR مشخص شود، از \fBzita_convolver\fR (در صورت در دسترس بودن) استفاده می‌شود\&. گزینه \fB\-a\fR تغییر فاز را بر حسب درجه تعیین می‌کند (پیش‌فرض ۹۰°- است)\&. .TP \fBdecorrelate\fR [\fB\-m\fR] [\fB\-s\fR \fIseed\fR] [\fIstages\fR] همبستگی‌زدای تمام‌گذر مطابق با مقاله ``Frequency-Dependent Schroeder Allpass Filters'' اثر سباستین جی\&. شلشت (doi:10.3390/app10010187)\&. اگر \fB\-m\fR مشخص شود، پارامترهای فیلتر یکسانی برای تمام کانال‌های ورودی استفاده می‌شود\&. تعداد پیش‌فرض مراحل ۵ است که منجر به یک تأخیر گروهی میانگین حدود ۹.۵ میلی‌ثانیه در فرکانس‌های بالا می‌شود\&. گزینه \fB\-s\fR مقدار دانه تصادفی (seed) را برای تولید پارامترهای فیلتر تعیین می‌کند\&. .TP \fBnoise\fR \fIlevel\fR[\fBb\fR] افزودن نویز TPDF\&. آرگومان \fIlevel\fR اگر بدون پسوند باشد سطح قله نویز را بر حسب dBFS مشخص می‌کند، یا در صورت ارائه پسوند `\fBb\fR' دقت مؤثر بر حسب بیت را تعیین می‌کند\&. .TP \fBdither\fR [\fIshape\fR] [[\fIquantize_bits\fR] \fIbits\fR] اعمال دیتر (dither) همراه با شکل‌دهی اختیاری نویز (noise shaping)\&. آرگومان \fIshape\fR نوع دیتر و فیلتر شکل‌دهی نویز (در صورت وجود) را مشخص می‌کند: .TS tab (|); lB lB lI l. نام|توضیحات _ flat|نویز TPDF تخت بدون بازخورد (پیش‌فرض). sloped|نویز TPDF تخت با بازخورد؛ پاسخ بالاگذر مرتبه اول. sloped2|نویز TPDF شیب‌دار با بازخورد؛ تأکید بیشتر روی فرکانس بالا نسبت به \fIsloped\fR. lipshitz|منحنی ۵ تپ با وزن E برگرفته از [1]؛ با شکاف‌های حدود 4k و 12k. wan3|منحنی ۳ تپ با وزن F برگرفته از [2]؛ با شکاف حدود 4k. wan9|منحنی ۹ تپ با وزن F برگرفته از [2]؛ با شکاف‌های حدود 3.5k و 12k. .TE آرگومان \fIbits\fR سطح دیتر را بر حسب بیت تعیین می‌کند\&. آرگومان \fIquantize_bits\fR تعداد سطوح کوانتایز را مشخص می‌کند\&. تنظیم پیش‌فرض برای هر دو `auto' است\&. اگر مقدار \fIbits\fR برابر با `auto' نباشد، دیتر صرف‌نظر از قالب نمونه خروجی، در عمق بیت مشخص‌شده اعمال می‌شود\&. مقدار \fIbits\fR می‌تواند هر عددی باشد\&. مقدار \fIquantize_bits\fR باید یک عدد صحیح بین ۲ و ۳۲ باشد\&. اگر \fIquantize_bits\fR داده نشود، برابر با همان مقدار \fIbits\fR (گردشده به نزدیک‌ترین عدد صحیح) تنظیم می‌شود\&. .sp 0.5 نکته: در حال حاضر، اگر جلوه از طریق \fBwatch\fR بارگذاری شده باشد یا در \fBladspa_dsp\fR استفاده شود، تنظیم \fIbits\fR روی `auto' دیتر را غیرفعال می‌کند\&. .sp 0.5 .RS .IP [1] 4 S. P. Lipshitz, J. Vanderkooy, and R. A. Wannamaker, ``Minimally Audible Noise Shaping,'' J. AES, vol. 39, no. 11, November 1991 .IP [2] 4 R. A. Wannamaker, ``Psychoacoustically Optimal Noise Shaping,'' J. AES, vol. 40, no. 7/8, July 1992 .RE .TP \fBladspa_host\fR [~/]\fImodule_path\fR \fIplugin_label\fR [\fIcontrol\fR ...] اعمال یک افزونه LADSPA\&. از هر تعداد درگاه ورودی/خروجی پشتیبانی می‌کند (به استثنای صفر درگاه خروجی)\&. اگر یک افزونه دارای یک یا صفر درگاه ورودی باشد، چندین بار نمونه‌سازی می‌شود تا ورودی چندکاناله را پردازش کند\&. .sp 0.5 کنترل‌هایی که به‌طور صریح تنظیم نشده‌اند یا روی `\-' تنظیم شده‌اند، از مقادیر پیش‌فرض (در صورت موجود بودن) استفاده خواهند کرد\&. .sp 0.5 متغیر محیطی `LADSPA_PATH' می‌تواند برای تعیین مسیر جستجوی افزونه‌ها استفاده شود\&. .TP \fBstats\fR [\fIref_level\fR] نمایش آفست DC، کمینه، بیشینه، سطح قله (dBFS)، سطح RMS (بر حسب dBFS)، ضریب اوج یا کرست فاکتور (dB)، تعداد قله‌ها، نمونه قله، تعداد نمونه‌ها، و طول (ثانیه) برای هر کانال\&. اگر \fIref_level\fR داده شود، سطوح قله و RMS نسبت به \fIref_level\fR نیز نمایش داده می‌شوند (dBr)\&. .TP \fBwatch\fR [\fB\-e\fR] [~/]\fIpath\fR بارگذاری جلوه‌ها از یک فایل در یک زیرزنجیره و بارگذاری مجدد در صورت تغییر فایل\&. به‌جز بارگذاری مجدد خودکار، رفتار مشابه فراخوانی فایل با استفاده از دستور `@' است (به بخش «فایل‌های جلوه‌ها» مراجعه کنید)\&. محدودیت‌هایی برای بارگذاری مجدد خودکار وجود دارد: .RS .IP \(bu 3 زیرزنجیره جدید باید همان نرخ نمونه‌برداری خروجی و تعداد کانال‌های زیرزنجیره قبلی را داشته باشد\&. .IP \(bu 3 زیرزنجیره جدید نباید به بافرهایی بزرگ‌تر از زیرزنجیره قبلی نیاز داشته باشد\&. .RE .TP \ اگر این شرایط برآورده نشوند، زیرزنجیره جدید اعمال نخواهد شد و یک پیام خطا چاپ می‌شود\&. .sp 0.5 در حال حاضر، این جلوه تغییرات فایل را یک بار در ثانیه بررسی می‌کند\&. پشتیبانی از رویدادهای `inotify' ممکن است در آینده اضافه شود\&. در حالت ایده‌آل، تغییرات فایل باید اتمیک باشد (یعنی با نوشتن در یک فایل موقت و سپس \fIrename\fR(3) کردن آن روی فایل اصلی)\&. اگر این امکان وجود ندارد، می‌توان گزینه \fB\-e\fR را مشخص کرد که نشانگر پایان فایل را الزامی می‌کند تا فایل‌های ناقص نوشته‌شده تشخیص داده شوند\&. این نشانگر، `#EOF#'، باید در ابتدای یک خط قرار گیرد و تنها می‌تواند با کاراکترهای فاصله سفید دنبال شود\&..SS "نحو انتخابگر (Selector syntax)" .TS tab (|); lB lB lB l. مثال|توضیحات _ |همه \-|همه 2\-|۲ تا n \-4|۰ تا ۴ 1,3|۱ و ۳ 1\-4,7,9\-|۱ تا ۴، ۷، و ۹ تا n .TE .PP نکته: هیچ تفاوتی بین `1,3' و `3,1' وجود ندارد\&. ترتیب حفظ نمی‌شود\&. .SS "پهنای فیلتر (Filter width)" پسوندهای زیر پشتیبانی می‌شوند: .TS tab (|); lB lB lB l. پسوند|توضیحات _ q|ضریب کیفیت یا Q-factor (پیش‌فرض). s|شیب یا Slope (تنها در فیلترهای قفسه‌ای). d|شیب بر حسب dB/octave (تنها در فیلترهای قفسه‌ای). o|پهنای باند بر حسب اکتاو. h|پهنای باند بر حسب هرتز. k|پهنای باند بر حسب کیلوهرتز. .TE .PP نکته: پسوند پهنای `\fBd\fR' تعریف \fIf0\fR را نیز از فرکانس مرکزی به فرکانس گوشه (مانند Room EQ Wizard و Behringer DCX2496) تغییر می‌دهد\&. .PP علاوه بر این، یک ماکرو برای ساخت فیلترهای باترورث (Butterworth) با مرتبه دلخواه از بخش‌های مرتبه دوم آبشاری در نظر گرفته شده است: `bw<\fIorder\fR>[.\fIn\fR]'، که در آن `<\fIorder\fR>' مرتبه فیلتر و `\fIn\fR' اندیسی متناظر با یک جفت‌قطب خاص است\&. ضرایب Q همیشه به ترتیب صعودی هستند\&. برای مثال: .EX lowpass 1k bw6.0 lowpass 1k bw6.1 lowpass 1k bw6.2 .EE یک فیلتر پایین‌گذر باترورث مرتبه ۶ ایجاد می‌کند\&. فیلترهای مرتبه فرد به یک بخش مرتبه اول اضافی نیاز دارند: .EX lowpass_1 1k lowpass 1k bw5.0 lowpass 1k bw5.1 .EE .SS "مسیرهای فایل (File paths)" در خط فرمان، مسیرهای نسبی نسبت به `$PWD' سنجیده می‌شوند\&. درون یک فایل جلوه‌ها، مسیرهای نسبی نسبت به پوشه حاوی همان فایل جلوه‌ها در نظر گرفته می‌شوند\&. پیشوند `~/' به محتویات متغیر `$HOME' بسط داده می‌شود\&. جایگزینی‌های زیر در هر کجای مسیر فایل پشتیبانی می‌شوند: .TS tab (|); lB lB l l. توالی|جایگزینی _ %r|نرخ نمونه‌برداری بر حسب هرتز %k|نرخ نمونه‌برداری بر حسب کیلوهرتز %c|تعداد کانال‌ها %%|کاراکتر لفظی `%' .TE .SS "انتخابگرها و ماسک‌های کانال (Channel selectors and masks)" یک دونقطه (`:') به دنبال یک انتخابگر (بخش «نحو انتخابگر» را ببینید) کانال‌های ورودی را برای جلوه‌های پس از آن تعیین می‌کند\&. برای مثال: .EX :0,2 eq 1k 1.0 -6 .EE جلوه \fBeq\fR را روی کانال‌های ۰ و ۲ اعمال می‌کند\&. اگر یک جلوه تعداد کل کانال‌ها را تغییر دهد، آخرین انتخابگر کانال داده‌شده دوباره تجزیه می‌شود\&. کانال‌های اضافی افزوده نمی‌شوند مگر اینکه انتخابگر شامل یک محدوده نامحدود باشد\&. .PP شماره‌های کانال به کانال‌های موجود در ماسک کانال فعال اشاره دارند که ویژگی بلوک دربرگیرنده است\&. بلوک‌ها را می‌توان با استفاده از آکولادها (`{ ... }') یا با فراخوانی یک فایل ایجاد کرد (بخش «فایل‌های جلوه‌ها» را ببینید)\&. ماسک کانال هنگام ایجاد از انتخابگر کانال فعال مشتق می‌شود\&. برای مثال: .EX :1,3 { :0 gain -6 :1 gain +6 } .EE بلوکی با ماسک `1,3' ایجاد می‌کند\&. درون بلوک، `:0' اولین کانال در ماسک (کانال ۱) و `:1' دومین کانال در ماسک (کانال ۳) را انتخاب می‌کند\&. انتخابگرهای کانال دارای دامنه بلوک (block scope) هستند\&. .PP اگر یک جلوه تعداد کل کانال‌ها را تغییر دهد، کانال‌ها به‌طور خودکار به ماسک کانال فعال افزوده یا از آن حذف می‌شوند\&. کانال‌های اضافی همیشه به انتهای فهرست کانال‌ها پیوست می‌گردند\&. .SS "فایل‌های جلوه‌ها (Effects files)" فایل‌ها را می‌توان با استفاده از دستورالعمل `@' فراخوانی کرد: .EX @[~/]path/to/file .EE برای اطلاعات بیشتر در مورد نحوه تفسیر مسیرها، بخش «مسیرهای فایل» را ببینید\&. توجه داشته باشید که فراخوانی یک فایل به‌طور ضمنی یک بلوک ایجاد می‌کند (بخش «انتخابگرها و ماسک‌های کانال» را ببینید)\&. درون یک فایل، خطوطی که اولین کاراکتر غیرفاصله‌ای آن‌ها `#' باشد نادیده گرفته می‌شوند\&. می‌توان از یک بک‌اسلش (`\\') برای اسکیپ کردن فاصله خالی، `#' یا `\\' استفاده کرد\&. مثال: .EX gain -4.0 # This is a comment lowshelf 90 1s +4 eq 3k 1.5 -3 .EE.SS "سایر دستورالعمل‌ها (Other directives)" علامت تعجب (\(aq!\(aq) امکان نادیده گرفتن خطای مقداردهی اولیه جلوه بعدی را فراهم می‌کند\&. .SS "قابلیت wisdom در FFTW" جلوه‌هایی که از FFTW3 استفاده می‌کنند می‌توانند به صورت اختیاری اطلاعات بهینه‌سازی (wisdom) را بارگذاری و ذخیره کنند\&. برای \fBdsp\fR، متغیر محیطی \(aq$DSP_FFTW_WISDOM_PATH\(aq را تنظیم کنید\&. در مقابل، \fBladspa_dsp\fR از \(aq$LADSPA_DSP_FFTW_WISDOM_PATH\(aq استفاده می‌کند\&. اگر مسیری تنظیم شده باشد، طرح‌های FFTW با پرچم FFTW_MEASURE ایجاد می‌شوند\&. داده‌های بهینه‌سازی انباشته‌شده (wisdom) هنگام خروج ذخیره می‌شوند\&. .SH "مثال‌ها (EXAMPLES)" خواندن \fIfile.flac\fR، اعمال تقویت باس (bass boost)، و نوشتن در دستگاه alsa با شناسه \fIhw:2\fR: .EX dsp file.flac -ot alsa -e s24_3 hw:2 lowshelf 60 0.5 +4 .EE .PP رسم پاسخ دامنه در برابر فرکانس برای یک زنجیره جلوه‌ها: .EX dsp -pn [effect [args]] ... | gnuplot .EE .PP پیاده‌سازی کراس‌اوور LR4 در ۲.۲ کیلوهرتز، که در آن کانال‌های خروجی ۰ و ۱ به ترتیب توییترهای چپ و راست، و کانال‌های ۲ و ۳ ووفرهای چپ و راست هستند: .EX dsp stereo_file.flac -ot alsa -e s32 hw:3 remix 0 1 0 1 :0,1 highpass 2.2k 0.7071 highpass 2.2k 0.7071 : :2,3 lowpass 2.2k 0.7071 lowpass 2.2k 0.7071 : .EE .PP اعمال جلوه‌ها از یک فایل: .EX dsp file.flac @eq.txt .EE .SH "رابط کاربری LADSPA (LADSPA FRONTEND)" .SS "پیکربندی (Configuration)" برنامه \fBladspa_dsp\fR فایل‌های پیکربندی را در دایرکتوری‌های زیر جستجو می‌کند: .IP \(bu 3 $XDG_CONFIG_HOME/ladspa_dsp .IP \(bu 3 $HOME/.config/ladspa_dsp (اگر $XDG_CONFIG_HOME تنظیم نشده باشد) .IP \(bu 3 /etc/ladspa_dsp .PP برای جایگزینی دایرکتوری‌های پیش‌فرض، متغیر محیطی \(aqLADSPA_DSP_CONFIG_PATH\(aq را روی مسیر(های) مورد نظر (جداشده با دونقطه) تنظیم کنید\&. .PP هر فایلی که نام آن \fIconfig\fR یا \fIconfig_\fR باشد (که در آن \fI\fR هر رشته‌ای است) به عنوان یک افزونه جداگانه بارگذاری می‌شود\&. برچسب افزونه \fIladspa_dsp\fR (برای \fIconfig\fR) یا \fIladspa_dsp:\fR (برای \fIconfig_\fR) است\&. .PP فایل‌های پیکربندی دارای قالب ساده کلید-مقدار هستند\&. فاصله‌های خالی ابتدای خط نادیده گرفته می‌شوند\&. کلیدهای معتبر عبارتند از: .TP .B input_channels تعداد کانال‌های ورودی\&. مقدار پیش‌فرض ۱ است\&. می‌توان آن را تنظیم‌نشده رها کرد مگر اینکه کنترل جداگانه روی هر کانال مورد نیاز باشد\&. .TP .B output_channels تعداد کانال‌های خروجی\&. مقدار پیش‌فرض ۱ است\&. این پارامتر در حال حاضر به صورت خودکار تنظیم نمی‌شود زیرا تعداد درگاه‌های LADSPA باید پیش از ساخت زنجیره جلوه‌ها مشخص باشد\&. اگر با زنجیره جلوه‌ها مطابقت نداشته باشد، مقداردهی اولیه با شکست مواجه می‌شود\&. .TP .B LC_NUMERIC تنظیم \(aqLC_NUMERIC\(aq روی مقدار مشخص‌شده هنگام ساخت زنجیره جلوه‌ها\&. مقدار پیش‌فرض \(aqC\(aq است که صرف‌نظر از لوکال سیستم و رفتار میزبان LADSPA، رفتار تجزیه عددی یکسانی را فراهم می‌کند\&. تنظیم این مقدار روی یک مقدار خالی از لوکال پیش‌فرض سیستم استفاده می‌کند\&. مقدار ویژه \(aqnone\(aq تنظیم \(aqLC_NUMERIC\(aq را به میزبان LADSPA واگذار می‌کند (عموماً توصیه نمی‌شود)\&. .TP .B effects_chain رشته‌ای برای ساخت زنجیره جلوه‌ها\&. قالب آن مشابه یک فایل جلوه‌ها است، اما تنها یک خط تفسیر می‌شود\&. .PP نمونه پیکربندی: .EX # This is a comment input_channels=1 output_channels=1 LC_NUMERIC=C effects_chain=gain -3 lowshelf 100 1s +3 @/path/to/eq_file .EE .PP مسیرهای نسبی فایل در خط \fBeffects_chain\fR نسبت به دایرکتوری حاوی فایل پیکربندی محاسبه می‌شوند\&. .PP سطح گزارش‌گیری (loglevel) می‌تواند از طریق متغیر محیطی \(aqLADSPA_DSP_LOGLEVEL\(aq روی \(aqVERBOSE\(aq، \(aqNORMAL\(aq یا \(aqSILENT\(aq تنظیم شود\&. .PP نکته: جلوه \fBresample\fR را نمی‌توان همراه با رابط LADSPA استفاده کرد\&. .SS "مثال‌ها (EXAMPLES)" برای مشاهده مثال‌های کاربردی به مراجعه کنید\&. .SH "گزارش باگ‌ها (BUGS)" عدم پشتیبانی از فراداده‌ها (metadata)\&. .PP برخی از جلوه‌ها از قابلیت رسم (plot) پشتیبانی نمی‌کنند\&. .PP هنگام رسم یک زنجیره جلوه‌ها شامل جلوه \fBnoise\fR، یک توالی تصادفی متفاوت برای هر کانال خروجی ایجاد می‌شود، صرف‌نظر از اینکه نویز بین خروجی‌ها باید همبسته باشد یا خیر\&. با این حال، مجموع نویزهای همبسته به درستی عمل می‌کند\&. .SH "مجوز (LICENSE)" این نرم‌افزار تحت مجوز ISC منتشر شده است\&.