Content deleted Content added
No edit summary |
m clean up, typo(s) fixed: doesn’t → doesn't (3), ’s → 's |
||
Line 1:
{{Short description|Audio programming language}}
{{redirect|FAUST|other uses|Faust (disambiguation){{!}}Faust}}
{{More footnotes needed|date=March 2015}}
{{Infobox software
| name = FAUST
| developer = GRAME, Centre National de Création Musicale
| author = Yann Orlarey, Dominique Fober, Stéphane Letz
| released = {{
| latest release version = 2.60.3<ref>[https://github.com/grame-cncm/faust/releases Releases · grame-cncm/faust · GitHub]</ref>
| latest release date = {{
| operating system = [[Linux]], [[OS X]], [[Microsoft Windows|Windows]], [[Unix]]
| genre = Functional programming language for audio signal processing
Line 20:
==Overview==
The FAUST [[programming model]] combines a [[functional programming]] approach with a [[block diagram]] syntax:
* The functional programming approach provides a natural framework for [[signal processing]]. Digital signals are modeled as [[Sequence|discrete functions]] of time, signal processors as [[Higher-order function|second order functions]] that operate on them, and
* Block diagrams, even if purely textual as in FAUST, promote a modular approach to signal processing that complies with sound engineers' and audio developers' habits.
A FAUST program
<syntaxhighlight lang=haskell>
process = ...;
Line 134:
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
==Arrows-like semantics==
|