| 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 <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>.
گزینههای خروجی (Output options):
-o <file> فایل خروجی.
-e --export-dsp برونریزی DSP گسترشیافته (همراه با تمام کتابخانههای گنجاندهشده).
-uim --user-interface-macros افزودن تعاریف ماکروی رابط کاربری به کد خروجی.
-xml تولید یک فایل توصیف XML.
-json تولید یک فایل توصیف JSON.
-O <dir> --output-dir <dir> تعیین پوشه نسبی برای کد خروجی تولیدشده و فایلهای اضافی تولیدی (SVG، XML و...).
گزینههای تولید کد (Code generation options):
-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 را تولید نمیکند.
گزینههای نمودار بلوکی (Block diagram options):
-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 مقیاسپذیر خودکار.
گزینههای مستندات ریاضی (Math doc options):
-mdoc --mathdoc چاپ مستندات ریاضی برنامه Faust در قالب LaTeX درون پوشه -mdoc.
-mdlang <l> --mathdoc-lang <l> در صورت وجود فایل ترجمه (<l> = 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 <sec> --timeout <sec> لغو کامپایل پس از <sec> ثانیه (پیشفرض 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 در: https://faust.grame.fr
گزارش باگها (BUGS)
لطفاً باگها را گزارش دهید به: https://github.com/grame-cncm/faust/issues
نویسندگان (AUTHORS)
کپیرایت (C) 2002-2026، GRAME - Centre National de Creation Musicale. تمامی حقوق محفوظ است.
| Version 2.85.9 (30-June-2026) |