Кіріспе

Аудио бағдарламалау тілі

FAUST (Functional AUdio STream) – кітапханалар, аудио плагиндер немесе дербес қолданбалар түрінде сигналды өңдеу алгоритмдерін жүзеге асыруға арналған, доменге қатысты, толығымен функционалдық бағдарламалау тілі. FAUST бағдарламасы сигналды өңдегішті көрсетеді: белгілі бір кіріс сигналына қолданылып, содан кейін шығарылатын математикалық функция.

Толық өтінімдерді құру

FAUST бағдарламасы белгілі бір архитектура файлдарын пайдалана отырып, әртүрлі платформалар мен плагиндік форматтар үшін кодты шығаруға болады. Бұл архитектура файлдары орама ретінде әрекет етеді және хост аудио және GUI жүйесімен өзара әрекеттесуді сипаттайды. 2021 жылға қарай 30-дан астам архитектура қолдау табады және жаңаларын кез келген адам іске асыра алады. FAUST үшін қолбар архитектуралық файлдардың мысалдары: gtk.cpp ALSA қосымшасы + GTK alsa qt.cpp ALSA қосымшасы + QT4 android.cpp Android қосымшалары au.cpp Audio Unit плагині ca qt.cpp CoreAudio қосымшасы + QT4 ios coreaudio.cpp iPhone және iPad қосымшалары jack gtk.cpp JACK қосымшасы + GTK jack qt.cpp JACK қосымшасы + QT4 ladspa.cpp LADSPA плагині max msp.cpp Max MSP плагині pd.cpp Puredata плагині q.cpp Q тілі плагині supercollider.cpp Supercollider плагині vst.cpp VST плагині vsti mono.cpp Монофониялық VST аспап плагині vsti poly.cpp Полифониялық VST аспап плагині.

Блок-схемаларды құру

Пайдалы нұсқа бағдарламаның блок-схемалық бейнелеуін бір немесе бірнеше SVG графикалық файлдар түрінде жасауға мүмкіндік береді. Блок-схема мен туындаған C++ код арасындағы айырмашылықты ескеру маңызды. Мұндағы басты идея – блок-схеманы әдепкі бойынша құрастыру емес, оның білдіретін математикалық функцияны түсіну. Қазіргі заманғы C/C++ компиляторлары да бағдарламаны сөзбе-сөз компиляцияламайды. Алайда, C/C++ тілінің күрделі семантикасы (қосымша әсерлер, көрсеткіштердің араласуы және т.б.) олардың сол бағытта кең көлемде жұмыс істеуіне кедерес келтіреді. Таза функционалдық тілдің ерекше артықшылығы осы: ол компиляторларға өте күрделі оңтайландырулар жасауға мүмкіндік береді.