man(1) Faust man page man(1)

faust - تبدیل DSP به C/C++، CMajor، Codebox، CSharp، DLang، مفسر، Java، LLVM IR، Julia، JSFX، Rust و WebAssembly (wast/wasm)

faust [گزینه‌ها] file1 [file2 ...]

Faust (جریان صوتی تابعی یا Functional Audio Stream) یک زبان برنامه‌نویسی تابعی است که به‌طور ویژه برای پردازش و سنتز بی‌درنگ سیگنال (real-time signal processing and synthesis) طراحی شده است. Faust برنامه‌های پردازش سیگنال با کارایی بالا و پلاگین‌های صوتی را برای پلتفرم‌ها و استانداردهای گوناگون هدف قرار می‌دهد.

-a <file> فایل معماری بسته‌بندی‌کننده (wrapper architecture file).

-i --inline-architecture-files درون‌خط‌سازی فایل‌های معماری.

-A <dir> --architecture-dir <dir> افزودن پوشه <dir> به مسیر جستجوی معماری.

-I <dir> --import-dir <dir> افزودن پوشه <dir> به مسیر جستجوی کتابخانه‌ها.

-L <file> --library <file> پیوند (link) با ماژول LLVM مشخص‌شده در <file>.

-o <file> فایل خروجی.

-e --export-dsp برون‌ریزی DSP گسترش‌یافته (همراه با تمام کتابخانه‌های گنجانده‌شده).

-uim --user-interface-macros افزودن تعاریف ماکروی رابط کاربری به کد خروجی.

-xml تولید یک فایل توصیف XML.

-json تولید یک فایل توصیف JSON.

-O <dir> --output-dir <dir> تعیین پوشه نسبی برای کد خروجی تولیدشده و فایل‌های اضافی تولیدی (SVG، XML و...).

-lang <lang> --language گزینش زبان خروجی؛ مقدار <lang> باید یکی از موارد 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 <name> --class-name <name> تعیین نام کلاس dsp برای استفاده به جای mydsp.

-scn <name> --super-class-name <name> تعیین نام ابرکلاس برای استفاده به جای dsp.

-pn <name> --process-name <name> تعیین نام نقطه ورود dsp به جای process.

-mcd <n> --max-copy-delay <n> استفاده از تاخیر رونوشت (copy delay) تا حداکثر تاخیر <n> و تاخیر متراکم بالاتر از آن (تنها در ocpp) یا یک بافر حلقه‌ای (پیش‌فرض ۱۶ نمونه).

-mdd <n> --max-dense-delay <n> استفاده از تاخیر متراکم تا حداکثر تاخیر <n> (در صورت وجود تراکم کافی) و تاخیر بافر حلقه‌ای بالاتر از آن (تنها در ocpp، پیش‌فرض ۱۰۲۴).

-mdy <n> --min-density <n> حداقل تراکم (100*تعداد تاخیرها/حداکثر تاخیر) برای استفاده از تاخیرهای متراکم (تنها در ocpp، پیش‌فرض ۳۳).

