.\" $OpenBSD$ .\" .\" Copyright (c) 2006-2012 Alexandre Ratchov .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd $Mdocdate$ .Dt SNDIOD 8 .Os .Sh "نام (NAME)" .Nm sndiod .Nd سرور صدا و MIDI .Sh "خلاصه دستور (SYNOPSIS)" .Nm sndiod .Bk -words .Op Fl d .Op Fl a Ar flag .Op Fl b Ar nframes .Op Fl C Ar min : Ns Ar max .Op Fl c Ar min : Ns Ar max .Op Fl e Ar enc .Op Fl F Ar device .Op Fl f Ar device .Op Fl j Ar flag .Op Fl L Ar addr .Op Fl m Ar mode .Op Fl Q Ar port .Op Fl q Ar port .Op Fl r Ar rate .Op Fl s Ar name .Op Fl t Ar mode .Op Fl U Ar unit .Op Fl v Ar volume .Op Fl w Ar flag .Op Fl z Ar nframes .Ek .Sh "توضیحات (DESCRIPTION)" دیمن .Nm یک لایه میانی بین برنامه‌های صوتی یا MIDI و سخت‌افزار است\&. این دیمن پردازش صوتی لازم را انجام می‌دهد تا به هر برنامه‌ای امکان دهد روی هر سخت‌افزار پشتیبانی‌شده‌ای کار کند\&. به طور پیش‌فرض، .Nm تنها اتصالات برنامه‌هایی را می‌پذیرد که روی همان سیستم اجرا می‌شوند؛ این دیمن تنها زمانی مقداردهی اولیه می‌شود که برنامه‌ها از خدمات آن استفاده می‌کنند، که به .Nm امکان می‌دهد در بقیه زمان‌ها مقدار ناچیزی از منابع سیستم را مصرف کند\&. سیستم‌های فاقد سخت‌افزار صوتی می‌توانند از .Nm استفاده کنند تا دستگاه‌های با قابلیت اتصال حین کار (hot-pluggable) را به صورت پیش‌فرض و تقریباً بدون هزینه فعال نگه دارند\&. .Pp عملکرد .Nm به این صورت است: حداقل یک .Em زیردستگاه (sub-device) ارائه می‌دهد که هر تعداد برنامه صوتی می‌توانند به آن متصل شوند و از آن به گونه‌ای استفاده کنند که گویی یک سخت‌افزار صوتی است\&. در حین پخش، .Nm داده‌های صوتی را به طور همزمان از تمام برنامه‌ها دریافت می‌کند، آن‌ها را میکس کرده و نتیجه را به دستگاه سخت‌افزاری ارسال می‌نماید\&. به طور مشابه، در حین ضبط، داده‌های صوتی ضبط‌شده از دستگاه را تکثیر کرده و به تمام برنامه‌ها ارسال می‌کند\&. از آنجا که داده‌های صوتی از طریق فرآیند .Nm جریان می‌یابند، این امکان وجود دارد که داده‌های صوتی را در لحظه پردازش کند: .Pp .Bl -bullet -offset indent -compact .It تغییر کدگذاری صدا برای غلبه بر ناسازگاری‌های بین نرم‌افزار و سخت‌افزار\&. .It هدایت صدا از یک کانال به کانال دیگر، ادغام استریو یا تقسیم مونو\&. .It کنترل بلندی صدای پخش به ازای هر برنامه و همچنین کنترل بلندی صدای اصلی (مستر)\&. .It نظارت بر صدای در حال پخش، که به یک برنامه اجازه می‌دهد آنچه برنامه‌های دیگر پخش می‌کنند را ضبط کند\&. .El .Pp پردازش بر اساس هر زیردستگاه پیکربندی می‌شود، به این معنی که صدای تمام برنامه‌های متصل به یک زیردستگاه طبق همان پیکربندی پردازش خواهد شد\&. می‌توان چندین زیردستگاه تعریف کرد، که امکان همزیستی چندین پیکربندی مختلف را فراهم می‌سازد\&. کاربر پیکربندی مورد استفاده یک برنامه خاص را با انتخاب زیردستگاهی که آن برنامه استفاده می‌کند، تعیین می‌نماید\&. .Pp دیمن .Nm جعبه‌های عبور MIDI (هاب‌ها) را ارائه می‌دهد، که به برنامه‌ها امکان می‌دهد پیام‌های MIDI را به روشی یکپارچه برای یکدیگر یا به درگاه‌های سخت‌افزاری MIDI ارسال کنند\&. .Pp در نهایت، .Nm یک درگاه کنترل MIDI را در دسترس قرار می‌دهد که برای موارد زیر قابل استفاده است: .Pp .Bl -bullet -offset indent -compact .It کنترل میزان بلندی صدا\&. .It منبع ساعت مشترک برای برنامه‌های صوتی و MIDI\&. .It شروع، توقف و تغییر مکان گروه‌هایی از برنامه‌های صوتی\&. .El .Pp گزینه‌ها به شرح زیر هستند: .Bl -tag -width Ds .It Fl a Ar flag کنترل می‌کند که آیا .Nm دستگاه صوتی یا درگاه MIDI را تنها در صورت نیاز باز کند یا آن را همیشه باز نگه دارد\&. اگر پرچم .Va on باشد، دستگاه صوتی یا درگاه MIDI همیشه باز نگه داشته می‌شود و اطمینان حاصل می‌شود که هیچ برنامه دیگری نمی‌تواند آن را در اختیار بگیرد\&. اگر پرچم .Va off باشد، به طور خودکار بسته می‌شود و به برنامه‌های دیگر اجازه می‌دهد دسترسی مستقیم به دستگاه صوتی داشته باشند، یا دستگاه قطع شود\&. مقدار پیش‌فرض .Va off است\&. .It Fl b Ar nframes اندازه بافر دستگاه صوتی بر حسب فریم\&. یک فریم شامل یک نمونه (sample) برای هر کانال در جریان است\&. این تعداد فریم‌هایی است که قبل از پخش بافر می‌شوند و بنابراین تأخیر پخش را کنترل می‌کند\&. پیش‌فرض 7680 یا دو برابر اندازه بلوک .Pq Fl z در صورت تنظیم بودن اندازه بلوک است\&. .It Xo .Fl C Ar min : Ns Ar max , .Fl c Ar min : Ns Ar max .Xc محدوده شماره کانال‌ها به ترتیب برای جهت‌های ضبط و پخش که هر کلاینتی مجاز به استفاده از آن است\&. این زیرمجموعه‌ای از کانال‌های دستگاه صوتی است\&. پیش‌فرض 0:1 است، یعنی استریو\&. .It Fl d فعال کردن اشکال‌زدایی در خروجی خطای استاندارد و عدم جداسازی از ترمینال کنترل‌کننده\&. می‌تواند چندین بار برای افزایش بیشتر پرگویی لاگ مشخص شود\&. .It Fl e Ar enc تلاش برای پیکربندی دستگاه جهت استفاده از این کدگذاری\&. پیش‌فرض .Va s16 است\&. نام‌های کدگذاری از طرح زیر استفاده می‌کنند: علامت‌دار بودن .Po .Va s یا .Va u .Pc به همراه دقت بر حسب بیت، ترتیب بایت .Po .Va le یا .Va be .Pc ، تعداد بایت در هر نمونه، و تراز .Po .Va msb یا .Va lsb .Pc \&. تنها علامت‌دار بودن و دقت اجباری هستند\&. مثال‌ها: .Va u8 ، s16le ، s24le3 ، s24le4lsb \&. .It Fl F Ar device همانند .Fl f است با این تفاوت که اگر دستگاه قطع شود، دستگاهی که با گزینه قبلی .Fl f یا .Fl F داده شده است استفاده خواهد شد\&. .It Fl f Ar device افزودن این دستگاه صوتی .Xr sndio 7 به دستگاه‌های مورد استفاده برای پخش و/یا ضبط\&. گزینه‌های قبلی مربوط به هر دستگاه .Pq Fl aberwz برای این دستگاه اعمال می‌شوند\&. زیردستگاه‌هایی .Pq Fl s که بعد از آن اعمال می‌شوند به این دستگاه متصل خواهند شد\&. حالت دستگاه و پارامترها از زیردستگاه‌های متصل به آن تعیین می‌شوند\&. اگر هیچ گزینه .Fl f استفاده نشود، .Nm از .Pa rsnd/0 ، rsnd/1 ، .No ... ، .Pa rsnd/3 استفاده خواهد کرد\&. .It Fl j Ar flag کنترل می‌کند که آیا در صورتی که تعداد کانال‌های درخواستی توسط یک برنامه با تعداد کانال‌های دستگاه برابر نباشد، کانال‌های برنامه ادغام یا گسترش یابند یا خیر\&. اگر پرچم .Va off باشد، کانال‌های کلاینت به کانال متناظر در دستگاه هدایت می‌شوند و احتمالاً کانال‌هایی که در دستگاه وجود ندارند دور ریخته می‌شوند\&. اگر پرچم .Va on باشد، یک کانال منفرد کلاینت ممکن است روی چندین کانال دستگاه ارسال شود، یا چندین کانال کلاینت به یک کانال منفرد دستگاه فرستاده شوند\&. برای مثال، این ویژگی می‌تواند برای تبدیل مونو به استریو استفاده شود\&. پیش‌فرض .Ar on است\&. .It Fl L Ar addr مشخص کردن نشانی شبکه محلی که .Nm باید روی آن گوش فرا دهد؛ .Nm روی درگاه TCP به شماره 11025+n گوش خواهد داد، که در آن n شماره واحد مشخص‌شده با .Fl U است\&. بدون این گزینه، .Nm تنها روی سوکت دامنه .Ux گوش می‌دهد و از هیچ شبکه‌ای قابل دسترسی نیست\&. اگر آرگومان گزینه .Sq - باشد، در این صورت .Nm اتصالات را از هر نشانی خواهد پذیرفت\&. از آنجا که ارتباط امن نیست، این گزینه تنها برای شبکه‌های محلی که تمام میزبان‌ها و کاربران آن معتمد هستند مناسب است\&. .It Fl m Ar mode تنظیم حالت زیردستگاه\&. حالت‌های معتبر عبارتند از .Ar play ، .Ar rec و .Ar mon ، متناظر با پخش، ضبط و نظارت (monitoring)\&. جریان نظارت یک جریان ضبط ساختگی متناظر با میکس تمام جریان‌های پخش است\&. می‌توان چندین حالت را با کاما جدا کرد، اما نمی‌توان از یک زیردستگاه برای هر دو مورد ضبط و نظارت استفاده نمود\&. پیش‌فرض .Ar play , Ns Ar rec است (یعنی تمام‌دوطرفه یا full-duplex)\&. .It Fl Q Ar port مشخص کردن یک درگاه MIDI جایگزین برای استفاده\&. اگر کار نکند، درگاهی که با آخرین گزینه‌های .Fl Q یا .Fl q داده شده است استفاده خواهد شد\&. به عنوان مثال، این اجازه می‌دهد یک کنترل‌کننده USB MIDI بدون نیاز به راه‌اندازی مجدد برنامه‌های استفاده‌کننده از آن جایگزین شود\&. .It Fl q Ar port در دسترس قرار دادن درگاه MIDI داده‌شده\&. این به چندین برنامه اجازه می‌دهد درگاه را به اشتراک بگذارند\&. اگر هیچ گزینه .Fl q استفاده نشود، .Nm از .Pa rmidi/0 ، rmidi/1 ، .No ... ، .Pa rmidi/7 استفاده خواهد کرد\&. .It Fl r Ar rate تلاش برای اجبار دستگاه جهت استفاده از این نرخ نمونه‌برداری بر حسب هرتز\&. پیش‌فرض 48000 است\&. .It Fl s Ar name افزودن .Ar name به فهرست زیردستگاه‌های در دسترس\&. این به کلاینت‌ها اجازه می‌دهد به جای دستگاه صوتی فیزیکی از .Nm برای ورودی و خروجی صدا استفاده کنند تا دستگاه فیزیکی را با سایر کلاینت‌ها به اشتراک بگذارند\&. تعریف چندین زیردستگاه اجازه می‌دهد یک دستگاه صوتی فیزیکی به زیردستگاه‌هایی با ویژگی‌های متفاوت (مانند محدوده‌های کانال) تقسیم شود\&. نام داده‌شده .Ar name متناظر با بخش .Dq گزینه از رشته نام دستگاه .Xr sndio 7 است\&. .It Fl t Ar mode انتخاب روشی که کلاینت‌ها توسط پیام‌های MIDI Machine Control (MMC) دریافت شده توسط .Nm کنترل می‌شوند\&. اگر حالت .Va off باشد (پیش‌فرض)، برنامه‌ها تحت تأثیر پیام‌های MMC قرار نمی‌گیرند\&. اگر حالت .Va slave باشد، برنامه‌ها به طور همگام با پیام‌های شروع MMC راه‌اندازی می‌شوند؛ علاوه بر این، ساعت سرور به عنوان پیام‌های MIDI Time Code (MTC) ارائه می‌شود که به نرم‌افزارها یا سخت‌افزارهای با قابلیت MTC اجازه می‌دهد با برنامه‌های صوتی همگام شوند\&. .It Fl U Ar unit شماره واحد\&. هر نمونه از سرور .Nm یک شماره واحد منحصربه‌فرد دارد که در نام‌های دستگاه .Xr sndio 7 استفاده می‌شود\&. پیش‌فرض 0 است\&. .It Fl v Ar volume میزان تضعیف نرم‌افزاری بلندی صدای پخش\&. مقدار باید بین 1 تا 127 باشد، متناظر با تضعیف \-42dB تا \-0dB در گام‌های 1/3dB\&. کلاینت‌ها این پارامتر را به ارث می‌برند\&. کاهش بلندی صدا از قبل به بلندی صدای کلاینت اجازه می‌دهد تا زمانی که تعداد کلاینت‌ها به اندازه کافی کم است، مستقل از تعداد آن‌ها باقی بماند\&. 18 واحد بلندی صدا (یعنی تضعیف \-6dB) اجازه می‌دهد تعداد برنامه‌های پخش دو برابر شود\&. پیش‌فرض 127 است\&. .It Fl w Ar flag کنترل رفتار .Nm هنگامی که حداکثر بلندی صدای سخت‌افزار حاصل شده و یک برنامه جدید شروع به پخش می‌کند\&. این مورد تنها زمانی اتفاق می‌افتد که بلندی صدا با استفاده از گزینه .Fl v به درستی تنظیم نشده باشد\&. اگر پرچم .Va on باشد، بلندی صدای اصلی (مستر) به طور خودکار تنظیم می‌شود تا از اعوجاج و برش صدا (clipping) جلوگیری گردد\&. پیش‌فرض .Va off است\&. .It Fl z Ar nframes اندازه بلوک دستگاه صوتی بر حسب فریم\&. این تعداد فریم‌های بین تیک‌های ساعت صوتی است، یعنی دقت ساعت\&. اگر یک زیردستگاه با گزینه .Fl t ایجاد شود و MTC برای همگام‌سازی استفاده گردد، دقت ساعت باید 96، 100 یا 120 تیک در ثانیه برای حداکثر دقت باشد\&. به عنوان مثال، 100 تیک در ثانیه در فرکانس 48000Hz متناظر با اندازه بلوک 480 فریم است\&. پیش‌فرض 480 یا نصف اندازه بافر .Pq Fl b در صورت تنظیم اندازه بافر است\&. .El .Pp در خط فرمان، پارامترهای مربوط به هر دستگاه .Pq Fl aberwz باید قبل از تعریف دستگاه .Pq Fl f قرار گیرند، و پارامترهای مربوط به هر زیردستگاه .Pq Fl Ccjmtvx باید قبل از تعریف زیردستگاه .Pq Fl s قرار گیرند\&. تعاریف زیردستگاه .Pq Fl s باید پس از تعریف دستگاهی .Pq Fl f که به آن متصل می‌شوند بیایند\&. .Pp اگر هیچ دستگاه صوتی .Pq Fl f مشخص نشود، تنظیمات به گونه‌ای اعمال می‌شوند که گویی دستگاه پیش‌فرض مشخص شده است\&. اگر هیچ زیردستگاهی .Pq Fl s برای یک دستگاه مشخص نشود، یک زیردستگاه پیش‌فرض متصل به آن ایجاد می‌شود\&. اگر یک دستگاه .Pq Fl f دو بار تعریف شود، هر دو تعریف ادغام می‌شوند: پارامترهای اولی استفاده می‌شوند اما زیردستگاه‌های .Pq Fl s هر دو تعریف ایجاد می‌گردند\&. دستگاه پیش‌فرض .Xr sndio 7 استفاده‌شده توسط .Nm عبارت است از .Pa rsnd/0 ، و زیردستگاه پیش‌فرض ارائه‌شده توسط .Nm عبارت است از .Pa snd/default \&. .Pp اگر برای .Nm سیگنال .Dv SIGINT یا .Dv SIGTERM ارسال شود، خاتمه می‌یابد\&. اگر سیگنال .Dv SIGHUP ارسال شود، تمام دستگاه‌های صوتی و درگاه‌های MIDI را مجدداً باز می‌کند\&. .Pp به طور پیش‌فرض، هنگامی که برنامه نمی‌تواند داده‌های ضبط‌شده را به اندازه کافی سریع بپذیرد یا نمی‌تواند داده‌ها را برای پخش به اندازه کافی سریع ارائه دهد، برنامه متوقف (pause) می‌شود، یعنی نمونه‌هایی که نمی‌توان نوشت دور ریخته می‌شوند و نمونه‌هایی که نمی‌توان خواند با سکوت جایگزین می‌گردند\&. اگر یک زیردستگاه با گزینه .Fl t ایجاد شود، نمونه‌های ضبط‌شده دور ریخته می‌شوند، اما به محض رفع انسداد برنامه، همان مقدار سکوت نوشته خواهد شد تا به موقعیت زمانی صحیح برسد\&. به طور مشابه سکوت پخش می‌شود، اما به محض رفع انسداد برنامه همان مقدار از نمونه‌ها دور ریخته خواهد شد\&. این امر همگام‌سازی مناسب بین برنامه‌ها را تضمین می‌کند\&. .Sh "کنترل MIDI (MIDI CONTROL)" دیمن .Nm یک درگاه MIDI با همان نام زیردستگاه صوتی ارائه‌شده ایجاد می‌کند که برنامه‌های MIDI می‌توانند به آن متصل شوند\&. .Nm ساعت دستگاه صوتی را در دسترس قرار می‌دهد و اجازه می‌دهد ویژگی‌های دستگاه صوتی از طریق MIDI کنترل شوند\&. .Pp یک کانال MIDI به هر جریان اختصاص می‌یابد و بلندی صدا با استفاده از کنترل‌کننده استاندارد صدا (شماره 7) تغییر می‌کند\&. به طور مشابه، هنگامی که کلاینت صوتی بلندی صدای خود را تغییر می‌دهد، همان پیام کنترل‌کننده MIDI به بیرون ارسال می‌شود؛ به عنوان مثال می‌تواند برای نظارت یا به عنوان بازخورد برای فیدرهای موتوری استفاده شود\&. .Pp بلندی صدای اصلی را می‌توان با استفاده از پیام سیستمی انحصاری استاندارد master volume تغییر داد\&. .Pp جریان‌های ایجادشده با گزینه .Fl t توسط پیام‌های MMC زیر کنترل می‌شوند: .Bl -tag -width relocateXXX -offset indent .It relocate این پیام توسط کلاینت‌های صوتی .Nm نادیده گرفته می‌شود، اما موقعیت زمانی داده‌شده به عنوان یک پیام MTC .Dq "full frame" به درگاه‌های MIDI ارسال می‌شود و تمام دستگاه‌های تابع MTC را وادار به تغییر مکان به موقعیت داده‌شده می‌کند (به زیر مراجعه کنید)\&. .It start تمام جریان‌ها را در حالت شروع قرار می‌دهد\&. در این حالت، .Nm منتظر می‌ماند تا تمام جریان‌ها برای شروع آماده شوند، و سپس آن‌ها را به طور همگام شروع می‌کند\&. پس از شروع، جریان‌های جدیدی می‌توانند ایجاد شوند .Pq Nm sndiod اما تا انتقال بعدی از stop به start مسدود خواهند شد\&. .It stop تمام جریان‌ها را در حالت متوقف‌شده قرار می‌دهد (پیش‌فرض)\&. در این حالت، هر جریانی که قصد شروع پخش یا ضبط را داشته باشد متوقف می‌شود\&. جریان‌های کلاینت که از قبل شروع شده‌اند تحت تأثیر قرار نمی‌گیرند تا زمانی که متوقف شوند و مجدداً تلاش کنند شروع شوند\&. .El .Pp جریان‌های ایجادشده با گزینه .Fl t ساعت دستگاه .Nm را با استفاده از MTC صادر می‌کنند، که اجازه می‌دهد نرم‌افزارها یا سخت‌افزارهای غیرصوتی با جریان صوتی همگام شوند\&. حداکثر دقت زمانی به دست می‌آید که تعداد بلوک‌ها در هر ثانیه با یکی از نرخ‌های استاندارد ساعت MTC (یعنی 96، 100 و 120 هرتز) برابر باشد\&. نرخ‌های نمونه‌برداری .Pq Fl r و اندازه‌های بلوک .Pq Fl z زیر توصیه می‌شوند: .Pp .Bl -bullet -offset indent -compact .It 44100Hz،‏ 441 فریم (نرخ MTC برابر 100Hz است) .It 48000Hz،‏ 400 فریم (نرخ MTC برابر 120Hz است) .It 48000Hz،‏ 480 فریم (نرخ MTC برابر 100Hz است) .It 48000Hz،‏ 500 فریم (نرخ MTC برابر 96Hz است) .El .Pp به عنوان مثال، دستور زیر دو دستگاه ایجاد خواهد کرد: دستگاه پیش‌فرض .Va snd/default و یک دستگاه تحت کنترل MIDI به نام .Va snd/mmc : .Bd -literal -offset indent $ sndiod -r 48000 -z 400 -s default -t slave -s mmc .Ed .Pp جریان‌های متصل به .Va snd/default به طور عادی رفتار می‌کنند، در حالی که جریان‌های متصل به .Va snd/mmc منتظر سیگنال شروع MMC مانده و به طور همگام شروع به کار می‌کنند\&. صرف نظر از اینکه یک جریان به کدام دستگاه متصل است، پیچ تنظیم بلندی صدای پخش آن در دسترس قرار دارد\&. .Sh "اتصال حین کار (HOT PLUGGING)" اگر دستگاه‌های مشخص‌شده با .Fl F در صورت نیاز در دسترس نباشند یا در حین اجرا جدا شوند، .Nm تلاش خواهد کرد تا به طور یکپارچه به آخرین دستگاه مشخص‌شده بازگردد\&. .Pp دیمن .Nm به طور خودکار به دستگاه مشخص‌شده‌ای که در حین اجرا متصل شده است تغییر وضعیت نمی‌دهد\&. در عوض، باید از .Xr sndioctl 1 برای تغییر کنترل .Va server.device استفاده شود\&. .Pp به عنوان مثال، مشخص کردن یک دستگاه USB با .Fl F به دنبال یک دستگاه PCI با .Fl f به .Nm اجازه می‌دهد هنگام اتصال دستگاه USB ترجیحاً از آن استفاده کند و هنگام قطع شدن به دستگاه PCI بازگردد\&. .Sh "مثال‌ها (EXAMPLES)" راه‌اندازی سرور با استفاده از پارامترهای پیش‌فرض، ایجاد یک زیردستگاه اضافی برای خروجی به کانال‌های 2:3 تنها (بلندگوهای عقب در اکثر کارت‌ها)، و در دسترس قرار دادن دستگاه‌های .Pa snd/default و .Pa snd/rear : .Bd -literal -offset indent $ sndiod -s default -c 2:3 -s rear .Ed .Pp راه‌اندازی سرور برای ایجاد زیردستگاه پیش‌فرض با بلندی صدای کم و یک زیردستگاه اضافی برای خروجی با بلندی صدای زیاد، و در دسترس قرار دادن دستگاه‌های .Pa snd/default و .Pa snd/max : .Bd -literal -offset indent $ sndiod -v 65 -s default -v 127 -s max .Ed .Pp راه‌اندازی سرور برای پیکربندی دستگاه صوتی جهت استفاده از فرکانس نمونه‌برداری 48kHz، اندازه بلوک 240 فریم، و بافرهای 2 بلوکی\&. تأخیر متناظر 10 میلی‌ثانیه است، یعنی زمانی که طول می‌کشد تا صدا 3.5 متر منتشر شود\&. .Bd -literal -offset indent $ sndiod -r 48000 -b 480 -z 240 .Ed .Sh "همچنین ببینید (SEE ALSO)" .Xr sndio 7 .Sh "اشکالات (BUGS)" نمونه‌برداری مجدد (resampling) کیفیت پایینی دارد؛ به ویژه از کاهش نرخ نمونه‌برداری (down-sampling) هنگام ضبط باید اجتناب شود\&. .Pp اگر .Fl a Ar off استفاده شود، .Nm ابتدا زیردستگاه‌ها را برای ارائه ایجاد می‌کند و سپس سخت‌افزار صوتی را در صورت تقاضا باز می‌کند\&. از نظر فنی، این به .Nm اجازه می‌دهد تا تلاش کند از یکی از زیردستگاه‌هایی که خود ارائه می‌دهد به عنوان یک دستگاه صوتی استفاده کند، که باعث ایجاد بن‌بست (deadlock) می‌شود\&. هیچ چیزی وجود ندارد که مانع از آسیب زدن کاربر به خود با ایجاد چنین بن‌بستی شود\&.