pipewire-jack.conf(5) File Formats Manual pipewire-jack.conf(5) نام (NAME) pipewire-jack.conf - فایل پیکربندی کلاینت‌های JACK در PipeWire توضیحات (DESCRIPTION) فایل پیکربندی کلاینت JACK در PipeWire. خلاصه دستور (SYNOPSIS) $XDG_CONFIG_HOME/pipewire/jack.conf /etc/pipewire/jack.conf /usr/share/pipewire/jack.conf /usr/share/pipewire/jack.conf.d/ /etc/pipewire/jack.conf.d/ $XDG_CONFIG_HOME/pipewire/jack.conf.d/ توضیحات (DESCRIPTION) پیکربندی برای کلاینت‌های PipeWire JACK. قالب فایل پیکربندی و منطق جستجو و اولویت‌بندی فایل‌ها همانند pipewire.conf(5) است. فایل‌های پیکربندی افزونه‌ای (Drop-in) به صورت jack.conf.d/*.conf می‌توانند استفاده شوند و استفاده از آن‌ها توصیه می‌شود. به pipewire.conf(5) مراجعه کنید. بخش‌های فایل پیکربندی (CONFIGURATION FILE SECTIONS) jack.properties پیکربندی کلاینت JACK. jack.rules قوانین تطبیق (match rules) کلاینت JACK. علاوه بر این، بخش‌های پیکربندی زمینه (context) PipeWire نیز ممکن است مشخص شوند، به pipewire.conf(5) مراجعه کنید. ویژگی‌های JACK (JACK PROPERTIES) فایل پیکربندی می‌تواند شامل یک بخش اختصاصی برای JACK به نام jack.properties باشد، مانند نمونه زیر: # ~/.config/pipewire/jack.conf.d/custom.conf jack.properties = { #rt.prio = 88 #node.latency = 1024/48000 #node.lock-quantum = true #node.force-quantum = 0 #jack.show-monitor = true #jack.merge-monitor = true #jack.show-midi = true #jack.short-name = false #jack.filter-name = false #jack.filter-char = " " # # allow: Don't restrict self connect requests # fail-external: Fail self connect requests to external ports only # ignore-external: Ignore self connect requests to external ports only # fail-all: Fail all self connect requests # ignore-all: Ignore all self connect requests #jack.self-connect-mode = allow #jack.locked-process = true #jack.default-as-system = false #jack.fix-midi-events = true #jack.global-buffer-size = false #jack.passive-links = false #jack.max-client-ports = 768 #jack.fill-aliases = false #jack.writable-input = false #jack.flag-midi2 = false } برای توضیحات درباره ویژگی‌های عمومی گره، بخش stream.properties در pipewire-client.conf(5) را ببینید. همچنین امکان اعمال تنظیمات به ازای هر کلاینت وجود دارد؛ بخش «قوانین تطبیق» را در زیر ببینید. rt.prio برای محدود کردن اولویت زمان‌واقعی (realtime priority) که کلاینت‌های jack می‌توانند به دست آورند. node.latency برای اجبار اندازه بافر کمینه مشخص برای برنامه‌های کاربردی JACK، به این صورت پیکربندی کنید: node.latency = 1024/48000 این پیکربندی اندازه بافر را روی ۱۰۲۴ نمونه در نرخ نمونه‌برداری ۴۸ کیلوهرتز (48KHz) تنظیم می‌کند. اگر گراف صوتی با نرخ نمونه‌برداری دیگری در حال اجرا باشد، اندازه بافر متناسب با آن تنظیم خواهد شد. node.lock-quantum برای اطمینان از اینکه هیچ کوانتوم خودکاری در حین اجرای برنامه‌های JACK تغییر نکند، پیکربندی کنید: node.lock-quantum = true در این صورت کوانتوم تنها از طریق متادیتا یا زمانی که برنامه‌ای با node.force-quantum آغاز به کار کند قابل تغییر خواهد بود. برنامه‌های JACK همچنین قادر خواهند بود با استفاده از jack_set_buffersize() مقدار کوانتوم را بازنویسی کنند. node.force-quantum برای تحمیل کوانتوم روی مقداری مشخص و جلوگیری از تغییرات آن: node.force-quantum = 1024 در این صورت کوانتوم تنها از طریق متادیتا یا زمانی که یک برنامه با node.force-quantum آغاز شود تغییر می‌کند (یا برنامه‌های JACK که از jack_set_buffersize() برای بازنویسی کوانتوم استفاده می‌کنند). jack.show-monitor نمایش کلاینت مانیتور و درگاه‌های (پورت‌های) آن. jack.merge-monitor درگاه‌های ضبط (capture) و درگاه‌های مانیتور را روی یک کلاینت دستگاه JACK مشترک در معرض دید قرار می‌دهد. این همان شیوه‌ای است که JACK درگاه‌های مانیتور را به کلاینت‌ها نمایش می‌دهد. با این حال، حالت پیش‌فرض ادغام نکردن آن‌هاست، زیرا معمولاً منجر به رابط‌های کاربری کاربرپسندتری می‌شود. یک کلاینت اضافه با پسوند Monitor ایجاد می‌شود که شامل درگاه‌های مانیتور است. برای مثال، این بخشی از خروجی jack_lsp با تنظیم پیش‌فرض (jack.merge- monitor = false) است: مقایسه کنید: jack.merge-monitor = true: Built-in Audio Analog Stereo:playback_FL Built-in Audio Analog Stereo:monitor_FL Built-in Audio Analog Stereo:playback_FR Built-in Audio Analog Stereo:monitor_FR jack.merge-monitor = false: Built-in Audio Analog Stereo:playback_FL Built-in Audio Analog Stereo Monitor:monitor_FL Built-in Audio Analog Stereo:playback_FR Built-in Audio Analog Stereo Monitor:monitor_FR jack.show-midi نمایش کلاینت‌های MIDI و درگاه‌های آن‌ها. jack.short-name برای استفاده از نام‌های کوتاه‌تر به جای نام‌های کامل کلاینت‌های دستگاه، از jack.short-name = true استفاده کنید. مقایسه کنید: jack.short-name = true: HDA Intel PCH:playback_FL HDA Intel PCH Monitor:monitor_FL HDA Intel PCH:playback_FR HDA Intel PCH Monitor:monitor_FR jack.short-name = false: Built-in Audio Analog Stereo:playback_FL Built-in Audio Analog Stereo Monitor:monitor_FL Built-in Audio Analog Stereo:playback_FR Built-in Audio Analog Stereo Monitor:monitor_FR jack.filter-name jack.filter-char تمام کاراکترهای خاص را با jack.filter-char جایگزین می‌کند. برای کلاینت‌ها کاراکترهای خاص شامل ()[].:*$ و برای درگاه‌ها شامل ()[].*$ هستند. زمانی از این گزینه استفاده کنید که کلاینت قادر به مدیریت کاراکترهای خاص نباشد (نسخه‌های قدیمی‌تر PortAudio نام کلاینت و پورت را به عنوان عبارت منظم / regex در نظر می‌گرفتند و در نتیجه در صورت وجود نویسه‌های خاص رجکس در نام، با شکست مواجه می‌شدند). jack.self-connect-mode محدود کردن کلاینت از ایجاد اتصال به خودش یا از خودش. مقادیر مجاز و مفهوم آن‌ها به شرح زیر خلاصه می‌شود: allow درخواست‌های اتصال به خود محدود نمی‌شوند. fail-external رد درخواست‌های اتصال به خود تنها برای درگاه‌های خارجی. ignore-external نادیده گرفتن درخواست‌های اتصال به خود تنها برای درگاه‌های خارجی. fail-all رد تمامی درخواست‌های اتصال به خود. ignore-all نادیده گرفتن تمامی درخواست‌های اتصال به خود. jack.locked-process اطمینان حاصل می‌کند که فرآیند و فراخوان‌های بازگشتی (callbacks) نمی‌توانند هم‌زمان فراخوانی شوند. این رفتار عادی است، اما در صورتی که یک کلاینت خاص توانایی مدیریت این وضعیت را داشته باشد، می‌توان آن را غیرفعال کرد. jack.default-as-system نام‌گذاری مبدا و مقصد پیش‌فرض به عنوان system و شماره‌گذاری درگاه‌ها برای حداکثر کردن سازگاری با برنامه‌های JACK. jack.default-as-system = false: HDA Intel PCH:playback_FL HDA Intel PCH Monitor:monitor_FL HDA Intel PCH:playback_FR HDA Intel PCH Monitor:monitor_FR jack.default-as-system = true: system:playback_1 system:monitor_1 system:playback_2 system:monitor_2 jack.fix-midi-events تصحیح رویدادهای NoteOn با شدت صدای ۰ (velocity 0) به رویداد NoteOff. این رفتار استاندارد در JACK است و بنابراین برای بیشینه‌سازی سازگاری به‌طور پیش‌فرض فعال است. به‌ویژه افزونه‌های LV2 رویداد NoteOn با شدت ۰ را مجاز نمی‌دانند. jack.global-buffer-size هنگامی که یک کلاینت این گزینه را داشته باشد، تغییرات اندازه بافر با استفاده از متادیتا به‌صورت سراسری و دائمی برای تمام کلاینت‌های PipeWire اعمال خواهد شد. jack.passive-links باعث می‌شود کلاینت‌های JACK پیوندهای غیرفعال (passive links) ایجاد کنند. این گزینه تنها زمانی کار می‌کند که سازنده پیوند سرور با گزینه allow.link.passive پیکربندی شده باشد. jack.max-client-ports محدود کردن تعداد درگاه‌های مجاز به ازای هر کلاینت به این مقدار. jack.fill-aliases تنظیم خودکار alias1 و alias2 روی درگاه‌ها. jack.writable-input بافرهای ورودی را قابل نوشتن می‌کند. این حالت پیش‌فرض است زیرا برخی از کلاینت‌های JACK در بافر ورودی می‌نویسند. با این حال، این عمل می‌تواند باعث خرابی داده‌ها در کلاینت‌های دیگر در هنگام خواندن از بافر شود. اگر تنها با کلاینت‌های بدون نقص و استاندارد کار می‌کنید، این مقدار را برای جلوگیری از تخریب بافر برابر با true قرار دهید. jack.flag-midi2 استفاده از فلگ جدید درگاه MIDI2 در JACK روی درگاه‌های (UMP) MIDI2. این گزینه به‌طور پیش‌فرض غیرفعال است زیرا بیشتر برنامه‌های JACK هنوز از این پرچم مطلع نیستند و از نمایش پورت خودداری می‌کنند. برای برنامه‌هایی که نحوه کار با درگاه‌های MIDI2 را می‌دانند، این مقدار را true قرار دهید. قوانین تطبیق (MATCH RULES) بخش jack.rules یک عملیات update-props ارائه می‌دهد که شیئی از ویژگی‌ها را می‌پذیرد که روی شیء کلاینت و گره کلاینت jack به‌روزرسانی می‌شوند. یک بخش jack.rules به صورت زیر در فایل پیکربندی اضافه کنید: # ~/.config/pipewire/jack.conf.d/custom.conf jack.rules = [ { matches = [ { # all keys must match the value. ! negates. ~ starts regex. application.process.binary = "jack_simple_client" } ] actions = { update-props = { node.latency = 512/48000 } } } { matches = [ { client.name = "catia" } ] actions = { update-props = { jack.merge-monitor = true } } } ] این پیکربندی تأخیر jack_simple_client را روی ۵۱۲/۴۸۰۰۰ تنظیم می‌کند و باعث می‌شود Catia کلاینت مانیتور را ادغام‌شده با کلاینت بازپخش مشاهده کند. متغیرهای محیطی (ENVIRONMENT VARIABLES) برای متغیرهای محیطی عمومی به pipewire(1) مراجعه کنید. بسیاری از آن‌ها برای برنامه‌های کلاینت JACK نیز اعمال می‌شوند. متغیرهای محیطی می‌توانند برای کنترل رفتار کتابخانه کلاینت PipeWire JACK استفاده شوند. PIPEWIRE_NOJACK PIPEWIRE_INTERNAL هنگامی که هر یک از این متغیرها تنظیم شده باشند، کتابخانه کلاینت JACK از باز کردن کلاینت خودداری خواهد کرد. متغیر PIPEWIRE_INTERNAL توسط دیمون اصلی PipeWire برای جلوگیری از اتصال به خود تنظیم می‌شود. PIPEWIRE_PROPS ویژگی‌های مشخص‌شده در فایل jack.conf را اضافه یا بازنویسی می‌کند. خروجی این نمونه را بررسی کنید: > PIPEWIRE_PROPS='{ jack.short-name=true jack.merge-monitor=true }' jack_lsp ... HDA Intel PCH:playback_FL HDA Intel PCH:monitor_FL HDA Intel PCH:playback_FR HDA Intel PCH:monitor_FR ... PIPEWIRE_LATENCY PIPEWIRE_LATENCY=/ روشی سریع برای پیکربندی حداکثر اندازه بافر برای یک کلاینت. این کلاینت را با اندازه بافر مشخص‌شده (یا کوچک‌تر) اجرا می‌کند. دستور PIPEWIRE_LATENCY=256/48000 jack_lsp معادل است با: PIPEWIRE_PROPS='{ node.latency=256/48000 }' jack_lsp روشی بهتر برای شروع نشست jack با اندازه بافر مشخص، تحمیل آن با دستور زیر است: pw-metadata -n settings 0 clock.force-quantum این دستور همیشه فوراً عمل می‌کند و اندازه بافر تغییر نخواهد کرد مگر اینکه quantum دوباره به 0 بازگردانده شود. PIPEWIRE_RATE PIPEWIRE_RATE=1/ روشی سریع برای پیکربندی نرخ گراف صوتی. این دستور تلاش می‌کند نرخ نمونه‌برداری گراف را تغییر دهد. این کار معمولاً تنها زمانی ممکن است که گراف بیکار باشد و نرخ مشخص‌شده جزو نرخ‌های نمونه‌برداری مجاز باشد. دستور PIPEWIRE_RATE=1/48000 jack_lsp معادل است با: PIPEWIRE_PROPS='{ node.rate=1/48000 }' jack_lsp روشی بهتر برای شروع نشست jack در یک نرخ مشخص، اجبار نرخ با دستور زیر است: pw-metadata -n settings 0 clock.force-rate این دستور همیشه کار می‌کند و نیازی نیست که نرخ نمونه‌برداری حتماً جزو نرخ‌های مجاز پیش‌فرض باشد. نرخ همچنین تغییر نخواهد کرد تا زمانی که مجدداً به 0 بازگردانده شود. PIPEWIRE_QUANTUM PIPEWIRE_QUANTUM=/ مشابه استفاده از PIPEWIRE_LATENCY=/ و PIPEWIRE_RATE=1/ است (به موارد فوق مراجعه کنید)، با این تفاوت که صرفاً یک پیشنهاد نیست بلکه گراف را فعالانه مجبور به تغییر نرخ و کوانتوم می‌کند. می‌تواند برای تنظیم همزمان اندازه بافر و نرخ نمونه‌برداری استفاده شود. هنگامی که ۲ برنامه کوانتوم را تحمیل کنند، آخرین برنامه اولویت خواهد داشت. با متوقف شدن برنامه پیروز، کوانتوم برنامه پیشین بازیابی می‌شود. PIPEWIRE_LINK_PASSIVE PIPEWIRE_LINK_PASSIVE=true qjackctl باعث می‌شود این کلاینت فقط پیوندهای غیرفعال (passive links) ایجاد کند. تمام پیوندهای ایجادشده توسط کلاینت به عنوان غیرفعال علامت‌گذاری می‌شوند و سینک/سورس را مشغول نگه نخواهند داشت. می‌توانید از این برای پیوند دادن فیلترها به دستگاه‌ها استفاده کنید. هنگامی که هیچ کلاینتی به فیلتر متصل نیست، تنها پیوندهای غیرفعال بین فیلتر و دستگاه باقی می‌مانند و دستگاه به حالت بیکار و معلق (suspended) درمی‌آید. PIPEWIRE_NODE PIPEWIRE_NODE= درگاه‌ها را به گونه‌ای مرتب می‌کند که تنها درگاه‌های گره با شناسه فهرست شوند. می‌توانید از این ویژگی استفاده کنید تا برنامه‌ای را مجبور کنید تنها با درگاه‌های یک گره خاص تعامل داشته باشد، برای مثال هنگام اتصال خودکار (auto connecting). نویسندگان (AUTHORS) توسعه‌دهندگان پایپ‌وایر ؛ پایپ‌وایر از نشانی در دسترس است. همچنین ببینید (SEE ALSO) pw-jack(1), pipewire.conf(5) PipeWire 1.6.8 pipewire-jack.conf(5)