Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

faustdoctor-0.1.0.tar.gz (52.9 kB view details)

Uploaded Source

Built Distribution

faustdoctor-0.1.0-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

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

Hashes for faustdoctor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bc15bc7ff154277966dcedae1bc3ab88ceceba4df1a60def1b69921edbac6781
MD5 73e1b21e234e67564f9668503263d8f4
BLAKE2b-256 8e0a5914f20c65941253a1bb2ea33398369ea3528ff38a3b9777d2de7cd78839

See more details on using hashes here.

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

Hashes for faustdoctor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44622ac4566dd229c3ab885e85344be08f37590ef23cc4c18cb4128a70d4dac1
MD5 7d7580a024e540a16c26387fe4ce039b
BLAKE2b-256 4a208f640249769a0e6ae6c51be7bbeead26bb57cde1f88ef31af9d63879b8d5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page