Faust Online Documentation
Faust is a Functional Programming Language for sound synthesis and audio processing with a strong focus on the design of synthesizers, musical instruments, audio effects, etc. Faust targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards.
This repository is intended to build the documentation of the Faust environment, and to provide the corresponding examples.
Prerequisites
- you must have python, pip and mkdocs installed.
- you must have the Faust source code installed. You can get it from github. Be sure to use a fresh cloned repository and to correcly install submodules with
git submodule update --init
. The exact location can possibly be set in the make command using theFAUSTDIR
environment variable. - you must have openssl installed for base64 conversion.
WARNING: adding new files
Be sure to add new files in the mkdocs/docs
, and not in the docs
which is the folder generated by the build process.
Building the documentation
The build process is based on make
. Building the documentation site is based on mkdocs.
To install the required components type:
$ make install
The documentation embeds a lot of Faust examples that have to be embedded into html files. It also extracts tags documentation from the library source code. To generate all these files type:
$ make all
Testing and generating
You can test the web site using the mkdoc embedded web server. This server also scan any change in the source directory and refresh the pages dynamically which is really convenient for the development process. To launch the server type:
$ make serve
When ready, you can generate the documentation web site. Type:
$ make build
The web site will be available from the docs
folder at the root of the faustdoc
folder
More details on the build process:
$ make help
Publishing
The docs folder at rool level contains all files that will be published. To make the current version publicly available:
- add all the new files using
git add docs
- commit using
git commit -am "message"
(so new files and deleted files will be commited, except docs/CNAME file) - and push the commit
WARNING!!
- never delete the docs/CNAME file (which is mandatory for the final generated site to work)
- in case it has been removed, restore it using
git checkout docs/CNAME