A post-processor for faust giving more flexibility at source generation
Project description
faustdoctor
NOTE: This is a fork of faustpp, which is not endorsed by upstream (since its maintainer is MIA). It is also not backward compatible with the upstream version, since it features breaking changes to the architecture templates, the template context and the command line interface.
A post-processor for faust giving more flexibility at source generation.
This is a source transformation tool based on the Faust compiler.
It permits to arrange the way how faust source is generated with greater flexibility.
Using a template language known as Jinja2, it is allowed to manipulate metadata with iteration and conditional constructs, to easily generate custom code tailored for the job. Custom metadata can be handled by the template mechanism.
Usage
For detailed information, refer to the documentation.
An example is provided in the architectures
directory. It is usable and
illustrates many features.
The example is able to create a custom processor class. It has these abilities:
- Can generate a separate (C/C++) header and implementation file.
- Provides direct introspection of the characteristics of the controls.
- Can parse standard and custom UI metadata, for example:
[symbol:]
[trigger]
[boolean]
[integer]
- Provides named getters and setters for the controls.
- Provides a simplified signature for the processing routine.
The example can be used to generate any file. Pass options to the Faust
compiler using -X
. In this particular example, you should pass a definition
of Identifier
in order to name the result class, which is done with the
option -D
.
faustdr -X-vec -DIdentifier=MyEffect -a generic.cpp effect.dsp > effect.cpp
faustdr -X-vec -DIdentifier=MyEffect -a generic.hpp effect.dsp > effect.hpp
Installation
Assuming you have Python installed (>= 3.9) and pipx installed, run this command:
pipx install faustdoctor
Authors
This software is based on faustpp, which was created by * Jean Pierre
Cimalando*. The project was forked, renamed to faustdoctor
, updated, improved
and extended by Christopher Arndt, who now maintains this version.
License
This software is released under the Boost Software License 1.0. Please see the LICENSE.md file for details.
Release notes
0.1.0
- Initial release (forked from faustpp 1.0.0)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file faustdoctor-0.1.0.tar.gz
.
File metadata
- Download URL: faustdoctor-0.1.0.tar.gz
- Upload date:
- Size: 52.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc15bc7ff154277966dcedae1bc3ab88ceceba4df1a60def1b69921edbac6781 |
|
MD5 | 73e1b21e234e67564f9668503263d8f4 |
|
BLAKE2b-256 | 8e0a5914f20c65941253a1bb2ea33398369ea3528ff38a3b9777d2de7cd78839 |
File details
Details for the file faustdoctor-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: faustdoctor-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44622ac4566dd229c3ab885e85344be08f37590ef23cc4c18cb4128a70d4dac1 |
|
MD5 | 7d7580a024e540a16c26387fe4ce039b |
|
BLAKE2b-256 | 4a208f640249769a0e6ae6c51be7bbeead26bb57cde1f88ef31af9d63879b8d5 |