Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Аудио бағдарламалау тілі
Audio programming language
FAUST (Functional AUdio STream) – кітапханалар, аудио плагиндер немесе дербес қолданбалар түрінде сигналды өңдеу алгоритмдерін жүзеге асыруға арналған, доменге қатысты, толығымен функционалдық бағдарламалау тілі. FAUST бағдарламасы сигналды өңдегішті көрсетеді: белгілі бір кіріс сигналына қолданылып, содан кейін шығарылатын математикалық функция.
FAUST (Functional AUdio STream) is a domain specific purely functional programming language for implementing signal processing algorithms in the form of libraries, audio plug ins, or standalone applications. A FAUST program denotes a signal processor: a mathematical function that is applied to some input signal and then fed out.
Толық өтінімдерді құру
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 аспап плагині.
Using specific architecture files, a FAUST program can be used to produce code for a variety of platforms and plug in formats. These architecture files act as wrappers and describe the interactions with the host audio and GUI system. as of 2021, more than 30 architectures are supported and new ones may be implemented by anyone. + Some architecture files available for FAUST alsa gtk. cpp ALSA application + GTK alsa qt. cpp ALSA application + QT4 android. cpp Android applications au. cpp Audio Unit plug in ca qt. cpp CoreAudio application + QT4 ios coreaudio. cpp iPhone and iPad applications jack gtk. cpp JACK application + GTK jack qt. cpp JACK application + QT4 ladspa. cpp LADSPA plug in max msp. cpp Max MSP plug in pd. cpp Puredata plug in q. cpp Q language plug in supercollider. cpp Supercollider plug in vst. cpp VST plug in vsti mono. cpp Monophonic VST Instrument plug in vsti poly. cpp Polyphonic VST Instrument plug in
Блок-схемаларды құру
Пайдалы нұсқа бағдарламаның блок-схемалық бейнелеуін бір немесе бірнеше SVG графикалық файлдар түрінде жасауға мүмкіндік береді. Блок-схема мен туындаған C++ код арасындағы айырмашылықты ескеру маңызды. Мұндағы басты идея – блок-схеманы әдепкі бойынша құрастыру емес, оның білдіретін математикалық функцияны түсіну. Қазіргі заманғы C/C++ компиляторлары да бағдарламаны сөзбе-сөз компиляцияламайды. Алайда, C/C++ тілінің күрделі семантикасы (қосымша әсерлер, көрсеткіштердің араласуы және т.б.) олардың сол бағытта кең көлемде жұмыс істеуіне кедерес келтіреді. Таза функционалдық тілдің ерекше артықшылығы осы: ол компиляторларға өте күрделі оңтайландырулар жасауға мүмкіндік береді.
A useful option makes it possible to generate the block diagram representation of the program as one or more SVG graphic files. It is useful to note the difference between the block diagram and the generated C++ code. As stated, the key idea here is not to compile the block diagram literally, but the mathematical function it denotes. Modern C/C++ compilers also don't compile programs literally. But because of the complex semantics of C/C++ (due to side effects, pointer aliasing, etc.) they can't go very far in that direction. This is a distinct advantage of a purely functional language: it allows compilers to do very advanced optimisations.