man(1) Faust man page man(1) نام (NAME) faust - تبدیل DSP به C/C++، CMajor، Codebox، CSharp، DLang، مفسر، Java، LLVM IR، Julia، JSFX، Rust و WebAssembly (wast/wasm) خلاصه دستور (SYNOPSIS) faust [گزینه‌ها] file1 [file2 ...] توضیحات (DESCRIPTION) Faust (جریان صوتی تابعی یا Functional Audio Stream) یک زبان برنامه‌نویسی تابعی است که به‌طور ویژه برای پردازش و سنتز بی‌درنگ سیگنال (real-time signal processing and synthesis) طراحی شده است. Faust برنامه‌های پردازش سیگنال با کارایی بالا و پلاگین‌های صوتی را برای پلتفرم‌ها و استانداردهای گوناگون هدف قرار می‌دهد. گزینه‌ها (OPTIONS) گزینه‌های ورودی (Input options): -a فایل معماری بسته‌بندی‌کننده (wrapper architecture file). -i --inline-architecture-files درون‌خط‌سازی فایل‌های معماری. -A --architecture-dir افزودن پوشه به مسیر جستجوی معماری. -I --import-dir افزودن پوشه به مسیر جستجوی کتابخانه‌ها. -L --library پیوند (link) با ماژول LLVM مشخص‌شده در . گزینه‌های خروجی (Output options): -o فایل خروجی. -e --export-dsp برون‌ریزی DSP گسترش‌یافته (همراه با تمام کتابخانه‌های گنجانده‌شده). -uim --user-interface-macros افزودن تعاریف ماکروی رابط کاربری به کد خروجی. -xml تولید یک فایل توصیف XML. -json تولید یک فایل توصیف JSON. -O --output-dir تعیین پوشه نسبی برای کد خروجی تولیدشده و فایل‌های اضافی تولیدی (SVG، XML و...). گزینه‌های تولید کد (Code generation options): -lang --language گزینش زبان خروجی؛ مقدار باید یکی از موارد asc، c، cpp (پیش‌فرض)، cmajor، codebox، csharp، dlang، fir، interp، java، jax، jsfx، julia، llvm، ocpp، rust، sdf3، vhdl یا wast/wasm باشد. -single --single-precision-floats استفاده از ممیز شناور با دقت یگانه (single precision) برای محاسبات داخلی (پیش‌فرض). -double --double-precision-floats استفاده از ممیز شناور با دقت مضاعف (double precision) برای محاسبات داخلی. -quad --quad-precision-floats استفاده از ممیز شناور با دقت چهارگانه (quad precision) برای محاسبات داخلی. -fx --fixed-point استفاده از ممیز ثابت (fixed-point) برای محاسبات داخلی. -fx-size --fixed-point-size اندازه کل اعداد ممیز ثابت بر حسب بیت (-1 برای تولید یک نوع داده fixpoint_t یکتا به کار می‌رود). -es 1|0 --enable-semantics 1|0 استفاده از معناشناسی فعال‌سازی در صورت 1 (پیش‌فرض)، و در غیر این صورت ضرب ساده. -lcc --local-causality-check بررسی علیت (causality) در سطح محلی نیز. -light --light-mode عدم تولید کامل DSP API. -clang --clang هنگام کامپایل با clang/clang++، دستورهای پیش‌پردازنده #pragma ویژه را برای برداری‌سازی خودکار می‌افزاید. -nvi --no-virtual عدم افزودن کلیدواژه “virtual” هنگام کامپایل با پسانه C++. -fp --full-parentheses همیشه در دو طرف عملگرهای دودویی (binops) پرانتز قرار گیرد. -cir --check-integer-range بررسی تبدیل بازه ممیز شناور به عدد صحیح. -exp10 --generate-exp10 جایگزینی pow(10,x) با تابع احتمالاً سریع‌تر exp10(x). -os --one-sample تولید محاسبات تک‌نمونه‌ای. -ec --external-control تفکیک توابع “control” و “compute”. -it --inline-table درون‌خط‌سازی کد rdtable/rwtable در کلاس اصلی. -cm --compute-mix ترکیب در بافرهای خروجی (mix in outputs buffers). -ct --check-table بررسی محدوده اندیس rtable/rwtable و تولید کد دسترسی امن [0/1: به صورت پیش‌فرض 1]. -cn --class-name تعیین نام کلاس dsp برای استفاده به جای mydsp. -scn --super-class-name تعیین نام ابرکلاس برای استفاده به جای dsp. -pn --process-name تعیین نام نقطه ورود dsp به جای process. -mcd --max-copy-delay استفاده از تاخیر رونوشت (copy delay) تا حداکثر تاخیر و تاخیر متراکم بالاتر از آن (تنها در ocpp) یا یک بافر حلقه‌ای (پیش‌فرض ۱۶ نمونه). -mdd --max-dense-delay استفاده از تاخیر متراکم تا حداکثر تاخیر (در صورت وجود تراکم کافی) و تاخیر بافر حلقه‌ای بالاتر از آن (تنها در ocpp، پیش‌فرض ۱۰۲۴). -mdy --min-density حداقل تراکم (100*تعداد تاخیرها/حداکثر تاخیر) برای استفاده از تاخیرهای متراکم (تنها در ocpp، پیش‌فرض ۳۳). -dlt --delay-line-threshold استفاده از تاخیرهای بافر حلقه‌ای مبتنی بر ماسک تا حداکثر تاخیر و بافرهای حلقه‌ای مبتنی بر انتخاب بالاتر از آن (پیش‌فرض INT_MAX نمونه). -mem --memory-manager انجام تخصیص‌ها با استفاده از یک مدیر حافظه سفارشی. -mem1 --memory-manager1 انجام تخصیص‌ها با استفاده از یک مدیر حافظه سفارشی، با استفاده از مدل iControl/fControl و iZone/fZone. -mem2 --memory-manager2 استفاده از مدل iControl/fControl و iZone/fZone بدون مدیر حافظه صریح. -mem3 --memory-manager3 استفاده از مدل iControl/fControl و iZone/fZone بدون مدیر حافظه صریح به همراه دسترسی از طریق پارامترهای تابع. -ftz --flush-to-zero کد اضافه‌شده به سیگنال‌های بازگشتی [0: خیر (پیش‌فرض)، 1: مبتنی بر fabs، 2: مبتنی بر ماسک (سریع‌ترین)]. -rui --range-ui تعیین تولید یا عدم تولید کد برای محدود کردن مقادیر vslider/hslider/nentry در بازه [min..max]. -fui --freeze-ui تعیین ثابت نگه‌داشتن یا نداشتن مقادیر vslider/hslider/nentry روی یک مقدار داده‌شده (به‌طور پیش‌فرض مقدار اولیه‌سازی init). -inj --inject تزریق فایل منبع به فایل معماری به جای کامپایل یک فایل dsp. -scal --scalar تولید کد غیربرداری (پیش‌فرض). -inpl --in-place تولید کدی که هنگام یکسان بودن بافرهای ورودی و خروجی کار می‌کند (تنها در حالت نرده‌ای). -vec --vectorize تولید کدی با قابلیت برداری‌سازی آسان‌تر. -vs --vec-size اندازه بردار (پیش‌فرض ۳۲ نمونه). -lv --loop-variant گونهٔ حلقه [0: سریع‌ترین، اندازه بردار ثابت و یک حلقه باقیمانده (پیش‌فرض)، 1: ساده، اندازه بردار متغیر، 2: ثابت، اندازه بردار ثابت]. -omp --openmp تولید دستورهای pragma مربوط به OpenMP؛ گزینه --vectorize را فعال می‌کند. -pl --par-loop تولید حلقه‌های موازی در حالت --openmp. -sch --scheduler تولید وظایف و استفاده از یک زمان‌بند سرقت کار (Work Stealing)؛ گزینه --vectorize را فعال می‌کند. -ocl --opencl تولید وظایف با OpenCL (آزمایشی). -cuda --cuda تولید وظایف با CUDA (آزمایشی). -dfs --deep-first-scheduling زمان‌بندی حلقه‌های برداری به ترتیب عمق-نخست (deep first). -g --group-tasks گروه‌بندی وظایف متوالی تک‌رشته‌ای با یکدیگر در زمان استفاده از -omp یا -sch. -fun --fun-tasks تفکیک کد وظایف در قالب توابع جداگانه (در حالت‌های -vec، -sch یا -omp). -fm --fast-math استفاده از نسخه‌های بهینه‌شده توابع ریاضی پیاده‌سازی‌شده در ؛ استفاده از “faust/dsp/fastmath.cpp” هنگامی که file برابر با “def” است، و فرض بر این که توابع در فایل معماری تعریف شده‌اند هنگامی که file برابر با “arch” باشد..PP -mapp --math-approximation نسخه‌های ساده‌تر/سریع‌تر توابع `floor/ceil/fmod/remainder`. -noreprc --no-reprc (فقط Rust) ساختار dsp را مجبور به پیروی از چیدمان C ABI نمی‌کند. -ns --namespace تولید کد C++ یا D در فضای‌نام . -vhdl-trace --vhdl-trace فعال‌سازی ردگیری (trace). -vhdl-float --vhdl-float استفاده از قالب IEEE-754 برای نمونه‌ها به‌جای نقطه ثابت (fixed point). -vhdl-components --vhdl-components مسیر فایل توصیف‌کننده مؤلفه‌های سفارشی برای backend زبان VHDL. -fpga-mem --fpga-mem حداکثر اندازه block ram در FPGA، مورد استفاده در حالت -mem1/-mem2. -fpga-mem-th --fpga-mem-th آستانه اندازه آرایه در FPGA (بر حسب واحد نوع حافظه)، مورد استفاده در حالت -mem1/-mem2. -wi --widening-iterations تعداد تکرارها پیش از تعریض (widening) در تحدید دامنه سیگنال. -ni --narrowing-iterations تعداد تکرارها پیش از توقف باریک‌سازی (narrowing) در تحدید دامنه سیگنال. -rnt --rust-no-faustdsp-trait (فقط Rust) پیاده‌سازی trait مربوط به FaustDsp را تولید نمی‌کند. -rnlm --rust-no-libm (فقط Rust) فراخوانی‌های FFI به libm را تولید نمی‌کند. گزینه‌های نمودار بلوکی (Block diagram options): -ps --postscript چاپ نمودار بلوکی در یک فایل postscript. -svg --svg چاپ نمودار بلوکی در یک فایل svg. -sd --simplify-diagrams تلاش برای ساده‌سازی بیشتر نمودارها پیش از ترسیم. -drf --draw-route-frame رسم قاب‌های مسیر (route frames) به‌جای کابل‌های ساده. -f --fold آستانه برای فعال‌سازی حالت تا کردن (folding) در حین تولید نمودار بلوکی (پیش‌فرض 25 عنصر). -fc --fold-complexity آستانه پیچیدگی برای تا کردن یک عبارت در حالت تا کردن (پیش‌فرض 2). -mns --max-name-size آستانه طول نام در حین تولید نمودار بلوکی (پیش‌فرض 40 نویسه). -sn --simple-names استفاده از نام‌های ساده (بدون آرگومان‌ها) در هنگام تولید نمودار بلوکی. -blur --shadow-blur افزودن محوشدگی سایه (shadow blur) به جعبه‌های SVG. -sc --scaled-svg قالب SVG مقیاس‌پذیر خودکار. گزینه‌های مستندات ریاضی (Math doc options): -mdoc --mathdoc چاپ مستندات ریاضی برنامه Faust در قالب LaTeX درون پوشه -mdoc. -mdlang --mathdoc-lang در صورت وجود فایل ترجمه ( = en, fr, ...). -stripmdoc --strip-mdoc-tags حذف برچسب‌های mdoc هنگام چاپ فهرست‌های Faust -mdoc. گزینه‌های اشکال‌زدایی (Debug options): -d --details چاپ جزئیات کامپایل. -time --compilation-time نمایش اطلاعات زمان‌بندی مراحل مختلف کامپایل. -flist --file-list چاپ فهرست فایل‌ها (شامل کتابخانه‌ها) که برای ارزیابی فرایند به کار رفته‌اند. -tg --task-graph چاپ گراف داخلی وظایف (task graph) در قالب dot. -sg --signal-graph چاپ گراف داخلی سیگنال در قالب dot. -rg --retiming-graph چاپ گراف داخلی سیگنال پس از زمان‌بندی مجدد (retiming) در قالب dot. -norm --normalized-form چاپ سیگنال‌ها در قالب نرمال‌شده و خروج. -norm1 --normalized-form1 چاپ سیگنال‌ها در قالب نرمال‌شده به همراه شناسه‌ها برای زیرعبارت‌های مشترک و خروج. -me --math-exceptions بررسی عملگر / برای مخرج 0 و بررسی دامنه توابع remainder، fmod، sqrt، log10، log، acos و asin. -sts --strict-select تولید کد دقیق (strict) برای `selectX` حتی برای شاخه‌های بدون وضعیت (هر دو محاسبه می‌شوند). -wall --warning-all چاپ تمامی هشدارها. -t --timeout لغو کامپایل پس از ثانیه (پیش‌فرض 120). گزینه‌های اطلاعاتی (Information options): -h --help چاپ این پیام راهنما. -v --version چاپ اطلاعات نسخه و فهرست backendهای تعبیه‌شده. -libdir --libdir چاپ دایرکتوری حاوی کتابخانه‌های Faust. -includedir --includedir چاپ دایرکتوری حاوی سرآیندهای (headers) Faust. -archdir --archdir چاپ دایرکتوری حاوی معماری‌های Faust. -dspdir --dspdir چاپ دایرکتوری حاوی کتابخانه‌های dsp مربوط به Faust. -pathslist --pathslist چاپ مسیرهای معماری‌ها و کتابخانه‌های dsp..SS "متغیرهای محیطی:" FAUST_DEBUG = FAUST_LLVM1 چاپ LLVM IR پیش از بهینه‌سازی. FAUST_DEBUG = FAUST_LLVM2 چاپ LLVM IR پس از بهینه‌سازی. FAUST_DEBUG = FIR_PRINTER چاپ FIR پس از تولید. FAUST_DEBUG = FAUST_LLVM_NO_FM غیرفعال‌سازی بهینه‌سازی fast-math در LLVM IR. FAUST_OPT = FAUST_SIG_NO_NORM غیرفعال‌سازی نرمال‌سازی سیگنال. مثال: faust -a jack-gtk.cpp -o myfx.cpp myfx.dsp همچنین ببینید (SEE ALSO) وب‌گاه Grame Faust در: گزارش باگ‌ها (BUGS) لطفاً باگ‌ها را گزارش دهید به: نویسندگان (AUTHORS) کپی‌رایت (C) 2002-2026، GRAME - Centre National de Creation Musicale. تمامی حقوق محفوظ است. Version 2.85.9 (30-June-2026) man(1)