| DSP(1) | General Commands Manual | DSP(1) |
نام (NAME)
dsp - برنامه پردازش صدا همراه با حالت تعاملی
خلاصه دستور (SYNOPSIS)
dsp [options] path ... [effect [args]] ...
توضیحات (DESCRIPTION)
دستور dsp یک برنامه پردازش سیگنال صوتی همراه با یک حالت تعاملی است.
گزینهها (OPTIONS)
گزینههای عمومی (Global options)
- -h
- نمایش متن راهنما.
- -b frames
- اندازه بلوک (باید پیش از نخستین ورودی مشخص شود).
- -i
- اجبار به استفاده از حالت تعاملی.
- -I
- غیرفعال کردن حالت تعاملی.
- -q
- غیرفعال کردن نمایش میزان پیشرفت.
- -s
- حالت بیصدا.
- -v
- حالت پرجزئیات (Verbose).
- -d
- اجبار به اعمال دیترینگ (Dithering).
- -D
- غیرفعال کردن دیترینگ.
- -E
- عدم تخلیه زنجیره جلوهها پیش از بازسازی مجدد.
- -p
- رسم پاسخ دامنه زنجیره جلوهها به جای پردازش صدا.
- -P
- مشابه -p، اما علاوه بر دامنه، پاسخ فاز را نیز رسم میکند.
- -V
- نمایش پیشرفت با جزئیات کامل.
- -S
- استفاده از حالت ترکیب ورودی به صورت ترتیبی (sequence).
گزینههای ورودی/خروجی (Input/output options)
- -o
- خروجی.
- -t type
- نوع.
- -e encoding
- کدگذاری (Encoding).
- -B/L/N
- ترتیب بایتها به صورت big/little/native endian.
- -r frequency[k]
- نرخ نمونهبرداری.
- -c channels
- تعداد کانالها.
- -R ratio
- نسبت بافر.
- -n
- معادل با:
-t null null. برای مشاهده فهرست کامل انواع ورودی/خروجیهای پشتیبانیشده، این دستور را اجرا کنید: $ dsp -h
حالتهای ترکیب ورودی (Input combining modes)
در حالت الحاق (concatenate) که حالت پیشفرض است، ورودیها به همان ترتیبی که مشخص شدهاند به یکدیگر متصل شده و به خروجی فرستاده میشوند. تمام ورودیها باید دارای نرخ نمونهبرداری و تعداد کانالهای یکسان باشند.
در حالت ترتیبی (sequence)، ورودیها مانند حالت الحاق به صورت متوالی به خروجی ارسال میشوند، اما نیازی نیست که ورودیها دارای نرخ نمونهبرداری یا تعداد کانال یکسان باشند. در صورت نیاز، زنجیره جلوهها و/یا خروجی بازسازی و مجدداً باز خواهند شد. توجه داشته باشید که اگر خروجی یک فایل باشد، در صورت بازگشایی مجدد، فایل کوتاهسازی (truncate) خواهد شد. این حالت بیشتر زمانی مفید است که خروجی یک دستگاه صوتی باشد، اما در صورت استفاده به همراه جلوههای resample و/یا remix، میتواند برای ادغام ورودیهایی با نرخهای نمونهبرداری و/یا تعداد کانالهای متفاوت در یک فایل خروجی واحد نیز به کار رود.
مولد سیگنال (Signal generator)
نوع ورودی sgen یک مولد سیگنال پایه است (حداقل در حال حاضر) که میتواند ضربهها و جاروبهای سینوسی نمایی را تولید کند. نحو (سینتکس) برای آرگومان path به شرح زیر است:
مقدار type میتواند برای جاروبها یا تُنهای سینوسی برابر با 'sine' یا برای تابع دلتا (ضربه) برابر با 'delta' باشد. شناسه 'sine' آرگومانهای زیر را میپذیرد:
- freq=f0[k][-f1[k]]
- بسامد (فرکانس). اگر len تعیین شده و f1 داده شود، یک جاروب سینوسی نمایی تولید میشود.
آرگومانهای مربوط به 'delta' عبارتند از:
- offset=time[s|m|S]
- انحراف (offset) بر حسب ثانیه، میلیثانیه یا نمونهها.
مثال:
$ dsp -t sgen -c 2 sine@0:freq=500-1k/sine@1:freq=300-800+2 gain -10
جلوهها (EFFECTS)
فهرست کامل جلوهها (Complete effects list)
- lowpass_1 f0[k]
- فیلتر پایینگذر مرتبه اول.
- highpass_1 f0[k]
- فیلتر بالاگذر مرتبه اول.
- allpass_1 f0[k]
- فیلتر تمامگذر مرتبه اول.
- lowshelf_1 f0[k] gain
- فیلتر قفسهای فرکانسپایین (lowshelf) مرتبه اول.
- highshelf_1 f0[k] gain
- فیلتر قفسهای فرکانسبالا (highshelf) مرتبه اول.
- lowpass_1p f0[k]
- فیلتر پایینگذر تکقطبی (EWMA).
- lowpass f0[k] width[q|o|h|k]
- فیلتر پایینگذر مرتبه دوم.
- highpass f0[k] width[q|o|h|k]
- فیلتر بالاگذر مرتبه دوم.
- bandpass_skirt f0[k] width[q|o|h|k]
- فیلتر میانگذر مرتبه دوم با بهره دامنهای ثابت (constant skirt gain).
- bandpass_peak f0[k] width[q|o|h|k]
- فیلتر میانگذر مرتبه دوم با بهره قلهای ثابت (constant peak gain).
- notch f0[k] width[q|o|h|k]
- فیلتر میانناگذر یا شکافی (notch) مرتبه دوم.
- allpass f0[k] width[q|o|h|k]
- فیلتر تمامگذر مرتبه دوم.
- eq f0[k] width[q|o|h|k] gain
- فیلتر قلهای (peaking) مرتبه دوم (اکولایزر).
- lowshelf f0[k] width[q|s|d|o|h|k] gain
- فیلتر قفسهای فرکانسپایین مرتبه دوم.
- highshelf f0[k] width[q|s|d|o|h|k] gain
- فیلتر قفسهای فرکانسبالا مرتبه دوم.
- lowpass_transform fz[k] width_z[q] fp[k] width_p[q]
- فیلتر تبدیل پایینگذر مرتبه دوم. قطبهای تعریفشده توسط fz و width_z را حذف کرده و آنها را با قطبهای جدید تعریفشده با fp و width_p جایگزین میکند. بهره در DC برابر یک است.
- highpass_transform fz[k] width_z[q] fp[k] width_p[q]
- فیلتر تبدیل بالاگذر مرتبه دوم که با نام تبدیل لینکویتز (Linkwitz transform) نیز شناخته میشود (ببینید: http://www.linkwitzlab.com/filters.htm#9). مشابه با lowpass_transform است، به جز اینکه بهره در Fs/2 برابر یک است.
- linkwitz_transform fz[k] width_z[q] fp[k] width_p[q]
- نام مستعار برای highpass_transform.
- deemph
- فیلتر برطرفکننده تأکید (de-emphasis) برای دیسک فشرده صوتی (CD).
- biquad b0 b1 b2 a0 a1 a2
- فیلتر بایکواد (Biquad).
- gain gain_dB
- تنظیم بهره بر حسب دسیبل.
- mult multiplier
- ضرب هر نمونه در مقدار multiplier.
- add value
- اعمال شیفت DC.
- crossfeed f0[k] separation
- کراسفید ساده برای هدفون، بسیار شبیه به کراسفید Linkwitz/Meier/CMoy/bs2b.
- matrix4 [options] [surround_level]
- آپمیکسر
فعال ۲ به ۴
کانال (۲
جلو و ۲
فراگیر/سوراند)
طراحیشده
برای
محتوای
استریوی
عادی
(کدگذارینشده).
پیکربندی بلندگوی مورد نظر عبارت است از بلندگوهای جلو در ۳۰°± و فراگیر بین ۶۰°± تا ۱۲۰°±. برای بهترین نتایج، بلندگوهای فراگیر باید از نظر سطح صدا و پاسخ فرکانسی به درستی کالیبره شوند. صدای فراگیر باید حدود ۱۰ تا ۲۵ میلیثانیه (از نظر آکوستیک) نسبت به جلو تأخیر داشته باشد. هیچ کانتورینگ فرکانسی به صورت داخلی انجام نمیشود، بنابراین اعمال فیلترهای پایینگذر و/یا قفسهای به خروجیهای فراگیر توصیه میشود:
matrix4 surround_delay=15m -6 :2,3 lowpass_1 10k :
تنظیمات نشاندادهشده در بالا (سطح فراگیر -۶ دسیبل، تأخیر ۱۵ میلیثانیه و افت فرکانسی ۱۰ کیلوهرتز) یک نقطه شروع مناسب است، اما میتواند بر اساس سلیقه شخصی تنظیم شود. مقدار پیشفرض surround_level برابر با -۶ دسیبل است. اعمال جلوه decorrelate به خروجیهای فراگیر (به صورت اختیاری با پرچم -m) به نظر میرسد احساس فضایی بودن صدا را بیشتر بهبود میبخشد (توجه: برای جبران تأخیر گروهیِ جلوه decorrelate، مقدار 'surround_delay' را تنظیم کنید).خروجیهای جلو جایگزین کانالهای ورودی اصلی میشوند و خروجیهای فراگیر به انتهای فهرست کانالها اضافه میگردند.
گزینهها به عنوان فهرستی جداشده با کاما مشخص میشوند. گزینههای شناختهشده عبارتند از:
- no_dir_boost
- غیرفعال کردن تقویت جهتدار کانالهای جلو.
- show_status
- نمایش خط وضعیت (در حال حاضر دارای اشکالات جزئی است، اما همچنان برای اشکالزدایی مفید است).
- signal
- تغییر وضعیت جلوه هنگام فراخوانی 'effect.signal()'.
- linear_phase (تنها در matrix4_mb)
- اعمال فیلتر FIR برای اصلاح اعوجاج فاز ناشی از بانک فیلتر IIR. در matrix4 هیچ تأثیری ندارد و نیازمند جلوه fir است.
- surround_delay=delay[s|m|S]
- تأخیر خروجی فراگیر. پیشفرض صفر است.
- filter_type=filter[:stop_dB[:stop_dB]] (تنها در matrix4_mb)
- نوع فیلتر
مورد
استفاده
برای
بخشهای
پایینگذر
بانک فیلتر.
مقدار filter
میتواند
butterworth، chebyshev1، chebyshev2
یا elliptic
(پیشفرض)
باشد.
پارامتر(های) اختیاری stop_dB تضعیف باند متوقف را بر حسب دسیبل برای فیلترهای چبیشف و بیضوی تعیین میکند. برای chebyshev1 و chebyshev2 تنها پارامتر نخست استفاده میشود. برای elliptic، پارامتر نخست برای فیلتر پایینگذر و دومی برای بالاگذر اعمال میشود. اگر تنها یک پارامتر داده شود، برای هر دو باند متوقف اعمال میگردد. مقادیر پیشفرض برای chebyshev1 و chebyshev2 برابر ۲۵ و برای elliptic برابر ۳۵:۵۰ است.
- matrix4_mb [options] [surround_level]
- مشابه جلوه matrix4 است، اما ورودی را به یازده باند هدایتشده به صورت جداگانه تقسیم میکند تا تفکیک منابع صوتی همزمان را بهبود بخشد. برای اطلاعات بیشتر به توضیحات جلوه matrix4 مراجعه کنید.
- remix selector|. ...
- انتخاب و
ترکیب
کانالهای
ورودی در
کانالهای
خروجی. هر
شناسه
انتخابگر
(selector)،
کانالهای
ورودی را که
باید برای
تولید یک
کانال
خروجی با هم
ترکیب
شوند، مشخص
میکند.
علامت '.' هیچ
کانال
ورودی را
انتخاب
نمیکند.
برای مثال:
remix 0,1 2,3
کانالهای ورودی ۰ و ۱ را در کانال خروجی ۰، و کانالهای ورودی ۲ و ۳ را در کانال خروجی ۱ ترکیب میکند.remix -
تمام کانالهای ورودی را در یک کانال خروجی واحد ترکیب میکند. انتخابگر کانال فعال به عنوان یک ماسک کانال ورودی برای شناسههای انتخابگر استفاده میشود. - st2ms
- تبدیل استریو به میانه/کنار (mid/side).
- ms2st
- تبدیل میانه/کنار به استریو.
- delay [-f [order]] delay[s|m|S]
- خط تأخیر.
یکای
آرگومان delay
بستگی به
پسوند
استفادهشده
دارد: 's'
ثانیه
(پیشفرض)،
'm'
میلیثانیه
و 'S'
نمونهها.
اگر مقدار
delay منفی
باشد، یک
تأخیر مثبت
به تمام
کانالهایی
که انتخاب
نشدهاند
اعمال
میشود (به
جز هنگام
رسم—در آن
حالت یک
تأخیر منفی
واقعی
امکانپذیر
است).
بهطور پیشفرض، تأخیر به نمونههای کامل گرد میشود. گزینه -f تأخیر کسری را با استفاده از درونیابی تمامگذر تیران (Thiran allpass interpolation) فعال میکند. آرگومان order مرتبه فیلتر تمامگذر را تعیین میکند و میتواند هر عدد صحیحی از ۱ تا ۵۰ باشد. مقدار پیشفرض ۵ است.
- resample [bandwidth] fs[k]
- بازنمونهبردار Sinc. انتخابگر کانال را نادیده میگیرد.
- fir [input_options] [file:][~/]filter_path|coefs:list[/list...]
- کانولوشن
مستقیم یا FFT
۶۴ بیتی
بدون
بخشبندی
(Non-partitioned). تأخیر
برای
فیلترهای
تا ۱۶ تپ (tap)
صفر است.
برای
فیلترهای
طولانیتر،
تأخیر
برابر با fft_len
گزارششده
در حالت
پرجزئیات (verbose)
است. هر list یک
فهرست
جداشده با
کاما از
ضرایب برای
یک کانال
فیلتر است.
مقادیر از
قلم افتاده
با صفر پر
میشوند.
گزینههای input_options بیشتر هنگام بارگذاری فایلهای ورودی خام (بدون سرایند) مفید هستند و عبارتند از:
- -t type
- نوع.
- -e encoding
- کدگذاری.
- -B/L/N
- ترتیب بایتها به صورت big/little/native endian..TP -r frequency[k] نرخ نمونهبرداری.
- -c channels
- تعداد کانالها.
- بهطور پیشفرض، نرخ نمونهبرداری فیلتر باید با نرخ جلوه مطابقت داشته باشد. عدم تطابق را میتوان با تنظیم نرخ نمونهبرداری روی ``any'' نادیده گرفت.
- fir_p [input_options] [max_part_len] [file:][~/]filter_path|coefs:list[/list...]
- کانولوشن
۶۴ بیتی
مستقیم/FFT
بخشبندیشده
ناهمگن با
تأخیر صفر.
معمولاً
کمی کندتر
از جلوه zita_convolver
است، بهجز
برای
فیلترهای
بسیار
طولانی در
برخی
سختافزارها.
مقدار max_part_len
باید توانی
از ۲ باشد و
مقدار
پیشفرض آن
۱۶۳۸۴ است.
هر list یک
فهرست
جداشده با
کاما از
ضرایب برای
یک کانال
فیلتر است.
مقادیر
ناموجود با
صفر پر
میشوند.
برای توضیح input_options به شرح جلوه fir مراجعه کنید.
- zita_convolver [input_options] [min_part_len [max_part_len]] [file:][~/]filter_path|coefs:list[/list...]
- کانولوشن
۳۲ بیتی FFT
بخشبندیشده
با استفاده
از
کتابخانه
zita-convolver. تأخیر
برابر با
min_part_len است
(بهطور
پیشفرض ۶۴
نمونه).
مقادیر {min,max}_part_len
باید
توانهایی
از ۲ بین ۶۴
و ۸۱۹۲
باشند. هر list
یک فهرست
جداشده با
کاما از
ضرایب برای
یک کانال
فیلتر است.
مقادیر
ناموجود با
صفر پر
میشوند.
برای توضیح input_options به شرح جلوه fir مراجعه کنید.
- hilbert [-pz] [-a angle] taps
- تقریب ساده FIR از تبدیل هیلبرت (Hilbert transform). تعداد تپها باید فرد باشد. پهنای باند توسط تعداد تپها کنترل میشود. اگر گزینه -p داده شود، موتور کانولوشن fir_p بهجای موتور پیشفرض fir استفاده میشود. بهطور مشابه، اگر -z مشخص شود، از zita_convolver (در صورت در دسترس بودن) استفاده میشود. گزینه -a تغییر فاز را بر حسب درجه تعیین میکند (پیشفرض ۹۰°- است).
- decorrelate [-m] [-s seed] [stages]
- همبستگیزدای تمامگذر مطابق با مقاله ``Frequency-Dependent Schroeder Allpass Filters'' اثر سباستین جی. شلشت (doi:10.3390/app10010187). اگر -m مشخص شود، پارامترهای فیلتر یکسانی برای تمام کانالهای ورودی استفاده میشود. تعداد پیشفرض مراحل ۵ است که منجر به یک تأخیر گروهی میانگین حدود ۹.۵ میلیثانیه در فرکانسهای بالا میشود. گزینه -s مقدار دانه تصادفی (seed) را برای تولید پارامترهای فیلتر تعیین میکند.
- noise level[b]
- افزودن نویز TPDF. آرگومان level اگر بدون پسوند باشد سطح قله نویز را بر حسب dBFS مشخص میکند، یا در صورت ارائه پسوند `b' دقت مؤثر بر حسب بیت را تعیین میکند.
- dither [shape] [[quantize_bits] bits]
- اعمال دیتر
(dither) همراه با
شکلدهی
اختیاری
نویز (noise shaping).
آرگومان shape
نوع دیتر و
فیلتر
شکلدهی
نویز (در
صورت وجود)
را مشخص
میکند:
نام توضیحات flat نویز TPDF تخت بدون بازخورد (پیشفرض). sloped نویز TPDF تخت با بازخورد؛ پاسخ بالاگذر مرتبه اول. sloped2 نویز TPDF شیبدار با بازخورد؛ تأکید بیشتر روی فرکانس بالا نسبت به sloped. lipshitz منحنی ۵ تپ با وزن E برگرفته از [1]؛ با شکافهای حدود 4k و 12k. wan3 منحنی ۳ تپ با وزن F برگرفته از [2]؛ با شکاف حدود 4k. wan9 منحنی ۹ تپ با وزن F برگرفته از [2]؛ با شکافهای حدود 3.5k و 12k. آرگومان bits سطح دیتر را بر حسب بیت تعیین میکند. آرگومان quantize_bits تعداد سطوح کوانتایز را مشخص میکند. تنظیم پیشفرض برای هر دو `auto' است. اگر مقدار bits برابر با `auto' نباشد، دیتر صرفنظر از قالب نمونه خروجی، در عمق بیت مشخصشده اعمال میشود. مقدار bits میتواند هر عددی باشد. مقدار quantize_bits باید یک عدد صحیح بین ۲ و ۳۲ باشد. اگر quantize_bits داده نشود، برابر با همان مقدار bits (گردشده به نزدیکترین عدد صحیح) تنظیم میشود.
نکته: در حال حاضر، اگر جلوه از طریق watch بارگذاری شده باشد یا در ladspa_dsp استفاده شود، تنظیم bits روی `auto' دیتر را غیرفعال میکند.
- [1]
- S. P. Lipshitz, J. Vanderkooy, and R. A. Wannamaker, ``Minimally Audible Noise Shaping,'' J. AES, vol. 39, no. 11, November 1991
- [2]
- R. A. Wannamaker, ``Psychoacoustically Optimal Noise Shaping,'' J. AES, vol. 40, no. 7/8, July 1992
- ladspa_host [~/]module_path plugin_label [control ...]
- اعمال یک
افزونه LADSPA. از
هر تعداد
درگاه
ورودی/خروجی
پشتیبانی
میکند (به
استثنای
صفر درگاه
خروجی). اگر
یک افزونه
دارای یک یا
صفر درگاه
ورودی
باشد،
چندین بار
نمونهسازی
میشود تا
ورودی
چندکاناله
را پردازش
کند.
کنترلهایی که بهطور صریح تنظیم نشدهاند یا روی `-' تنظیم شدهاند، از مقادیر پیشفرض (در صورت موجود بودن) استفاده خواهند کرد.
متغیر محیطی `LADSPA_PATH' میتواند برای تعیین مسیر جستجوی افزونهها استفاده شود.
- stats [ref_level]
- نمایش آفست DC، کمینه، بیشینه، سطح قله (dBFS)، سطح RMS (بر حسب dBFS)، ضریب اوج یا کرست فاکتور (dB)، تعداد قلهها، نمونه قله، تعداد نمونهها، و طول (ثانیه) برای هر کانال. اگر ref_level داده شود، سطوح قله و RMS نسبت به ref_level نیز نمایش داده میشوند (dBr).
- watch [-e] [~/]path
- بارگذاری جلوهها از یک فایل در یک زیرزنجیره و بارگذاری مجدد در صورت تغییر فایل. بهجز بارگذاری مجدد خودکار، رفتار مشابه فراخوانی فایل با استفاده از دستور `@' است (به بخش «فایلهای جلوهها» مراجعه کنید). محدودیتهایی برای بارگذاری مجدد خودکار وجود دارد:
- زیرزنجیره جدید باید همان نرخ نمونهبرداری خروجی و تعداد کانالهای زیرزنجیره قبلی را داشته باشد.
- زیرزنجیره جدید نباید به بافرهایی بزرگتر از زیرزنجیره قبلی نیاز داشته باشد.
- اگر این
شرایط
برآورده
نشوند،
زیرزنجیره
جدید اعمال
نخواهد شد و
یک پیام خطا
چاپ میشود.
در حال حاضر، این جلوه تغییرات فایل را یک بار در ثانیه بررسی میکند. پشتیبانی از رویدادهای `inotify' ممکن است در آینده اضافه شود. در حالت ایدهآل، تغییرات فایل باید اتمیک باشد (یعنی با نوشتن در یک فایل موقت و سپس rename(3) کردن آن روی فایل اصلی). اگر این امکان وجود ندارد، میتوان گزینه -e را مشخص کرد که نشانگر پایان فایل را الزامی میکند تا فایلهای ناقص نوشتهشده تشخیص داده شوند. این نشانگر، `#EOF#'، باید در ابتدای یک خط قرار گیرد و تنها میتواند با کاراکترهای فاصله سفید دنبال شود..SS "نحو انتخابگر (Selector syntax)"
مثال توضیحات <empty> همه - همه 2- ۲ تا n -4 ۰ تا ۴ 1,3 ۱ و ۳ 1-4,7,9- ۱ تا ۴، ۷، و ۹ تا n
نکته: هیچ تفاوتی بین `1,3' و `3,1' وجود ندارد. ترتیب حفظ نمیشود.
پهنای فیلتر (Filter width)
پسوندهای زیر پشتیبانی میشوند:
| پسوند | توضیحات |
| q | ضریب کیفیت یا Q-factor (پیشفرض). |
| s | شیب یا Slope (تنها در فیلترهای قفسهای). |
| d | شیب بر حسب dB/octave (تنها در فیلترهای قفسهای). |
| o | پهنای باند بر حسب اکتاو. |
| h | پهنای باند بر حسب هرتز. |
| k | پهنای باند بر حسب کیلوهرتز. |
نکته: پسوند پهنای `d' تعریف f0 را نیز از فرکانس مرکزی به فرکانس گوشه (مانند Room EQ Wizard و Behringer DCX2496) تغییر میدهد.
علاوه بر این، یک ماکرو برای ساخت فیلترهای باترورث (Butterworth) با مرتبه دلخواه از بخشهای مرتبه دوم آبشاری در نظر گرفته شده است: `bw<order>[.n]'، که در آن `<order>' مرتبه فیلتر و `n' اندیسی متناظر با یک جفتقطب خاص است. ضرایب Q همیشه به ترتیب صعودی هستند. برای مثال:
lowpass 1k bw6.0 lowpass 1k bw6.1 lowpass 1k bw6.2یک فیلتر پایینگذر باترورث مرتبه ۶ ایجاد میکند. فیلترهای مرتبه فرد به یک بخش مرتبه اول اضافی نیاز دارند:
lowpass_1 1k lowpass 1k bw5.0 lowpass 1k bw5.1
مسیرهای فایل (File paths)
در خط فرمان، مسیرهای نسبی نسبت به `$PWD' سنجیده میشوند. درون یک فایل جلوهها، مسیرهای نسبی نسبت به پوشه حاوی همان فایل جلوهها در نظر گرفته میشوند. پیشوند `~/' به محتویات متغیر `$HOME' بسط داده میشود. جایگزینیهای زیر در هر کجای مسیر فایل پشتیبانی میشوند:
| توالی | جایگزینی |
| %r | نرخ نمونهبرداری بر حسب هرتز |
| %k | نرخ نمونهبرداری بر حسب کیلوهرتز |
| %c | تعداد کانالها |
| %% | کاراکتر لفظی `%' |
انتخابگرها و ماسکهای کانال (Channel selectors and masks)
یک دونقطه (`:') به دنبال یک انتخابگر (بخش «نحو انتخابگر» را ببینید) کانالهای ورودی را برای جلوههای پس از آن تعیین میکند. برای مثال:
:0,2 eq 1k 1.0 -6
جلوه eq را روی کانالهای ۰ و ۲ اعمال میکند. اگر یک جلوه تعداد کل کانالها را تغییر دهد، آخرین انتخابگر کانال دادهشده دوباره تجزیه میشود. کانالهای اضافی افزوده نمیشوند مگر اینکه انتخابگر شامل یک محدوده نامحدود باشد.
شمارههای کانال به کانالهای موجود در ماسک کانال فعال اشاره دارند که ویژگی بلوک دربرگیرنده است. بلوکها را میتوان با استفاده از آکولادها (`{ ... }') یا با فراخوانی یک فایل ایجاد کرد (بخش «فایلهای جلوهها» را ببینید). ماسک کانال هنگام ایجاد از انتخابگر کانال فعال مشتق میشود. برای مثال:
:1,3 { :0 gain -6 :1 gain +6 }
بلوکی با
ماسک `1,3'
ایجاد
میکند.
درون بلوک، `:0'
اولین
کانال در
ماسک (کانال
۱) و `:1' دومین
کانال در
ماسک (کانال
۳) را انتخاب
میکند.
انتخابگرهای
کانال
دارای
دامنه بلوک
(block scope) هستند.
اگر یک جلوه تعداد کل کانالها را تغییر دهد، کانالها بهطور خودکار به ماسک کانال فعال افزوده یا از آن حذف میشوند. کانالهای اضافی همیشه به انتهای فهرست کانالها پیوست میگردند.
فایلهای جلوهها (Effects files)
فایلها را میتوان با استفاده از دستورالعمل `@' فراخوانی کرد:
@[~/]path/to/file
برای اطلاعات بیشتر در مورد نحوه تفسیر مسیرها، بخش «مسیرهای فایل» را ببینید. توجه داشته باشید که فراخوانی یک فایل بهطور ضمنی یک بلوک ایجاد میکند (بخش «انتخابگرها و ماسکهای کانال» را ببینید). درون یک فایل، خطوطی که اولین کاراکتر غیرفاصلهای آنها `#' باشد نادیده گرفته میشوند. میتوان از یک بکاسلش (`\') برای اسکیپ کردن فاصله خالی، `#' یا `\' استفاده کرد. مثال:
gain -4.0
# This is a comment
lowshelf 90 1s +4 eq 3k 1.5 -3
علامت تعجب ('!') امکان نادیده گرفتن خطای مقداردهی اولیه جلوه بعدی را فراهم میکند.
قابلیت wisdom در FFTW
جلوههایی که از FFTW3 استفاده میکنند میتوانند به صورت اختیاری اطلاعات بهینهسازی (wisdom) را بارگذاری و ذخیره کنند. برای dsp، متغیر محیطی '$DSP_FFTW_WISDOM_PATH' را تنظیم کنید. در مقابل، ladspa_dsp از '$LADSPA_DSP_FFTW_WISDOM_PATH' استفاده میکند. اگر مسیری تنظیم شده باشد، طرحهای FFTW با پرچم FFTW_MEASURE ایجاد میشوند. دادههای بهینهسازی انباشتهشده (wisdom) هنگام خروج ذخیره میشوند.
مثالها (EXAMPLES)
خواندن file.flac، اعمال تقویت باس (bass boost)، و نوشتن در دستگاه alsa با شناسه hw:2:
dsp file.flac -ot alsa -e s24_3 hw:2 lowshelf 60 0.5 +4
رسم پاسخ دامنه در برابر فرکانس برای یک زنجیره جلوهها:
dsp -pn [effect [args]] ... | gnuplot
پیادهسازی کراساوور LR4 در ۲.۲ کیلوهرتز، که در آن کانالهای خروجی ۰ و ۱ به ترتیب توییترهای چپ و راست، و کانالهای ۲ و ۳ ووفرهای چپ و راست هستند:
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 :
اعمال جلوهها از یک فایل:
dsp file.flac @eq.txt
رابط کاربری LADSPA (LADSPA FRONTEND)
پیکربندی (Configuration)
برنامه ladspa_dsp فایلهای پیکربندی را در دایرکتوریهای زیر جستجو میکند:
- $XDG_CONFIG_HOME/ladspa_dsp
- $HOME/.config/ladspa_dsp (اگر $XDG_CONFIG_HOME تنظیم نشده باشد)
- /etc/ladspa_dsp
برای جایگزینی دایرکتوریهای پیشفرض، متغیر محیطی 'LADSPA_DSP_CONFIG_PATH' را روی مسیر(های) مورد نظر (جداشده با دونقطه) تنظیم کنید.
هر فایلی که نام آن config یا config_<name> باشد (که در آن <name> هر رشتهای است) به عنوان یک افزونه جداگانه بارگذاری میشود. برچسب افزونه ladspa_dsp (برای config) یا ladspa_dsp:<name> (برای config_<name>) است.
فایلهای پیکربندی دارای قالب ساده کلید-مقدار هستند. فاصلههای خالی ابتدای خط نادیده گرفته میشوند. کلیدهای معتبر عبارتند از:
- input_channels
- تعداد کانالهای ورودی. مقدار پیشفرض ۱ است. میتوان آن را تنظیمنشده رها کرد مگر اینکه کنترل جداگانه روی هر کانال مورد نیاز باشد.
- output_channels
- تعداد کانالهای خروجی. مقدار پیشفرض ۱ است. این پارامتر در حال حاضر به صورت خودکار تنظیم نمیشود زیرا تعداد درگاههای LADSPA باید پیش از ساخت زنجیره جلوهها مشخص باشد. اگر با زنجیره جلوهها مطابقت نداشته باشد، مقداردهی اولیه با شکست مواجه میشود.
- LC_NUMERIC
- تنظیم 'LC_NUMERIC' روی مقدار مشخصشده هنگام ساخت زنجیره جلوهها. مقدار پیشفرض 'C' است که صرفنظر از لوکال سیستم و رفتار میزبان LADSPA، رفتار تجزیه عددی یکسانی را فراهم میکند. تنظیم این مقدار روی یک مقدار خالی از لوکال پیشفرض سیستم استفاده میکند. مقدار ویژه 'none' تنظیم 'LC_NUMERIC' را به میزبان LADSPA واگذار میکند (عموماً توصیه نمیشود).
- effects_chain
- رشتهای برای ساخت زنجیره جلوهها. قالب آن مشابه یک فایل جلوهها است، اما تنها یک خط تفسیر میشود.
نمونه پیکربندی:
# 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
مسیرهای نسبی فایل در خط effects_chain نسبت به دایرکتوری حاوی فایل پیکربندی محاسبه میشوند.
سطح گزارشگیری (loglevel) میتواند از طریق متغیر محیطی 'LADSPA_DSP_LOGLEVEL' روی 'VERBOSE'، 'NORMAL' یا 'SILENT' تنظیم شود.
نکته: جلوه resample را نمیتوان همراه با رابط LADSPA استفاده کرد.
مثالها (EXAMPLES)
برای مشاهده مثالهای کاربردی به https://github.com/bmc0/dsp/blob/master/README.md مراجعه کنید.
گزارش باگها (BUGS)
عدم پشتیبانی از فرادادهها (metadata).
برخی از جلوهها از قابلیت رسم (plot) پشتیبانی نمیکنند.
هنگام رسم یک زنجیره جلوهها شامل جلوه noise، یک توالی تصادفی متفاوت برای هر کانال خروجی ایجاد میشود، صرفنظر از اینکه نویز بین خروجیها باید همبسته باشد یا خیر. با این حال، مجموع نویزهای همبسته به درستی عمل میکند.
مجوز (LICENSE)
این نرمافزار تحت مجوز ISC منتشر شده است.
| dsp-2.0 |