Skip to content
Python Based Tools for Developing FAUST dsp programs
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
__pycache__
.gitignore
README.md
_plotter_faustwatch.py
config.py
demo.gif
faustwatch.py
plotlib.py
requirements.txt

README.md

Tools for analyzing Faust programs

At the moment there is one tool present, faustwatch.py

Faustwatch

Faustwatch is a tool that observes a .dsp file used by the dsp language FAUST. If the file is changed (saved after editing):

  • the blockdiagram can be automatically shown in the default browser
  • the impulse response can be plotted in the time domain
  • the impulse response can be plotted in the frequency domain.
  • the time and frequency domain plots of the last saved version are always visible so the current and last saved version can be compared.
  • the impulse response is played back via pyo and Jack Audio

Basically it is supposed to make FAUST development faster.

Here you can see it in action:

Install

Dependencies

This has only been tested under Linux and with python 3.6.3. It requires a number of standared libraries such as numpy,scipy:

  • numpy 1.15.4
  • scipy 1.1.0

and it requires some more uncommon libraries:

  • pyo 0.9.0
  • pyqtgraph 0.10.0
  • pyinotify 0.9.6
  • pyzmq 17.1.2

This tool has not been tested with other versions of these libraries. Of course there is a good chance it will work just fine with newer versions of these.

Configuration

The file config.py has to be changed in order to make sure that:

  • the architecture file for offline processing can be found.
  • the right python executable is used to start the plotting process.

usage

usage: faustwatch [-h] [--svg] [--ir] [--af AF] [--impLen IMPLEN] [--line] N

Watch a dsp file for changes and take a specific action.

positional arguments:
  N                Path to a .dsp file

optional arguments:
  -h, --help       show this help message and exit
  --svg            Make an svg block diagram and open it.
  --ir             Get impulse response and plot it.
  --af AF          Send through audio file.
  --impLen IMPLEN  Length of impulse. Default is unit impulse, so 1.
  --line           Get response to line from -1 to 1. So input-output
                   amplitude relationship. Useful for plotting transfer
                   functions of non-linearities
You can’t perform that action at this time.