FAUST: زبان برنامه‌نویسی برای پردازش و ترکیب سیگنال‌های صوتی

FAUST: زبان برنامه‌نویسی برای پردازش و ترکیب سیگنال‌های صوتی

FAUST که مخفف عبارات Functional Audio Stream است، یک زبان برنامه‌نویسی فانکشنال است که به طور خاص برای پردازش و ترکیب سیگنال‌های صوتی در کمترین زمان ممکن طراحی شده است. FAUST برنامه‌های پردازش صوت با عملکرد بالا و افزونه‌های صوتی برای انواع سیستم‌عامل‌ها و استانداردها را هدف قرار داده است.

یک برنامۀ نوشته‌شده با زبان FAUST می‌تواند به سادگی زیر باشد:

process  = +(12345) ~ *(1103515245) : /(2147483647.0);

کد بالا به طور کامل یک تولیدکنندۀ نویز را نمایش می‌دهد. حال یک مثال پیچیده‌تر را بررسی می‌کنیم. در برنامهٔ زیر، یک اسلایدر برای کنترل میزان نویز در اختیار ما قرار می‌‌گیرد:

noise  = +(12345) ~ *(1103515245) : /(2147483647.0);
process = noise * hslider("noise volume", 0, 0, 1, 0.01);

البته با استفاده از کامپایلر FAUST‌ می‌توان کدهای این زبان را به زبان ++C ترجمه کرد. برای مثال، می‌توان کامند زیر را در نظر گرفت:

faust noise.dsp

کامند فوق، کدهای زیر را تولید خواهد کرد:

virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) {
	FAUSTFLOAT* output0 = outputs[0];
	float fSlow0 = (4.65661e-10f * float(fHslider0));
	for (int i = 0; (i < count); i = (i + 1)) {
		iRec0[0] = (12345 + (1103515245 * iRec0[1]));
		output0[i] = FAUSTFLOAT((fSlow0 * float(iRec0[0])));
		iRec0[1] = iRec0[0];
	}
}

برای ساخت و بسط دادن یک برنامهٔ در حال اجرا یا یک پلاگین، می‌توانید از یکی از دستورات بسیار زیاد اسکریپت faust2 استفاده نمائید. برای مثال داریم:

faust2jaqt noise.dsp

دستور بالا یک برنامۀ مستقل آمادۀ اجرا بر پایه Jack و QT (یک زبان برنامه‌نویسی کراس‌پلتفرم) تولید خواهد کرد. با استفاده از این لینک، می‌توانید یک برنامۀ تحت وب از تولیدکنندهٔ نویز را امتحان کنید.

حال نوبت به نظرات شما می‌رسد. آیا استفاده از این زبان می‌تواند تأثیری در صنعت ویرایش و تولید فایل‌های صوتی داشته باشد؟ نظرات و دیدگاه‌های خود را در این رابطه با ما و سایر کاربران سکان به اشتراک بگذارید.



علی‌اکبر محمدی