| JACK_IODELAY(1) | General Commands Manual | JACK_IODELAY(1) |
نام (NAME)
jack_iodelay - کلاینت جعبهابزار JACK برای اندازهگیری تاخیر رفتوبرگشت سیگنال
خلاصه دستور (SYNOPSIS)
jack_iodelay
توضیحات (DESCRIPTION)
دستور jack_iodelay یک درگاه ورودی و یک درگاه خروجی ایجاد میکند و سپس تاخیر (تاخیر سیگنال) میان آنها را اندازه میگیرد. برای این منظور، درگاه خروجی باید به درگاه ورودی آن متصل شود. دقت این اندازهگیری تفکیکپذیری بالاتری از ۱ نمونه (sample) دارد.
کاربرد مورد انتظار این است که درگاه خروجی jack_iodelay به یک درگاه بازپخش سختافزاری متصل شود، سپس با یک کابل لوپبک فیزیکی، رابط خروجی سختافزاری متناظر به یک رابط ورودی وصل گردد، و در نهایت آن درگاه ضبط سختافزاری متناظر به درگاه ورودی jack_iodelay متصل شود. این کار یک مسیر رفتوبرگشت کامل ایجاد میکند که از تمامی مبدلهای آنالوگ به دیجیتال و دیجیتال به آنالوگ موجود در سختافزار صوتی عبور میکند.
اگرچه هدف اصلی، اندازهگیری تاخیر لوپبک سختافزاری است، اما میتوان از jack_iodelay برای سنجش تاخیر در هر مسیر سیگنال کاملاً متصل دیگری، مانند مسیرهایی که شامل سایر کلاینتهای JACK هستند نیز استفاده کرد.
به محض اینکه jack_iodelay اندازهگیری خود را به پایان برساند، تاخیر کل شناساییشده را چاپ خواهد کرد. این مقدار علاوه بر هرگونه تاخیر دیگر در مسیر سیگنال، طول بافر JACK را نیز در بر میگیرد. این مقدار هر ۰٫۵ ثانیه یکبار بازنشر میشود تا در صورت تمایل بتوانید مشخصههای مسیر سیگنال را تغییر دهید و اثر آن را بر تاخیر اندازهگیریشده بررسی کنید.
اگر هیچ سیگنالی از درگاه ورودی دریافت نشود، jack_iodelay عبارت زیر را چاپ میکند:
Signal below threshold... .
این پیام هر ثانیه تکرار میشود تا زمانی که وضعیت تغییر کند (برای مثال اتصالات به درستی برقرار شوند).
جهت استفاده از مقدار محاسبهشده توسط jack_iodelay برای آرگومانهای -I و -O در بکاند JACK (که در پنجره تنظیمات qjackctl با عنوانهای Input Latency و Output Latency نیز شناخته میشوند)، باید اندازه بافر JACK را از نتیجه کسر کنید. اندازه بافر از ضرب تعداد فریمها در هر دوره (که با گزینه -p یا --period به بکاند jackd داده میشود) در تعداد دورهها در هر بافر (که با گزینه -n یا --nperiods به بکاند jackd داده میشود) محاسبه میشود. توجه داشته باشید که JACK2 در حالت ناهمگام (asynchronous) پیشفرض، یک دوره اضافی بهطور ضمنی میافزاید؛ بنابراین برای JACK1 یا JACK2 در حالت همگام (synchronous)، اندازه بافر برابر با n*p است، اما برای JACK2 در حالت ناهمگام، اندازه بافر (n+1)*p خواهد بود. با کسر اندازه بافر JACK از تاخیر بهدستآمده، تاخیر «اضافی» ناشی از سختافزار رابط به دست میآید. در ادامه، اگر فرض کنید که تاخیر به شکلی مساوی میان بخشهای ورودی و خروجی سختافزار صوتی تقسیم شده است (که بسیار محتمل است)، نتیجه را بر دو تقسیم کرده و مقدار حاصل را برای تاخیر ورودی و خروجی در نظر بگیرید. انجام این اندازهگیری به کلاینتهای JACK که از API تاخیر JACK بهره میبرند اجازه میدهد موقعیت و تاخیر صدا را به دقت تنظیم کنند تا سیگنالها حتی با وجود تاخیرهای ذاتی در مسیرهای سراسری سیگنال، همگام باقی بمانند.
نویسندگان (AUTHORS)
در ابتدا توسط Fons Adriaensen به زبان C++ نوشته شد و توسط Torben Hohn به C بازنویسی شد.
| 2022 | 4 |