-dlt <n> --delay-line-threshold <n> استفاده از تاخیرهای بافر حلقه‌ای مبتنی بر ماسک تا حداکثر تاخیر <n> و بافرهای حلقه‌ای مبتنی بر انتخاب بالاتر از آن (پیش‌فرض 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 <n> --flush-to-zero <n> کد اضافه‌شده به سیگنال‌های بازگشتی [0: خیر (پیش‌فرض)، 1: مبتنی بر fabs، 2: مبتنی بر ماسک (سریع‌ترین)].

-rui --range-ui تعیین تولید یا عدم تولید کد برای محدود کردن مقادیر vslider/hslider/nentry در بازه [min..max].

-fui --freeze-ui تعیین ثابت نگه‌داشتن یا نداشتن مقادیر vslider/hslider/nentry روی یک مقدار داده‌شده (به‌طور پیش‌فرض مقدار اولیه‌سازی init).

-inj <f> --inject <f> تزریق فایل منبع <f> به فایل معماری به جای کامپایل یک فایل dsp.

-scal --scalar تولید کد غیربرداری (پیش‌فرض).

-inpl --in-place تولید کدی که هنگام یکسان بودن بافرهای ورودی و خروجی کار می‌کند (تنها در حالت نرده‌ای).

-vec --vectorize تولید کدی با قابلیت برداری‌سازی آسان‌تر.

-vs <n> --vec-size <n> اندازه بردار (پیش‌فرض ۳۲ نمونه).

-lv <n> --loop-variant <n> گونهٔ حلقه [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 <file> --fast-math <file> استفاده از نسخه‌های بهینه‌شده توابع ریاضی پیاده‌سازی‌شده در <file>؛ استفاده از “faust/dsp/fastmath.cpp” هنگامی که file برابر با “def” است، و فرض بر این که توابع در فایل معماری تعریف شده‌اند هنگامی که file برابر با “arch” باشد..PP -mapp --math-approximation نسخه‌های ساده‌تر/سریع‌تر توابع `floor/ceil/fmod/remainder`.

-noreprc --no-reprc (فقط Rust) ساختار dsp را مجبور به پیروی از چیدمان C ABI نمی‌کند.

-ns <name> --namespace <name> تولید کد C++ یا D در فضای‌نام <name>.

-vhdl-trace --vhdl-trace فعال‌سازی ردگیری (trace).

-vhdl-float --vhdl-float استفاده از قالب IEEE-754 برای نمونه‌ها به‌جای نقطه ثابت (fixed point).

-vhdl-components <file> --vhdl-components <file> مسیر فایل توصیف‌کننده مؤلفه‌های سفارشی برای backend زبان VHDL.

-fpga-mem <n> --fpga-mem <n> حداکثر اندازه block ram در FPGA، مورد استفاده در حالت -mem1/-mem2.

-fpga-mem-th <n> --fpga-mem-th <n> آستانه اندازه آرایه در FPGA (بر حسب واحد نوع حافظه)، مورد استفاده در حالت -mem1/-mem2.

-wi <n> --widening-iterations <n> تعداد تکرارها پیش از تعریض (widening) در تحدید دامنه سیگنال.

-ni <n> --narrowing-iterations <n> تعداد تکرارها پیش از توقف باریک‌سازی (narrowing) در تحدید دامنه سیگنال.

-rnt --rust-no-faustdsp-trait (فقط Rust) پیاده‌سازی trait مربوط به FaustDsp را تولید نمی‌کند.

-rnlm --rust-no-libm (فقط Rust) فراخوانی‌های FFI به libm را تولید نمی‌کند.

-ps --postscript چاپ نمودار بلوکی در یک فایل postscript.

-svg --svg چاپ نمودار بلوکی در یک فایل svg.

-sd --simplify-diagrams تلاش برای ساده‌سازی بیشتر نمودارها پیش از ترسیم.

-drf --draw-route-frame رسم قاب‌های مسیر (route frames) به‌جای کابل‌های ساده.

-f <n> --fold <n> آستانه برای فعال‌سازی حالت تا کردن (folding) در حین تولید نمودار بلوکی (پیش‌فرض 25 عنصر).

-fc <n> --fold-complexity <n> آستانه پیچیدگی برای تا کردن یک عبارت در حالت تا کردن (پیش‌فرض 2).

-mns <n> --max-name-size <n> آستانه طول نام در حین تولید نمودار بلوکی (پیش‌فرض 40 نویسه).

-sn --simple-names استفاده از نام‌های ساده (بدون آرگومان‌ها) در هنگام تولید نمودار بلوکی.

-blur --shadow-blur افزودن محوشدگی سایه (shadow blur) به جعبه‌های SVG.

-sc --scaled-svg قالب SVG مقیاس‌پذیر خودکار.

-mdoc --mathdoc چاپ مستندات ریاضی برنامه Faust در قالب LaTeX درون پوشه -mdoc.

-mdlang <l> --mathdoc-lang <l> در صورت وجود فایل ترجمه (<l> = en, fr, ...).

-stripmdoc --strip-mdoc-tags حذف برچسب‌های mdoc هنگام چاپ فهرست‌های Faust -mdoc.

-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 <sec> --timeout <sec> لغو کامپایل پس از <sec> ثانیه (پیش‌فرض 120).

-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

وب‌گاه Grame Faust در: https://faust.grame.fr

لطفاً باگ‌ها را گزارش دهید به: https://github.com/grame-cncm/faust/issues

کپی‌رایت (C) 2002-2026، GRAME - Centre National de Creation Musicale. تمامی حقوق محفوظ است.

Version 2.85.9 (30-June-2026)